diff --git a/Bin/Debug/SuperDesign/DiffPlex.dll b/Bin/Debug/SuperDesign/DiffPlex.dll new file mode 100644 index 0000000..e593acc Binary files /dev/null and b/Bin/Debug/SuperDesign/DiffPlex.dll differ diff --git a/Bin/Debug/SuperDesign/DiffPlex.xml b/Bin/Debug/SuperDesign/DiffPlex.xml new file mode 100644 index 0000000..79bde58 --- /dev/null +++ b/Bin/Debug/SuperDesign/DiffPlex.xml @@ -0,0 +1,190 @@ + + + + DiffPlex + + + + + Gets the default singleton instance of the chunker. + + + + + Gets the default singleton instance of the chunker. + + + + + Gets the default singleton instance of the chunker. + + + + + Gets the default singleton instance of the chunker. + + + + + Gets the default singleton instance of the inline diff builder. + + + + + Gets the inline textual diffs. + + The old text to diff. + The new text. + true if ignore the white space; othewise, false. + true if case-insensitive; otherwise, false. + The chunker. + The diffs result. + + + + Gets the inline textual diffs. + + The differ instance. + The old text to diff. + The new text. + true if ignore the white space; othewise, false. + true if case-insensitive; otherwise, false. + The chunker. + The diffs result. + + + + Provides methods that generate differences between texts for displaying in a side by side view. + + + + + Builds a diff model for displaying diffs in a side by side view + + The old text. + The new text. + The side by side diff model + + + + A model which represents differences between to texts to be shown side by side + + + + + Gets the default singleton instance. + + + + + Gets the side-by-side textual diffs. + + The old text to diff. + The new text. + true if ignore the white space; othewise, false. + true if case-insensitive; otherwise, false. + The diffs result. + + + + Gets the side-by-side textual diffs. + + The differ instance. + The old text to diff. + The new text. + true if ignore the white space; othewise, false. + true if case-insensitive; otherwise, false. + The line chunker. + The word chunker. + The diffs result. + + + + Gets the default singleton instance of differ instance. + + + + + Finds the middle snake and the minimum length of the edit script comparing string A and B + + + Lower bound inclusive + Upper bound exclusive + + lower bound inclusive + upper bound exclusive + + + + + Responsible for how to turn the document into pieces + + + + + Divide text into sub-parts + + + + + Responsible for generating differences between texts + + + + + Creates a diff by comparing text line by line. + + The old text. + The new text. + if set to true will ignore white space when determining if lines are the same. + Determine if the text comparision is case sensitive or not + Component responsible for tokenizing the compared texts + A DiffResult object which details the differences + + + + A block of consecutive edits from A and/or B + + + + + Position where deletions in A begin + + + + + The number of deletions in A + + + + + Position where insertion in B begin + + + + + The number of insertions in B + + + + + The result of diffing two peices of text + + + + + The chunked peices of the old text + + + + + The chunked peices of the new text + + + + + A collection of DiffBlocks which details deletions and insertions + + + + diff --git a/Bin/Debug/SuperDesign/FastColoredTextBox.dll b/Bin/Debug/SuperDesign/FastColoredTextBox.dll deleted file mode 100644 index 4b35414..0000000 Binary files a/Bin/Debug/SuperDesign/FastColoredTextBox.dll and /dev/null differ diff --git a/Bin/Debug/SuperDesign/ICSharpCode.TextEditor.dll b/Bin/Debug/SuperDesign/ICSharpCode.TextEditor.dll deleted file mode 100644 index f22dab3..0000000 Binary files a/Bin/Debug/SuperDesign/ICSharpCode.TextEditor.dll and /dev/null differ diff --git a/Bin/Debug/SuperDesign/ICSharpCode.TextEditor.xml b/Bin/Debug/SuperDesign/ICSharpCode.TextEditor.xml deleted file mode 100644 index 621a68f..0000000 --- a/Bin/Debug/SuperDesign/ICSharpCode.TextEditor.xml +++ /dev/null @@ -1,2390 +0,0 @@ - - - - ICSharpCode.TextEditor - - - - - Describes the caret marker - - - - - No line viewer will be displayed - - - - - The row in which the caret is will be marked - - - - - Describes the indent style - - - - - No indentation occurs - - - - - The indentation from the line above will be - taken to indent the curent line - - - - - Inteligent, context sensitive indentation will occur - - - - - Describes the bracket highlighting style - - - - - Brackets won't be highlighted - - - - - Brackets will be highlighted if the caret is on the bracket - - - - - Brackets will be highlighted if the caret is after the bracket - - - - - Describes the selection mode of the text area - - - - - The 'normal' selection mode. - - - - - Selections will be added to the current selection or new - ones will be created (multi-select mode) - - - - - The default implementation. - - - - - This interface represents a container which holds a text sequence and - all necessary information about it. It is used as the base for a text editor. - - - - - Returns a valid line number for the given offset. - - - A offset which points to a character in the line which - line number is returned. - - - An int which value is the line number. - - If offset points not to a valid position - - - - Returns a for the given offset. - - - A offset which points to a character in the line which - is returned. - - - A object. - - If offset points not to a valid position - - - - Returns a for the given line number. - This function should be used to get a line instead of getting the - line using the . - - - The line number which is requested. - - - A object. - - If offset points not to a valid position - - - - Get the first logical line for a given visible line. - example : lineNumber == 100 foldings are in the linetracker - between 0..1 (2 folded, invisible lines) this method returns 102 - the 'logical' line number - - - - - Get the last logical line for a given visible line. - example : lineNumber == 100 foldings are in the linetracker - between 0..1 (2 folded, invisible lines) this method returns 102 - the 'logical' line number - - - - - Get the visible line for a given logical line. - example : lineNumber == 100 foldings are in the linetracker - between 0..1 (2 folded, invisible lines) this method returns 98 - the 'visible' line number - - - - - Get the next visible line after lineNumber - - - - - Get the next visible line below lineNumber - - - - - Inserts a string of characters into the sequence. - - - offset where to insert the string. - - - text to be inserted. - - - - - Removes some portion of the sequence. - - - offset of the remove. - - - number of characters to remove. - - - - - Replace some portion of the sequence. - - - offset. - - - number of characters to replace. - - - text to be replaced with. - - - - - Returns a specific char of the sequence. - - - Offset of the char to get. - - - - - Fetches a string of characters contained in the sequence. - - - Offset into the sequence to fetch - - - number of characters to copy. - - - - - returns the logical line/column position from an offset - - - - - returns the offset from a logical line/column position - - - - - Requests an update of the textarea - - - - - Commits all updates in the queue to the textarea (the - textarea will be painted) - - - - - Moves, Resizes, Removes a list of segments on insert/remove/replace events. - - - - - If true the document can't be altered - - - - - The attached to the instance - - - - - The attached to the instance - - - - - The attached to the instance - - - - - The attached to the instance - - - - - The attached to the instance - - - - - A collection of all line segments - - - The collection should only be used if you're aware - of the 'last line ends with a delimiter problem'. Otherwise - the method should be used. - - - - - The total number of lines in the document. - - - - - Get the whole text as string. - When setting the text using the TextContent property, the undo stack is cleared. - Set TextContent only for actions such as loading a file; if you want to change the current document - use the Replace method instead. - - - - - The current length of the sequence of characters that can be edited. - - - - - A container where all TextAreaUpdate objects get stored - - - - - Is fired when CommitUpdate is called - - - - - - - - - - - - - This delegate is used for document events. - - - - - This class contains more information on a document event - - - - - Creates a new instance off - - - - - Creates a new instance off - - - - - Creates a new instance off - - - - - Creates a new instance off - - - - - always a valid Document which is related to the Event. - - - - - -1 if no offset was specified for this event - - - - - null if no text was specified for this event - - - - - -1 if no length was specified for this event - - - - - This interface represents a container which holds a text sequence and - all necessary information about it. It is used as the base for a text editor. - - - - - Creates a new object. Only create - with this method. - - - - - Creates a new document and loads the given file - - - - - Creates a new document and loads the given file - - - - - Indicates that the highlighting definition that was tried to load was invalid. - You get this exception only once per highlighting definition, after that the definition - is replaced with the default highlighter. - - - - - This interface is used to describe a span inside a text sequence - - - - - The offset where the span begins - - - - - The length of the span - - - - - A list of events that are fired after the line manager has finished working. - - - - - Data structure for efficient management of the line segments (most operations are O(lg n)). - This implements an augmented red-black tree where each node has fields for the number of - nodes in its subtree (like an order statistics tree) for access by index(=line number). - Additionally, each node knows the total length of all segments in its subtree. - This means we can find nodes by offset in O(lg n) time. Since the offset itself is not stored in - the line segment but computed from the lengths stored in the tree, we adjusting the offsets when - text is inserted in one line means we just have to increment the totalLength of the affected line and - its parent nodes - an O(lg n) operation. - However this means getting the line number or offset from a LineSegment is not a constant time - operation, but takes O(lg n). - - NOTE: The tree is never empty, Clear() causes it to contain an empty segment. - - - - - Updates the length of a line segment. Runs in O(lg n). - - - - - Gets the index of an item. Runs in O(lg n). - - - - - Clears the list. Runs in O(1). - - - - - Tests whether an item is in the list. Runs in O(n). - - - - - Copies all elements from the list to the array. - - - - - Gets the total length of all line segments. Runs in O(1). - - - - - Gets the number of items in the collections. Runs in O(1). - - - - - Gets or sets an item by index. Runs in O(lg n). - - - - - An invalid enumerator value. Calling MoveNext on the invalid enumerator - will always return false, accessing Current will throw an exception. - - - - - Moves to the next index. Runs in O(lg n), but for k calls, the combined time is only O(k+lg n). - - - - - Moves to the previous index. Runs in O(lg n), but for k calls, the combined time is only O(k+lg n). - - - - - Gets the current value. Runs in O(1). - - - - - Gets the index of the current value. Runs in O(lg n). - - - - - Gets the offset of the current value. Runs in O(lg n). - - - - - Behaves like a start marker - when text is inserted at the anchor position, the anchor will stay - before the inserted text. - - - - - Behave like an end marker - when text is insered at the anchor position, the anchor will move - after the inserted text. - - - - - An anchor that can be put into a document and moves around when the document is changed. - - - - - Controls how the anchor moves. - - - - - A line/column position. - Text editor lines/columns are counting from zero. - - - - - Represents no text location (-1, -1). - - - - - This function takes a string and converts the whitespace in front of - it to tabs. If the length of the whitespace at the start of the string - was not a whole number of tabs then there will still be some spaces just - before the text starts. - the output string will be of the form: - 1. zero or more tabs - 2. zero or more spaces (less than tabIndent) - 3. the rest of the line - - - - - This method returns the expression before a specified offset. - That method is used in code completion to determine the expression given - to the parser for type resolve. - - - - - Returns true, if the line lineNumber is empty or filled with whitespaces. - - - - - Returns true, if the line lineNumber is empty or filled with whitespaces. - - - - - This class handles the bookmarks for a buffer - - - - - Creates a new instance of - - - - - Sets the mark at the line location.Line if it is not set, if the - line is already marked the mark is cleared. - - - - - true, if a mark at mark exists, otherwise false - - - - - Clears all bookmark - - - - - The lowest mark, if no marks exists it returns -1 - - - - - The highest mark, if no marks exists it returns -1 - - - - - returns first mark higher than lineNr - - - returns the next mark > cur, if it not exists it returns FirstMark() - - - - - returns first mark lower than lineNr - - - returns the next mark lower than cur, if it not exists it returns LastMark() - - - - - Contains all bookmarks - - - - - Gets/Sets the bookmark factory used to create bookmarks for "ToggleMarkAt". - - - - - This class is used for storing the state of a bookmark manager - - - - - Validates all bookmarks if they're in range of the document. - (removing all bookmarks < 0 and bookmarks > max. line number - - - - - Creates a new instance of - - - - - Creates a new instance of - - - - - Creates a new instance of - - - - - Converts a xml element to a object - - - - - Converts this to a xml element - - - - - Contains all bookmarks as int values - - - - - This class handles the auto and smart indenting in the textbuffer while - you type. - - - - - This interface handles the auto and smart indenting and formating - in the document while you type. Language bindings could overwrite this - interface and define their own indentation/formating. - - - - - This function formats a specific line after ch is pressed. - - - - - This function sets the indentation level in a specific line - - - The target caret position (length of new indentation). - - - - - This function sets the indentlevel in a range of lines. - - - - - Finds the offset of the opening bracket in the block defined by offset skipping - brackets in strings and comments. - - The document to search in. - The offset of an position in the block or the offset of the closing bracket. - The character for the opening bracket. - The character for the closing bracket. - Returns the offset of the opening bracket or -1 if no matching bracket was found. - - - - Finds the offset of the closing bracket in the block defined by offset skipping - brackets in strings and comments. - - The document to search in. - The offset of an position in the block or the offset of the opening bracket. - The character for the opening bracket. - The character for the closing bracket. - Returns the offset of the closing bracket or -1 if no matching bracket was found. - - - - Creates a new instance off - - - - - returns the whitespaces which are before a non white space character in the line line - as a string. - - - - - Could be overwritten to define more complex indenting. - - - - - Replaces the text in a line. - If only whitespace at the beginning and end of the line was changed, this method - only adjusts the whitespace and doesn't replace the other text. - - - - - Could be overwritten to define more complex indenting. - - - - - This function formats a specific line after ch is pressed. - - - the caret delta position the caret will be moved this number - of bytes (e.g. the number of bytes inserted before the caret, or - removed, if this number is negative) - - - - - This function sets the indentation level in a specific line - - - the number of inserted characters. - - - - - This function sets the indentlevel in a range of lines. - - - - - A highlighting strategy for a buffer. - - - - - Gets the color of an Environment element. - - - - - Used internally, do not call - - - - - Used internally, do not call - - - - - The name of the highlighting strategy, must be unique - - - - - The file extenstions on which this highlighting strategy gets - used - - - - - Used internally, do not call - - - - - Used internally, do not call - - - - - pushes the curWord string on the word list, with the - correct color. - - - - - get the string, which matches the regular expression expr, - in string s2 at index - - - - - returns true, if the get the string s2 at index matches the expression expr - - - - - This class is used to generate bold, italic and bold/italic fonts out - of a base font. - - - - - The scaled, regular version of the base font - - - - - The scaled, bold version of the base font - - - - - The scaled, italic version of the base font - - - - - The scaled, bold/italic version of the base font - - - - - The base font - - - - - Extens the highlighting color with a background image. - - - - - A color used for highlighting - - - - - The font used - - - - - Creates a new instance of - - - - - Creates a new instance of - - - - - Creates a new instance of - - - - - Creates a new instance of - - - - - Creates a new instance of - - - - - Creates a new instance of - - - - - Converts a instance to string (for debug purposes) - - - - - If true the font will be displayed bold style - - - - - If true the font will be displayed italic style - - - - - The background color used - - - - - The foreground color used - - - - - Creates a new instance of - - - - - Creates a new instance of - - - - - The image used as background - - - - - Merges spans etc. from the other rule set into this rule set. - - - - - Used for mark next token - - - - - Creates a new instance of - - - - - String value to indicate to mark next token - - - - - Color for marking next token - - - - - If true the indication text will be marked with the same color - too - - - - - Used for mark previous token - - - - - Creates a new instance of - - - - - String value to indicate to mark previous token - - - - - Color for marking previous token - - - - - If true the indication text will be marked with the same color - too - - - - - Gets the escape character of the span. The escape character is a character that can be used in front - of the span end to make it not end the span. The escape character followed by another escape character - means the escape character was escaped like in @"a "" b" literals in C#. - The default value '\0' means no escape character is allowed. - - - - - This class represents single words with color information, two special versions of a word are - spaces and tabs. - - - - - Splits the into two parts: the part before is assigned to - the reference parameter , the part after is returned. - - - - - Converts a instance to string (for debug purposes) - - - - - Converts a instance to string (for debug purposes) - - - - - Is called when the LineSegment is deleted. - - - - - Is called when a part of the line is removed. - - - - - Is called when a part of the line is inserted. - - - - - Is called after another line's content is appended to this line because the newline in between - was deleted. - The DefaultLineManager will call Deleted() on the deletedLine after the MergedWith call. - - firstLineLength: the length of the line before the merge. - - - - - Is called after a newline was inserted into this line, splitting it into this and followingLine. - - - - - always a valid Document which is related to the Event. - - - - - -1 if no offset was specified for this event - - - - - -1 if no length was specified for this event - - - - - Interface to describe a sequence of characters that can be edited. - - - - - Inserts a string of characters into the sequence. - - - offset where to insert the string. - - - text to be inserted. - - - - - Removes some portion of the sequence. - - - offset of the remove. - - - number of characters to remove. - - - - - Replace some portion of the sequence. - - - offset. - - - number of characters to replace. - - - text to be replaced with. - - - - - Fetches a string of characters contained in the sequence. - - - Offset into the sequence to fetch - - - number of characters to copy. - - - - - Returns a specific char of the sequence. - - - Offset of the char to get. - - - - - This method sets the stored content. - - - The string that represents the character sequence. - - - - - The current length of the sequence of characters that can be edited. - - - - - Simple implementation of the ITextBuffer interface implemented using a - string. - Only for fall-back purposes. - - - - - Description of RedBlackTree. - - - - - Returns the iterator pointing to the specified item, or an iterator in End state if the item is not found. - - - - - Returns the iterator pointing to the first item greater or equal to . - - - - - Returns the iterator pointing to the first item greater than . - - - - - Gets a tree iterator that starts on the first node. - - - - - Gets a tree iterator that starts one node before the first node. - - - - - A IList{T} that checks that it is only accessed on the thread that created it, and that - it is not modified while an enumerator is running. - - - - - Central location for logging calls in the text editor. - - - - - This class implements a keyword map. It implements a digital search trees (tries) to find - a word. - - - - - Creates a new instance of - - - - - The number of elements in the table - - - - - Get the object, which was inserted under the keyword (line, at offset, with length length), - returns null, if no such keyword was inserted. - - - - - Inserts an object in the tree, under keyword - - - - - Accumulates mouse wheel deltas and reports the actual number of lines to scroll. - - - - - This class is for the undo of Document insert operations - - - - - This Interface describes a the basic Undo/Redo operation - all Undo Operations must implement this interface. - - - - - Undo the last operation - - - - - Redo the last operation - - - - - Creates a new instance of - - - - - Undo last operation - - - - - Redo last undone operation - - - - - This class is for the undo of Document insert operations - - - - - Creates a new instance of - - - - - Undo last operation - - - - - Redo last undone operation - - - - - This class is for the undo of Document insert operations - - - - - Creates a new instance of - - - - - Undo last operation - - - - - Redo last undone operation - - - - - To define a new key for the textarea, you must write a class which - implements this interface. - - - - - To define a new key for the textarea, you must write a class which - implements this interface. - - - - - When the key which is defined per XML is pressed, this method will be launched. - - - - - An array of keys on which this edit action occurs. - - - - - When the key which is defined per XML is pressed, this method will be launched. - - - - - An array of keys on which this edit action occurs. - - - - - Executes this edit action - - The which is used for callback purposes - - - - Executes this edit action - - The which is used for callback purposes - - - - Executes this edit action - - The which is used for callback purposes - - - - Executes this edit action - - The which is used for callback purposes - - - - Executes this edit action - - The which is used for callback purposes - - - - The end offset is the offset where the comment end string starts from. - - - - - Executes this edit action - - The which is used for callback purposes - - - - Executes this edit action - - The which is used for callback purposes - - - - Executes this edit action - - The which is used for callback purposes - - - - Executes this edit action - - The which is used for callback purposes - - - - Executes this edit action - - The which is used for callback purposes - - - - Executes this edit action - - The which is used for callback purposes - - - - Executes this edit action - - The which is used for callback purposes - - - - Executes this edit action - - The which is used for callback purposes - - - - handles the ctrl-backspace key - functionality attempts to roughly mimic MS Developer studio - I will implement this as deleting back to the point that ctrl-leftarrow would - take you to - - - - - Executes this edit action - - The which is used for callback purposes - - - - handles the ctrl-delete key - functionality attempts to mimic MS Developer studio - I will implement this as deleting forwardto the point that - ctrl-leftarrow would take you to - - - - - Executes this edit action - - The which is used for callback purposes - - - - An interface representing a portion of the current selection. - - - - - Returns true, if the selection is rectangular - - - - - Returns true, if the selection is empty - - - - - The text which is selected by this selection. - - - - - Default implementation of the interface. - - - - - Creates a new instance of - - - - - Converts a instance to string (for debug purposes) - - - - - Returns true, if the selection is empty - - - - - Returns true, if the selection is rectangular - - - - - The text which is selected by this selection. - - - - - This interface is used for the folding capabilities - of the textarea. - - - - - Calculates the fold level of a specific line. - - - - - A simple folding strategy which calculates the folding level - using the indent level of the line. - - - - - Used internally, not for own use. - - - - - This enum describes all implemented request types - - - - - This class is used to request an update of the textarea - - - - - Creates a new instance of - - - - - Creates a new instance of - - - - - Creates a new instance of - - - - - Creates a new instance of - - - - - This class manages the selections in a document. - - - - - Creates a new instance of - - - - - Creates a new instance of - - - - - Clears the selection and sets a new selection - using the given object. - - - - - Clears the selection. - - - - - Removes the selected text from the buffer and clears - the selection. - - - - - Returns true if the given offset points to a section which is - selected. - - - - - Returns a object giving the selection in which - the offset points to. - - - null if the offset doesn't point to a selection - - - - - Used internally, do not call. - - - - - Used internally, do not call. - - - - - Used internally, do not call. - - - - - A collection containing all selections. - - - - - true if the is not empty, false otherwise. - - - - - The text that is currently selected. - - - - - Insert the element represented by the completion data into the text - editor. - - TextArea to insert the completion data in. - Character that should be inserted after the completion data. - \0 when no character should be inserted. - Returns true when the insert action has processed the character - ; false when the character was not processed. - - - - Gets a priority value for the completion data item. - When selecting items by their start characters, the item with the highest - priority is selected first. - - - - - Processes a keypress. Returns the action to be run with the key. - - - - - Executes the insertion. The provider should set the caret position and then - call data.InsertAction. - - - - - Generates the completion data. This method is called by the text editor control. - - - - - Gets the index of the element in the list that is chosen by default. - - - - - Normal key, used to choose an entry from the completion list - - - - - This key triggers insertion of the completed expression - - - - - Increment both start and end offset of completion region when inserting this - key. Can be used to insert whitespace (or other characters) in front of the expression - while the completion window is open. - - - - - Description of AbstractCompletionWindow. - - - - - Adds a shadow to the create params if it is supported by the operating system. - - - - - Invoked when the mouse moves over this form or any child control. - Shows the mouse cursor on the text area if it has been hidden. - - - Derived classes should attach this handler to the MouseMove event - of all created controls which are not added to the Controls - collection. - - - - - Gets the list view width large enough to handle the longest completion data - text string. - - The default width of the list view. - The height of the list view. This is - used to determine if the scrollbar is visible. - The list view width to accommodate the longest completion - data text string; otherwise the default width. - - - - When this flag is set, code completion closes if the caret moves to the - beginning of the allowed range. This is useful in Ctrl+Space and "complete when typing", - but not in dot-completion. - - - - - Tells the insight provider to prepare its data. - - The name of the edited file - The text area in which the file is being edited - - - - Notifies the insight provider that the caret offset has changed. - - Return true to close the insight window (e.g. when the - caret was moved outside the region where insight is displayed for). - Return false to keep the window open. - - - - Gets the text to display in the insight window. - - The number of the active insight entry. - Multiple insight entries might be multiple overloads of the same method. - The text to display, e.g. a multi-line string where - the first line is the method definition, followed by a description. - - - - Gets the number of available insight entries, e.g. the number of available - overloads to call. - - - - - Gets the index of the entry to initially select. - - - - - This interface is used to describe a span inside a text sequence - - - - - The width of a tab. - - - - - The amount of spaces a tab is converted to if ConvertTabsToSpaces is true. - - - - - In this enumeration are all caret modes listed. - - - - - If the caret is in insert mode typed characters will be - inserted at the caret position - - - - - If the caret is in overwirte mode typed characters will - overwrite the character at the caret position - - - - - If the caret position is outside the document text bounds - it is set to the correct position by calling ValidateCaretPos. - - - - - The 'prefered' xPos in which the caret moves, when it is moved - up/down. Measured in pixels, not in characters! - - - - - The current caret mode. - - - - - Is called each time the caret is moved. - - - - - Is called each time the CaretMode has changed. - - - - - This class paints the textarea. - - - - - The position where the mouse cursor was when it was hidden. Sometimes the text editor gets MouseMove - events when typing text even if the mouse is not moved. - - - - - Shows the mouse cursor if it has been hidden. - - true to always show the cursor or false to show it only if it has been moved since it was hidden. - - - - Rectangle in text area that caused the current tool tip. - Prevents tooltip from re-showing when it was closed because of a click or keyboard - input and the mouse was not used. - - - - - This method is called on each Keypress - - - True, if the key is handled by this method and should NOT be - inserted in the textarea. - - - - - This method executes a dialog key - - - - - Inserts a single character at the caret position - - - - - Inserts a whole string at the caret position - - - - - Replaces a char at the caret position - - - - - This class is used for a basic text area control - - - - - This class is used for a basic text area control - - - - - This hashtable contains all editor keys, where - the key is the key combination and the value the - action. - - - - - Call this method before a long update operation this - 'locks' the text area so that no screen update occurs. - - - - - Call this method to 'unlock' the text area. After this call - screen update can occur. But no automatical refresh occurs you - have to commit the updates in the queue. - - - - - Loads a file given by fileName - - The name of the file to open - Automatically load the highlighting for the file - Automatically detect file encoding and set Encoding property to the detected encoding. - - - - Loads a file from the specified stream. - - The name of the file to open. Used to find the correct highlighting strategy - if autoLoadHighlighting is active, and sets the filename property to this value. - The stream to actually load the file content from. - Automatically load the highlighting for the file - Automatically detect file encoding and set Encoding property to the detected encoding. - - - - Gets if the document can be saved with the current encoding without losing data. - - - - - Saves the text editor content into the file. - - - - - Saves the text editor content into the specified stream. - Does not close the stream. - - - - - Overwritten refresh method that does nothing if the control is in - an update cycle. - - - - - Current file's character encoding - - - - - The current file name - - - - - The current document - - - - - If set to true the contents can't be altered. - - - - - true, if the textarea is updating it's status, while - it updates it status no redraw operation occurs. - - - - - supposedly this is the way to do it according to .NET docs, - as opposed to setting the size in the constructor - - - - - If true spaces are shown in the textarea - - - - - Specifies the quality of text rendering (whether to use hinting and/or anti-aliasing). - - - - - If true tabs are shown in the textarea - - - - - If true EOL markers are shown in the textarea - - - - - If true the horizontal ruler is shown in the textarea - - - - - If true the vertical ruler is shown in the textarea - - - - - The row in which the vertical ruler is displayed - - - - - If true line numbers are shown in the textarea - - - - - If true invalid lines are marked in the textarea - - - - - If true folding is enabled in the textarea - - - - - The width in spaces of a tab character - - - - - The line viewer style - - - - - The indent style - - - - - if true spaces are converted to tabs - - - - - if true spaces are converted to tabs - - - - - if true spaces are converted to tabs - - - - - if true spaces are converted to tabs - - - - - The base font of the text area. No bold or italic fonts - can be used because bold/italic is reserved for highlighting - purposes. - - - - - Is called when CachedClipboardContainsText should be updated. - If this property is null (the default value), the text editor uses - System.Windows.Forms.Clipboard.ContainsText. - - - This property is useful if you want to prevent the default Clipboard.ContainsText - behaviour that waits for the clipboard to be available - the clipboard might - never become available if it is owned by a process that is paused by the debugger. - - - - - This class paints the textarea. - - - - - This class views the line numbers and folding markers. - - - - - Get the marker brush (for solid block markers) at a given position. - - The offset. - The length. - All markers that have been found. - The Brush or null when no marker was found. - - - - returns line/column for a visual point position - - - - - returns line/column for a visual point position - - - - - returns line/column for a visual point position - - - - - returns logical line number for a visual point - - - - Gets the first visible logical line. - - - - Gets the width of a space character. - This value can be quite small in some fonts - consider using WideSpaceWidth instead. - - - - - Gets the width of a 'wide space' (=one quarter of a tab, if tab is set to 4 spaces). - On monospaced fonts, this is the same value as spaceWidth. - - - - - This class views the line numbers and folding markers. - - - - - This class stacks the last x operations from the undostack and makes - one undo/redo operation from it. - - - - - - - - - This class implements an undo stack - - - - - Gets/Sets if changes to the document are protocolled by the undo stack. - Used internally to disable the undo stack temporarily while undoing an action. - - - - - Call this method to undo the last operation on the stack - - - - - Call this method to redo the last undone operation - - - - - Call this method to push an UndoableOperation on the undostack, the redostack - will be cleared, if you use this method. - - - - - Call this method, if you want to clear the redo stack - - - - - Clears both the undo and redo stack. - - - - - - - - - - - - - - - - - - - - - Gets if there are actions on the undo stack. - - - - - Gets if there are actions on the redo stack. - - - - - Gets the number of actions on the undo stack. - - - - - Gets the number of actions on the redo stack. - - - - - This class paints the textarea. - - - - - Ensure that is visible. - - - - - Scroll so that the specified line is centered. - - Line to center view on - If this action would cause scrolling by less than or equal to - lines in any direction, don't scroll. - Use -1 to always center the view. - - - - This class handles all mouse stuff for a textArea. - - - - - This class views the line numbers and folding markers. - - - - - This class views the line numbers and folding markers. - - - - - Create a drag'n'drop event handler. - Windows Forms swallows unhandled exceptions during drag'n'drop, so we report them here. - - - - - This is a sample editaction plugin, it indents the selected area. - - - - - Manages the list of markers and provides ways to retrieve markers for specific positions. - - - - - Marks a part of a document. - - - - - Marks the text segment as read-only. - - - - - Gets the last offset that is inside the marker region. - - - - - Description of CodeCompletionListView. - - - - - Contains brushes/pens for the text editor to speed up drawing. Re-Creation of brushes and pens - seems too costly. - - - - - Horizontal ruler - text column measuring ruler at the top of the text area. - - - - - Description of Bookmark. - - - - - Gets the TextAnchor used for this bookmark. - Is null if the bookmark is not connected to a document. - - - - - Gets if the bookmark can be toggled off using the 'set/unset bookmark' command. - - - - - Description of BookmarkEventHandler. - - - - - Class that can open text files with auto-detection of the encoding. - - - - - A class that is able to draw a line on any control (outside the text editor) - - - - - Gets if some client handling the event has already shown a tool tip. - - - - - A stack of Span instances. Works like Stack<Span>, but can be cloned quickly - because it is implemented as linked list. - - - - - A collection that does not allows its elements to be garbage-collected (unless there are other - references to the elements). Elements will disappear from the collection when they are - garbage-collected. - - The WeakCollection is not thread-safe, not even for read-only access! - No methods may be called on the WeakCollection while it is enumerated, not even a Contains or - creating a second enumerator. - The WeakCollection does not preserve any order among its contents; the ordering may be different each - time the collection is enumerated. - - Since items may disappear at any time when they are garbage collected, this class - cannot provide a useful implementation for Count and thus cannot implement the ICollection interface. - - - - - Adds an element to the collection. Runtime: O(n). - - - - - Removes all elements from the collection. Runtime: O(n). - - - - - Checks if the collection contains an item. Runtime: O(n). - - - - - Removes an element from the collection. Returns true if the item is found and removed, - false when the item is not found. - Runtime: O(n). - - - - - Enumerates the collection. - Each MoveNext() call on the enumerator is O(1), thus the enumeration is O(n). - - - - diff --git a/Bin/Debug/SuperDesign/MyDb.dll b/Bin/Debug/SuperDesign/MyDb.dll deleted file mode 100644 index 669e5fd..0000000 Binary files a/Bin/Debug/SuperDesign/MyDb.dll and /dev/null differ diff --git a/Bin/Debug/SuperDesign/MyDb.xml b/Bin/Debug/SuperDesign/MyDb.xml deleted file mode 100644 index 237e86c..0000000 --- a/Bin/Debug/SuperDesign/MyDb.xml +++ /dev/null @@ -1,12487 +0,0 @@ - - - - MyDb - - - - - 基于XML实现的权限类 - - - - - 用户名 - - - - - 用户id - - - - - 密码 - - - - - 权限控制Id - - - - - 用户备注 - - - - - 是否是管理员权限 - - - - - 是否是超级管理员权限 - - - - - 设置权限 - - 权限名称 - 权限值 - 返回是否设置成功 - - - - 获取权限 - - 权限名称 - 默认权限值 - 返回权限值 - - - - 获取权限 - - 权限名称 - 返回权限值 - - - - 批量导入权限 - - 权限相关的内容 - 返回是否执行成功 - - - - 导出权限 - - 返回导出文本 - - - - 清除所有权限 - - 返回是否执行成功 - - - - 汉字转拼音静态类,包括功能全拼和缩写,方法全部是静态的 - - - - - 汉字的机内码数组 - - - - - 机内码对应的拼音数组 - - - - - 把汉字转换成拼音(全拼) - - 汉字字符串 - 转换后的拼音(全拼)字符串 - - - - 把汉字转换成拼音(全拼) - - 汉字字符串 - 转换后的拼音(全拼)字符串 - - - - 把汉字转换成拼音(首拼) - - 汉字字符串 - 转换后的拼音(首拼)字符串 - - - - 把汉字转换成拼音(全拼) - - 汉字字符串 - 用指定字符分隔 - 转换后的拼音(全拼)字符串 - - - - 汉字转拼音缩写 - - 要转换的汉字字符串 - 拼音缩写 - - - - 汉字转拼音缩写 (字符串) (小写) (空格间隔) - - 要转换的汉字字符串 - 拼音缩写 - - - - 汉字转拼音缩写 (大写) - - 要转换的汉字字符串 - 拼音缩写 - - - - 汉字转拼音缩写 (字符串)(大写)(空格间隔) - - 要转换的汉字字符串 - 拼音缩写 - - - - 取单个字符的拼音声母 - - 要转换的单个汉字 - 拼音声母 - - - - 取单个字符的拼音声母 - - 要转换的单个汉字 - 拼音声母 - - - - Ini操作类 - - - - - 写入Ini - - - - - - - - - - 获取Ini - - - - - - - - - - - - 声明INI文件的读操作函数 GetPrivateProfileString() - - - - - - - - - - - - 声明INI文件的读操作函数 GetPrivateProfileString() - - - - - - - - - - 声明INI文件的读操作函数 GetPrivateProfileString() - - - - - - - - - - - - 获取所有节点名称(Section) - - 存放节点名称的内存地址,每个节点之间用\0分隔 - 内存大小(characters) - Ini文件 - 内容的实际长度,为0表示没有内容,为nSize-2表示内存大小不够 - - - - 编码 - - - - - Ini操作类 - - - - - - 根据section取所有key和值 - - - - - - - 读取INI文件中指定INI文件中的所有节点名称(Section) - - 所有节点,没有内容返回string[0] - - - - 读取INI文件 - - 段,格式[] - 键 - 返回byte类型的section组或键值组 - - - - 根据section取所有key - - - - - - - 写入ini - - - - - - - - 写入ini - - - - - - - - 写入ini - - - - - - - - 写入ini - - - - - - - - 写入ini - - - - - - - - 写入Ini - - - - - - - - 读取Ini - - - - - - - - 读取Ini - - - - - - - - - 读取Ini - - - - - - - - - 读取Ini - - - - - - - - - - - 写入ini - - - - - - - - - 删除Ini的Key - - - - - - - 删除Ini节点 - - - - - - 控件信息 - - - - - id - - - - - 控件对象 - - - - - 控件值类型 - - - - - 默认值 - - - - - 值类型 - - - - - 默认 - - - - - 取列表顺序值 - - - - - 取当前选择的列表值 - - - - - 取对象值 - - - - - 保存的设置类型 - - - - - Ini - - - - - XML - - - - - 对象值 - - - - - 显示的文本 - - - - - 图片序号 - - - - - id - - - - - Tag值 - - - - - 显示文本值 - - - - - - 星期数据 - - - - - 一周的开始时间 - - - - - 一周的结束时间 - - - - - XML操作类 - - - - - XML操作类 - - - - - 从XML文本中加载数据 - - - - - - 从指定的XML文本中加载 - - XML文本 - 如为1,表示加载成功,为0为失败 - - - - 载入空的XML文档 - - 如为1,表示加载成功,为0为失败 - - - - 从指定的文件中加载 - - XML文件路径 - 如为1,表示加载成功,为0为失败 - - - - 保存到指定文件中 - - 文件路径 - 如为1,表示保存成功,为0为失败 - - - - 判断节点是否存在 - - 属性名 - 属性值 - 返回1,表示存在,其它表示不存在 - - - - 定位节点 - - 属性名 - 属性值 - 返回第一个符合要求的结果 - - - - 定位节点,如果找不到节点,就新建一个节点 - - 属性名 - 属性值 - 返回第一个符合要求的结果 - - - - 根据用户的节点定位节点,输入节点时,一定要注意节点是属于类内部的,否则可能出错。 - - 返回第一个符合要求的结果 - - - - 定位设置节点 - - 返回第一个符合要求的结果 - - - - 在节点后插入数据 - - - - - - - 在节点前插入数据 - - - - - - - 获取节点数量 - - 属性名 - 属性值 - 返回符合要求的结果数量 - - - - 获取节点数量 - - 返回符合要求的结果数量 - - - - 获取节点数量 - - 属性名 - 属性值 - - - - 返回符合要求的结果数量 - - - - 设置节点值 - - 属性名 - 属性值 - 如为1,表示加载成功,为0为失败 - - - - 设置节点值 - - 属性名 - 属性值 - 如为1,表示加载成功,为0为失败 - - - - 设置节点值 - - 属性名 - 属性值 - 如为1,表示加载成功,为0为失败 - - - - 设置节点值 - - 属性名 - 属性值 - 如为1,表示加载成功,为0为失败 - - - - 设置节点值 - - 属性名 - 属性值 - 如为1,表示加载成功,为0为失败 - - - - 设置节点值 - - 属性名 - 属性值 - 如为1,表示加载成功,为0为失败 - - - - 设置节点值 - - 属性名 - 属性值 - 如为1,表示加载成功,为0为失败 - - - - 读取指定节点的值(string) - - - - - - - 读取指定节点的值 - - - - - - - - 读取指定节点的值 - - - - - - - - 读取指定节点的值 - - - - - - - - 获取属性值 - - - - - - - - 读取指定节点的值 - - - - - - - - 读取指定节点的值 - - - - - - - - 读取指定节点的值 - - - - - - - - 读取所有的节点名称 - - - - - - 读取指定节点的值(string) - - - - - - - - 读取指定节点的值(int) - - - - - - - - 读取指定节点的值(decimal) - - - - - - - - 读取指定节点的值 - - - - - - - - 读取指定节点的值 - - - - - - - - 获取XML文件的根元素 - - - - - 获取所有列表 - - 如为1,表示获取成功,为0为失败 - - - - 获取所有列表 - - 如为1,表示获取成功,为0为失败 - - - - 新增节点 - - - - - - - - 新增节点并定位到新节点 - - - - - - - - 新增设置节点并定位 - - - - - - 在指定节点前新增节点并定位到新节点 - - - - - - - - - 获取当前节点 - - - - - - 删除节点 - - - - - - 获取XML文本 - - - - - - 获取XML文本 - - - - - - 获取文本 - - - - - - 获取文本 - - - - - - 字符串操作类 - - - - - 字符串转Base64 - - - - - - - Base64转字符串 - - - - - - - 转换指定字符串为布尔类型 - - - - - 转换指定字符串为Double类型 - - - - - 已重载.计算两个日期的时间间隔,返回的是时间间隔的日期差的绝对值. - - 第一个日期和时间 - 第二个日期和时间 - - - - - 已重载.计算一个时间与当前本地日期和时间的时间间隔,返回的是时间间隔的日期差的绝对值. - - 一个日期和时间 - - - - - 转换指定字符串为Int类型 - - - - - 转换指定字符串为Int类型 - - - - - 转换指定布尔类型为Int类型,true为1,false为0 - - - - - 判断指定字符串是否是布尔类型 - - - - - 判断指定字符串是否是Double类型 - - - - - 判断指定字符串是否是Int类型 - - - - - 根据年月日转换成日期 - - - - - - - - - 追加字符 - - - - - 获取2个字符串中间的内容,point1为空表示从首位开始算,point2为空表示算到结尾。 - - - - - 判断字符串是否只包含数字或英文 - - - - - - - 判断字符串是否只包含英文 - - - - - - - 判断字符串是否只包含数字 - - - - - - - 判断字符串是否匹配,支持?*通配符 - - 待匹配的字符串 - 匹配的通配符 - - - - - 通配符替换 - - - - - - - - - 支持忽略大小写的替换功能 - - - - - 是否忽略大小写 - - - - - 获取匹配的内容 - - - - - - - - - 文件时间 - - - - - 创建时间 - - - - - 最后修改时间 - - - - - 访问时间 - - - - - 图片类型 - - - - - Bmp图片 - - - - - Jpeg图片 - - - - - Png图片 - - - - - Gif动态图片 - - - - - Tiff图片 - - - - - 对变量的拓展 - - - - - 替换文本(忽略大小写) - - - 需要替换的内容 - 替换后的内容 - - - - - 替换文本(忽略大小写),可支持通配符 - - - - - 是否是通配符表达式,不是,则普通替换,忽略大小写,是,则启用通配符替换 - - - - - 将颜色转换为Html颜色格式 - - - - - - - 支持忽略大小写的替换文本功能 - - - - - 是否忽略大小写 - - - - - 获取符合要求的第一个结果 - - - - 是否是正则 - - - - - 查找字符串,忽略大小写 - - - - - - - - - 查找字符串,忽略大小写 - - - - - - - - 判断字符串是否是数字或英文 - - - - - - - 判断字符串是否是英文 - - - - - - - 判断字符串是否是数字(不同于IsInt,本函数是判断字符串是否只含有数字,对字符串长度没有限制) - - - - - - - 是否在指定范围内 - - - - - - - - - 是否在指定范围内 - - - - - - - - - 转换指定字符串为Int类型 - - - 最小值 - 最大值 - 如果字符串不在范围内,则使用本默认值 - - - - - 转换指定布尔类型到Int类型,true为1,false为0 - - - - - - - 将指定类型转换成整型 - - - - - - - - 将数字转换成字符串,小数点末尾后面不包含0 - - - - - - - 将数字转换成字符串,小数点末尾后面不包含0 - - - - - - - - 将数字转换成字符串,小数点末尾后面不包含0 - - - - - - - 将数字转换成字符串,小数点末尾后面不包含0 - - - - - - - - 将指定类型转换成整型 - - - - - - - 将指定类型转换成长整型,如果时间时间类型,则转换为Unix时间戳 - - - - - - - - 转换为Unix时间戳 - - - - - - - 转换为Js时间戳 - - - - - - - 转换为Unix时间戳 - - - - - - - 将指定类型转换成长整型 - - - - - - - 转换指定类型为Double类型 - - - - - - - - 转换指定类型为Double类型 - - - - - - - 判断时间是否在指定时间上 - - - - - - - - - 判断时间是否在指定时间上 - - - - - - - - - - 判断时间是否在指定日期 - - - - - - - - - 判断时间是否在指定日期 - - - - - - - - - - 转换DateTime类型到日期时间字符串(例如 2000-01-01 08:08:08) - - - - - - - 转换DateTime类型到日期字符串(例如 2000-01-01) - - - - - - - 转换DateTime类型到日期星期字符串(例如 2000-01-01 星期六) - - - - - - - 转换DateTime类型到Unix时间戳 - - - - - - - 转换Unix时间戳到DateTime类型 - - - - - - - 判断字符串是否与内容匹配 - - - - - - - - 将变量值转换成Double类型,如果不在指定区域范围内,则使用默认值 - - - - - - - - - - 转换到文件大小字符串 - - - - - - - 转换到文件大小字符串 - - - - - - - 转换指定类型为Decimal类型 - - - - - - - - 将变量值转换成Decimal类型 - - - - - - - 将变量值转换成Decimal类型,如果不在指定区域范围内,则使用默认值 - - - - - - - - - - 转换指定类型为DateTime类型 - - - - - - - - 将变量值转换成DateTime类型 - - - - - - - 转换指定类型为布尔类型 - - - - - - - 追加字符 - - - - - - - - 获取指定字符串之间的内容 - - - - - - - - - 获取指定字符串之间的内容 - - - - - - - - - - - - 判断指定字符串是否是Int类型 - - - - - - - 判断指定字符串是否是Double类型 - - - - - - - 判断是否是布尔类型 - - - - - - - 将字符串转换为Base64类型 - - - - - - - 判断字符串是否在指定长度 - - - - - - - - - 判断能否转换成日期格式 - - - - - - - 根据表单字段名,获取对应的值 - - - - - - - - - 根据表单字段名,获取对应的值 - - - - - - - - 根据表单字段名,获取对应的值 - - - - - - - - - 根据表单字段名,获取对应的值 - - - - - - - - - 根据表单字段名,获取对应的值 - - - - - - - - - 根据表单字段名,获取对应的值 - - - - - - - - - 根据表单字段名,获取对应的值 - - - - - - - - - 获取不含域名的部分网址 - - - - - - - 文件信息 - - - - - 获取版本号 - - - - - 获取版本号 - - - - - - - 根据版本字符串输出double类型的版本号 - - - - - - - - 比较两个版本号大小 - - - - oldVer小于newVer,返回1,大于则返回-1,相等返回0,不支持则返回-1000 - - - - 从字符串中提取版本号 - - - - - - - 比较版本号 - - - - - - old小于new,返回1,大于则返回-1,相等返回0 - - - - 判断是否是管理员方式运行 - - - - - - 大文件与批量文件操作类,支持中途取消操作,本类需要实例化操作 - - - - - 传输进度 - - 当前传输完成的值 - 全部值,为-1表示无法获取 - 当前传输的百分比,为-1表示无法获取 - - - - 传输进度 - - - - - 取消事件 - - - - - 大文件按流复制文件,支持自动创建目标文件夹。 true:复制成功 false:复制失败 - - 原始文件路径 - 复制目标文件路径 - - - - - 复制文件夹到目标文件夹,不支持进度事件,支持中途取消 - - 源文件夹 - 目标文件夹 - 返回复制操作是否成功的标识,成功返回0,负数表示复制失败的文件数量。1表示源文件夹不存在 - - - - 复制文件夹到目标文件夹,支持进度事件,支持中途取消 - - 源文件夹 - 目标文件夹 - 返回复制操作是否成功的标识,成功返回0,负数表示复制失败的文件数量。1表示源文件夹不存在 - - - - 复制文件夹到目标文件夹,支持中途取消 - - 源文件夹 - 目标文件夹 - 初始的文件数量 - 总数量,如果不计算,则使用-1 - 操作的数量,包含成功的和失败的 - 返回复制操作是否成功的标识,成功返回0,负数表示复制失败的文件数量。1表示源文件夹不存在 - - - - 获取文件夹中的文件数量 - - 文件夹路径 - 返回文件数量,中途取消则返回-1 - - - - 获取文件夹的大小 - - 文件夹路径 - 返回文件数量,中途取消则返回-1 - - - - 添加文件到指定文件夹,会进行自动重命名,并返回重命名后的文件名(含路径) - - 要添加的文件路径 - 要添加到的文件夹 - 是否根据时间进行重命名 - 返回是否成功执行 - 成功执行则返回路径,否则返回空 - - - - Hosts操作类 - - - - - 获取并转换hosts内容 - - hosts内容 - - - - - 获取hosts并转换hosts内容 - - - - - - 追加内容到hosts里 - - 要追加的内容列表,每一行为ip 域名的格式 - 0表示无需新增,-1表示添加失败,1表示追加成功 - - - - write为true,追加内容到hosts里;为false,判断是否需要追加 - - 要追加的内容列表,每一行为ip 域名的格式 - 是否要写入,如果为false,则只判断是否需要追加,而不写入Hosts文件 - 0表示无需新增,-1表示添加失败,1表示追加成功 - - - - 追加内容到hosts里 - - 要追加的内容 - 0表示无需新增,-1表示添加失败,1表示追加成功 - - - - 追加内容到hosts里 - - ip地址 - 域名 - 0表示无需新增,-1表示添加失败,1表示追加成功 - - - - 从hosts文件里删除内容 - - 要删除的内容 - 0表示无需删除,-1表示添加失败,1表示删除成功 - - - - 从hosts文件里删除内容 - - ip地址 - 域名 - 0表示无需删除,-1表示添加失败,1表示删除成功 - - - - Host信息 - - - - - IP - - - - - 域名 - - - - - 注释 - - - - - 是否要删除 - - - - - 图片相关API - - - - - 从文件或Url中加载图片,使用本方法,不会导致图片文件被占用。 - - - - - - - 保存高质量不失真照片 - - - - - - - - 保存高质量不失真照片 - - - - - - - - 保存高质量不失真照片 - - - - - - - - 保存高质量不失真照片 - - - - - - - 保存高质量不失真照片 - - - - - - - 以逆时针为方向对图像进行旋转 - - 位图流 - 旋转角度[0,360](前台给的) - - - - - 是否包括透明像素 - - - - 操作失败 - - - - 矩形边界 - - - - - - - - 计算水印位置 - - - - - - - - - 写入水印 - - 原图 - 水印图片 - 水印位置 - 不透明度(0~1),越小越透明 - - - - - 写入水印 - - 原图 - 水印图片 - 水印位置 - x坐标偏移 - y坐标偏移 - 不透明度(0~1),越小越透明 - - - - - 写入水印 - - 原图 - 水印图片 - 水印位置 - x坐标偏移 - y坐标偏移 - 不透明度(0~1),越小越透明 - - - - - 计算最大字体大小 - - - - - - - - - - - 计算旋转矩形大小 - - - - - - - - 写入水印文字 - - 图片 - 水印文字 - 水印字体名字 - 字体颜色 - 字体大小 - 旋转角度 - 水印位置 - x坐标偏移 - y坐标偏移 - 不透明度(0~1),越小越透明 - - - - - 写入水印文字 - - 图片 - 水印文字 - 水印字体名字 - 字体颜色 - 字体大小 - 旋转角度 - 水印位置 - x坐标偏移 - y坐标偏移 - 不透明度(0~1),越小越透明 - - - - - 写入水印文字 - - 图片 - 水印文字 - 水印字体名字 - 字体颜色 - 字体大小 - 旋转角度 - 水印位置 - 不透明度(0~1),越小越透明 - - - - - 往图片右下角写入水印文字 - - 图片 - 水印文字 - 水印字体名字 - 字体颜色 - 字体大小 - 不透明度(0~1),越小越透明 - - - - - 往图片右下角写入水印文字 - - 图片 - 水印文字 - 水印字体名字 - 字体颜色 - 字体大小 - - - - - 缩放 - - - 宽 - 高 - 插值算法 - 返回缩放后的图片 - Image 不能为 null - 操作失败 - - - - 缩放 - - - 宽 - 高 - 返回缩放后的图片 - Image 不能为 null - 操作失败 - - - - 根据原边长和新边长计算绘制的起始点坐标 - - - - - - - - 获取缩放模式 - - - - - - 是否裁剪图片 - - - - - 裁剪或填充 - - - - - 背景色 - 插值算法 - - Image 不能为 null - 操作失败 - - - - 裁剪 - - - 宽度 - 高度 - - 返回裁剪后的图片 - Image 不能为 null - 新的图片尺寸的宽度和高度必须大于零 - 操作失败 - - - - 调整宽度 - - - - - - - - 根据最大宽度调整图片尺寸 - - - 最大宽度 - 返回调整后的图片 - Image 不能为 null - 最大宽度必须大于零 - 操作失败 - - - - 根据最大高度调整图片尺寸 - - - 最大高度 - 返回调整后的图片 - Image 不能为 null - 最大宽度必须大于零 - 操作失败 - - - - 调整高度 - - - - - - - - 调整图片大小 - - - - - - - - - - 调整图片大小 - - - - - - - - - - - 调整图片大小 - - - - - - - - - - - - - 转换Image为Icon - - 要转换为图标的Image对象 - 当image为null时是否返回null。false则抛空引用异常 - - - - - 缩放模式 - - - - - 宽度优先(不裁剪宽) - - - - - 高度优先(不裁剪高) - - - - - 水印位置 - - - - - 左上角 - - - - - 中上 - - - - - 右上角 - - - - - 左中 - - - - - 居中 - - - - - 右中 - - - - - 左下角 - - - - - 中下 - - - - - 右下角 - - - - - 全屏平铺 - - - - - 音频播放类 - - - - - 临时音频文件 - - - - - 父窗口句柄 - - - - - 声音标签 - - - - play synchronously (default) - - - play asynchronously - - - silence (!default) if sound not found - - - pszSound points to a memory file - - - loop the sound until next sndPlaySound - - - don’t stop any currently playing sound - - - Stop Playing Wave - - - don’t wait if the driver is busy - - - name is a registry alias - - - alias is a predefined id - - - name is file name - - - name is resource name or atom - - - - 音频播放类 - - embedded music file - 临时保存的文件位置 - 父窗口句柄 - - - - 音频播放类 - - 要播放的音频位置 - 父窗口句柄 - - - - 音频播放类 - - - 父窗口句柄 - - - - 播放音频 - - - - - - 播放音频 - - - - - 关闭音频 - - - - - 文件操作类 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 删除单个文件。 - - 删除的文件名 - 指示是将文件放入回收站还是永久删除,true-放入回收站,false-永久删除 - 指示是否显示确认对话框,true-显示确认删除对话框,false-不显示确认删除对话框 - 指示是否显示进度对话框,true-显示,false-不显示。该参数当指定永久删除文件时有效 - 反馈错误消息的字符串 - 操作执行结果标识,删除文件成功返回0,否则,返回错误代码 - - - - 删除单个文件。 - - 删除的文件名 - 指示是将文件放入回收站还是永久删除,true-放入回收站,false-永久删除 - 操作执行结果标识,删除文件成功返回0,否则,返回错误代码 - - - - 永久删除单个文件。 - - 永久删除的文件名 - 操作执行结果标识,删除文件成功返回0,否则,返回错误代码 - - - - 删除一组文件。 - - 字符串数组,表示一组文件名 - 指示是将文件放入回收站还是永久删除,true-放入回收站,false-永久删除 - 指示是否显示确认对话框,true-显示确认删除对话框,false-不显示确认删除对话框 - 指示是否显示进度对话框,true-显示,false-不显示。该参数当指定永久删除文件时有效 - 反馈错误消息的字符串 - 操作执行结果标识,删除文件成功返回0,否则,返回错误代码 - - - - 移动文件到指定路径下 - - 要移动的文件名 - 移动到的目的路径 - - - - - 移动一个文件到指定路径下 - - 要移动的文件名 - 移动到的目的路径 - 指示是否显示确认对话框,true-显示确认对话框,false-不显示确认对话框 - 指示是否显示进度对话框 - 指示当文件名重复时,是否自动为新文件加上后缀名 - 反馈错误消息的字符串 - 返回移动操作是否成功的标识,成功返回0,失败返回错误代码 - - - - 移动一组文件到指定的路径下 - - 要移动的文件名数组 - 移动到的目的路径 - 指示是否显示确认对话框,true-显示确认对话框,false-不显示确认对话框 - 指示是否显示进度对话框 - 指示当文件名重复时,是否自动为新文件加上后缀名 - 反馈错误消息的字符串 - 返回移动操作是否成功的标识,成功返回0,失败返回错误代码,-200:表示其他异常 - - - - 复制文件到指定的文件名或路径 - - 要复制的文件名 - 复制到的目的文件名或路径 - - - - - 复制文件到指定的文件名或路径 - - 要复制的文件名 - 复制到的目的文件名或路径 - 指示是否显示确认对话框,true-显示确认对话框,false-不显示确认对话框 - 指示是否显示进度对话框 - 指示当文件名重复时,是否自动为新文件加上后缀名 - 返回错误信息 - 返回移动操作是否成功的标识,成功返回0,失败返回错误代码,-200:表示其他异常 - - - - 复制一组文件到指定的路径 - - 要复制的文件名数组 - 复制到的目的路径 - 指示是否显示确认对话框,true-显示确认对话框,false-不显示确认对话框 - 指示是否显示进度对话框 - 指示当文件名重复时,是否自动为新文件加上后缀名 - 返回错误信息 - 返回移动操作是否成功的标识,成功返回0,失败返回错误代码,-200:表示其他异常 - - - - 大文件多次复制文件 true:复制成功 false:复制失败 - - 原始文件路径 - 复制目标文件路径 - - - - - 复制文件夹到目标文件夹(从3.0.2205.2601版本起已更换实现底层) - - 源文件夹 - 目标文件夹 - 返回复制操作是否成功的标识,成功返回0,负数表示复制失败的文件数量。1表示源文件夹不存在 - - - - 重命名一个文件为新名称,建议您使用更方便的Microsoft.VisualBasic.FileSystem.ReName();替换该方法 - - 要复制的文件名 - 复制到的目的文件名或路径 - 指示是否显示确认对话框,true-显示确认对话框,false-不显示确认对话框 - 返回错误信息 - 返回移动操作是否成功的标识,成功返回0,失败返回错误代码,-200:表示其他异常 - - - - 删除单个或多个文件 - - 删除的文件名,如果是多个文件,文件名之间以字符串结尾符'\0'隔开 - 指示是将文件放入回收站还是永久删除,true-放入回收站,false-永久删除 - 指示是否显示确认对话框,true-显示确认删除对话框,false-不显示确认删除对话框 - 指示是否显示进度对话框,true-显示,false-不显示。该参数当指定永久删除文件时有效 - 反馈错误消息的字符串 - 操作执行结果标识,删除文件成功返回0,否则,返回错误代码 - - - - 移动或复制一个或多个文件到指定路径下 - - 操作类型,是移动操作还是复制操作 - 要移动或复制的文件名,如果是多个文件,文件名之间以字符串结尾符'\0'隔开 - 移动到的目的位置 - 指示是否显示确认对话框,true-显示确认对话框,false-不显示确认对话框 - 指示是否显示进度对话框 - 指示当文件名重复时,是否自动为新文件加上后缀名 - 反馈错误消息的字符串 - 返回移动操作是否成功的标识,成功返回0,失败返回错误代码 - - - - 如果指定文件夹不存在,则创建文件夹 - - - - - - 获取一个文件的全名 - - 文件名 - 返回生成文件的完整路径名 - - - - 获取一个文件的全名 - - 文件名 - 返回生成文件的完整路径名 - - - - 解释错误代码 - - 代码号 - 返回关于错误代码的文字描述 - - - - 运行文件 - - - - - - - - /运行文件 - - - - - - - - - 运行程序 - - - - - - - 打开文件 - - - - - - - 打开文件夹并定位文件 - - - - - - - 打开网址 - - - - - - - 判断是否为空的文件夹 - - - - - - - 文件或文件夹是否存在 - - - - - - - 判断文件名是否有效 - - - - - - - 转换到有效文件名 - - - - - - - 追加日志 - - - - - - - 追加文件 - - - - - - - 读取文件内容,可以自动识别文件编码 - - - - - - - 读取文件内容,可以自动识别文件编码 - - - - - - - - 读取文件所有行,可以自动识别文件编码 - - - - - - - 读取文件所有行,可以自动识别文件编码 - - - - - - - - 写入所有文本行到文件,如果文件夹不存在,会自动创建 - - - - - - - - 写入所有文本到文件,如果文件夹不存在,会自动创建 - - - - - - - - 以UTF-8格式写入所有文本到文件,如果文件夹不存在,会自动创建 - - - - - - - 从文件中加载图片,使用本方法,不会导致图片文件被占用。 - - - - - - 获取文件大小 - - - - - - - 添加文件到指定文件夹,会进行自动重命名,并返回重命名后的文件名(含路径) - - 要添加的文件路径 - 要添加到的文件夹 - 是否根据时间进行重命名 - 返回是否成功执行 - 成功执行则返回路径,否则返回空 - - - - 获取文件大小字符串 - - - - - - - 根据文件大小字符串获取长整型表示的文件大小 - - - - - - - 获取文件大小字符串 - - - - - - - 复制内容到剪切板 - - - - - - 添加某个控件为支持拖放属性 - - - - - - - 使管理员方式运行时支持拖放 - - - - - - - 保存高质量不失真照片 - - - - - - - - 保存高质量不失真照片 - - - - - - - - 保存高质量不失真照片 - - - - - - - - 保存高质量不失真照片 - - - - - - - 保存高质量不失真照片 - - - - - - - 获取绝对路径 - - - - - - - 获取相对路径 - - - - - - - 获取图标 - - - - - - - - - - - - - - 销毁图标 - - - - - - - 获取文件图标 - - - - - - - - - - 用于取得一个文本文件的编码方式(Encoding)。 - - - - - 用于取得一个文本文件的编码方式(Encoding)。 - - - - - 取得一个文本文件的编码方式。如果无法在文件头部找到有效的前导符,Encoding.Default将被返回。 - - 文件名。 - - - - - 取得一个文本文件流的编码方式。 - - 文本文件流。 - - - - - 取得一个文本文件的编码方式。 - - 文件名。 - 默认编码方式。当该方法无法从文件的头部取得有效的前导符时,将返回该编码方式。 - - - - - 取得一个文本文件流的编码方式。 - - 文本文件流。 - 默认编码方式。当该方法无法从文件的头部取得有效的前导符时,将返回该编码方式。 - - - - - 通过给定的文件流,判断文件的编码类型 - - 文件流 - 文件的编码类型 - - - - 判断是否是不带 BOM 的 UTF8 格式 - - - - - - - 数据库操作扩展 - - - - - 判断DataSet是否包含数据 - - - - - - - 获取首行数据,如果没有数据,则返回null - - - - - - - 获取第一行第一列的值 - - - - - - - 获取第一张表的指定行数据 - - - 指定第几行 - - - - - 对鼠标或键盘的自动化操作 - - - - - 鼠标左键 - - - - - 鼠标中键 - - - - - 鼠标右键 - - - - - 模拟键盘按键 - - - - 按下还是抬起 - - - - 鼠标滚轮 - - - - - - - - 鼠标移动 - - - - - - - - 自定义鼠标按下或抬起 - - - - - - - - - 左键单击鼠标(支持后台单击) - - 指定要发送单击命令的句柄 - 坐标x(句柄内的坐标,非屏幕坐标) - 坐标y(句柄内的坐标,非屏幕坐标) - - - - 左键单击鼠标(支持后台单击) - - 指定要发送单击命令的句柄 - 坐标(句柄内的坐标,非屏幕坐标) - - - - 右键单击鼠标(支持后台单击) - - 指定要发送单击命令的句柄 - 坐标x(句柄内的坐标,非屏幕坐标) - 坐标y(句柄内的坐标,非屏幕坐标) - - - - 右键单击鼠标(支持后台单击) - - 指定要发送单击命令的句柄 - 坐标(句柄内的坐标,非屏幕坐标) - - - - 中键单击鼠标(支持后台单击) - - 指定要发送单击命令的句柄 - 坐标x(句柄内的坐标,非屏幕坐标) - 坐标y(句柄内的坐标,非屏幕坐标) - - - - 中键单击鼠标(支持后台单击) - - 指定要发送单击命令的句柄 - 坐标(句柄内的坐标,非屏幕坐标) - - - - 左键单击鼠标(不支持后台单击) - - 坐标x(屏幕坐标) - 坐标y(屏幕坐标) - - - - 左键单击鼠标(不支持后台单击) - - 坐标(屏幕坐标) - - - - 右键单击鼠标(不支持后台单击) - - 坐标x(屏幕坐标) - 坐标y(屏幕坐标) - - - - 右键单击鼠标(不支持后台单击) - - 坐标(屏幕坐标) - - - - 中键单击鼠标(不支持后台单击) - - 坐标x(屏幕坐标) - 坐标y(屏幕坐标) - - - - 中键单击鼠标(不支持后台单击) - - 坐标(屏幕坐标) - - - - 粘贴文本 - - - - - - 获取指定句柄的大小及位置 - - - - - - - - 设置指定句柄的大小 - - - - - - - 判断鼠标位置是不是在指定的矩形中 - - - - - - - - 判断2张图是否相似度超90 - - - - - - - - /获取2种颜色的相似度,范围为0~100 - - - - - - - - 新模态窗体 - - - - - 设置窗体返回的结果值,并关闭窗体。 - - 当前窗体 - 模态变量 - 防止 - - - - 窗体返回的结果事件 - - - - - - - 当打开的窗体返回结果时激发 - - - - - 窗体返回的状态 - - - - - 实例化类 - - 父窗体,如果为null,则取桌面为父窗体 - - - - - 获取最顶级的父窗口 - - - - - - 显示新模态窗体,会暂时禁用父窗体,关闭当前窗体后,父窗体会恢复。 - - - - - 只运行一个实例,打开后,所有窗体都依然有效。 - - - - - - 显示窗体 - - 显示的位置 - - - - 显示在父窗体中间 - - - - - 窗体显示位置 - - - - - 右上角 - - - - - 顶部中间 - - - - - 顶部右边 - - - - - 中间 - - - - - 左下角 - - - - - 底部中间 - - - - - 右下角 - - - - - 父窗体居中 - - - - - - - - - - - - - - - - - - - - - - - - - 设置线程数量 - - - - - 要计算的总数量 - - - - - 每个线程要计算的数量 - - - - - - - - - - 当前已使用的时间 - - - - - - - 线程数量 - 要计算的事务数量 - - - - - - - - - - - - - - - - - - - - - - - 多线程计算时激发 - - - - - 在所有线程执行完毕后发生 - - - - - 在线程执行完毕后发生,最后一个执行完毕的线程将不收到本事件通知 - - - - - 进程相关接口 - - - - - 获取进程路径 - - - - - - - 获取进程路径 - - - - - - - 获取命令行 - - - - - - - 获取命令行 - - - - - - - 运行库检测类 - - - - - 获取产品状态 - - - - - - - 判断是否已安装VC运行库 - - - - - - 判断是否已安装VC运行库 - - - - - - 安装状态 - - - - - 组件禁用 - - - - - 配置数据已损坏 - - - - - 安装已暂停或正在进行 - - - - - 从源运行,源不可用 - - - - - 返回缓冲区溢出 - - - - - 无效的参数传递给该函数。 - - - - - 不公布或者未安装该产品。 - - - - - 损坏 - - - - - 该产品已公布但尚未安装。 - - - - - 正在移除的组件(操作状态,不可设置) - - - - - 不同的用户安装该产品。 - - - - - 安装在本地驱动器上 - - - - - 从源代码、CD或网络运行 - - - - - 为当前用户安装该产品。 - - - - - 安装的版本,是x86还是x64,还是全部安装了 - - - - - 判断32位和64位运行库是否已安装 - - - - - 判断32位运行库是否已安装 - - - - - 判断64位运行库是否已安装 - - - - - 判断是否已安装VC2005运行库 - - - - - - 判断是否已安装VC2005SP1运行库 - - - - - - 判断是否已安装VC2008运行库 - - - - - - 判断是否已安装VC2008SP1运行库 - - - - - - 判断是否已安装VC2010运行库 - - - - - - 判断是否已安装VC2010SP1运行库 - - - - - - 判断是否已安装VC2012运行库 - - - - - - 判断是否已安装VC2013运行库 - - - - - - 判断是否已安装VC2015或以上运行库 - - - - - - 判断是否已安装VC2017运行库或以上运行库 - - - - - - 判断是否已安装VC2019运行库或以上运行库 - - - - - - 判断是否已安装VC2022运行库或以上运行库 - - - - - - 判断当前系统是否安装了WebView2组件 - - - - - - 判断当前系统是否安装了.NET 4.8 - - - - - - 日期时间的操作类 - - - - - 获取当前是周几,周一到周日,分别是1-7. - - - - - - - 获取当前是周几,1-7,分别是返回一到日. - - - - - - - 获取当前是周几,输入日期,根据周几,分别是返回一到日. - - - - - - - 获取一周的开始和结束,开始时间为第一天的0点,结束时间以最后一天的0点为结束时间 - - - - - - - 获取2个日期相差几周 - - - - - - - - 获取2个日期相差几个月 - - - - - - - - 获取一个月的开始 - - - - - - - 判断是否在同一个星期。 - - - - - - - - 判断是否在同一个月。 - - - - - - - - 判断是否在同一天 - - - - - - - - 计算两个日期的时间间隔,返回的是时间间隔的日期差的绝对值. - - 第一个日期和时间 - 第二个日期和时间 - - - - - 计算两个日期的时间间隔,返回的是时间间隔的日期差的绝对值. - - 第一个日期和时间 - 第二个日期和时间 - 是否显示秒 - - - - - 将秒数显示成中文表达式 - - - - - - - 计算一个时间与当前本地日期和时间的时间间隔,返回的是时间间隔的日期差的绝对值. - - 一个日期和时间 - - - - - 将c# DateTime时间格式转换为Unix时间戳格式 - - 时间 - long - - - - 时间戳转为C#格式时间 - - - - - - - 时间戳转为C#格式时间 - - - - - - - 将c# DateTime时间格式转换为js时间戳格式 - - 时间 - long - - - - JS时间戳转为C#格式时间 - - - - - - - JS时间戳转为C#格式时间 - - - - - - - 根据年月日转换成日期 - - - - - - - - - 根据日期和时间转换成日期时间 - - - - - - - - 将时间转换成当前分钟开始的时间 - - - - - - - 将时间转换成当前秒钟开始的时间 - - - - - - - 当前时间在这一天里的秒数 - - - - - - - 窗体操作类 - - - - - 设置Comobox的行间距 - - - - - - - 移除关闭按钮。返回值,非零表示成功,零表示失败。 - - 窗口的句柄 - 是否成功 - - - - 把窗体放到最前 - - - - - - 显示窗体 - - - - - - - - 设置窗体是否置顶 - - - - - - - 显示没有焦点的窗口 - - - - - - 根据句柄获取窗口文本 - - - - - - - 根据句柄获取窗口类 - - - - - - - 获取当前活动的窗口句柄 - - - - - - 获取当前前台的窗口句柄 - - - - - - 设置为当前活动窗口 - - - - - - - 根据窗口句柄来获得进程id - - - - - - - 显示窗体 - - - - - - 设置窗体父窗体为桌面,不会随着显示桌面而最小化,但无法设置窗体透明度 - - - - - - 结束进程 - - - - - - - 打开窗体,只打开一个实例(非模态) - - - - - - - 将窗体植入到容器控件中 - - - 作为窗体容器的控件 - - - - - 重新调整窗体大小以适配容器大小 - - - 作为窗体容器的控件 - - - - - 设置注册表操作,部分功能需要管理员权限 - - - - - 访问的注册表位置(64位还是32位) - - - - - 访问的注册表节点 - - - - - 判断注册表项是否存在 - - - - - - - - - 删除注册表键(如果存在子键,子键将一并被删除) - - - - - - - - - - 删除注册表键值 - - - - - - - - - - 获取注册表键值 - - - - - - - - - - - 设置注册表键值 - - - - - - - - - - - 设置注册表键值 - - - - - - - - - - - 设置是否开机启动 - - 是否开机启动 - 开机启动名称 - 启动命令 - - - - - 设置是否开机启动 - - 是否开机启动 - 开机启动名称 - - - - - 把指定文件设置为开机启动或取消开机启动 - - 是否开机启动 - 开机启动名称 - 要开机启动的文件路径 - - - - - 检查是否开机启动 - - 开机启动名称 - 开机启动命令 - - - - - 检查是否开机启动 - - 开机启动名称 - - - - - 判断指定文件是否是开机启动 - - 开机启动名称 - 文件路径 - - - - - 判断当前程序是否是开机启动 - - 开机启动名称 - - - - - 判断当前程序是否是开机启动 - - 开机启动名称 - 启动命令行 - - - - - 设置指定文件的浏览器控件内核版本 - - 文件名,要求不带路径 - 7000 表示IE7兼容视图模式;8000 表示IE8 标准模式 ;8888 表示IE8 强制标准模式,在渲染失败的情况下不尝试用兼容视图模式 - - - - - 设置文件关联 - - 扩展名(如.apk) - 映射的扩展名(如apkfile) - app名称(建议用英文数字) - 文件关联描述 - 文件路径 - - - - 设置文件关联 - - 映射的扩展名(如apkfile) - app名称(建议用英文数字) - 文件关联描述 - 文件路径 - - - - 在指定文件格式右键菜单中增加菜单 - - 扩展名(如.apk) - app名称(建议用英文数字) - 文件关联描述 - 文件路径 - - - - 删除文件关联 - - 映射的扩展名(如apkfile) - app名称(建议用英文数字) - - - - 获取文件关联是否存在 - - 映射的扩展名(如apkfile) - app名称(建议用英文数字) - - - - 采用的IE模式 - - - - - IE7兼容视图 - - - - - IE8 标准模式 - - - - - IE8 强制标准模式,在渲染失败的情况下不尝试用兼容视图模式 - - - - - IE9 标准模式 - - - - - IE9 强制标准模式,在渲染失败的情况下不尝试用兼容视图模式 - - - - - IE10 标准模式 - - - - - IE10 强制标准模式,在渲染失败的情况下不尝试用兼容视图模式 - - - - - 设置当前软件的浏览器控件内核版本 - - 7000 表示IE7兼容视图模式;8000 表示IE8 标准模式 ;8888 表示IE8 强制标准模式,在渲染失败的情况下不尝试用兼容视图模式 - - - - - 设置指定文件的浏览器控件内核版本 - - 文件名,要求不带路径 - IE内核版本 - - - - - 设置当前软件的浏览器控件内核版本 - - IE内核版本 - - - - - 系统函数 - - - - - - - - - - 红 - - - - - 绿 - - - - - 蓝 - - - - - 获取屏幕伽马值 - - - - - - - - 设置屏幕伽马值 - - - - - - - - 获取键盘和鼠标没有操作的时间 - - - - - - 设置屏幕 Gamma值 - - - - - - - - - 设置屏幕亮度 - - - - - - - 获取系统名称,注意需要在app.manifest文件中设置兼容win10 - - - - - - 窗体操作类 - - - - - 构造函数 - - - - - - 析构 - - - - - 设置让窗体支持移动 - - - - - 是否允许可调节大小 - - - - - 可调节窗体大小的宽度 - - - - - - - - - - - - - - - - - - - - - - - 开始截图 - - 是否截取鼠标指针 - - - - - - - - - - 根据XPath来获取属性值 - - - - 属性名,为空则输出InnerText,-1则输出InnerHtml,-2则输出OuterHtml - - - - - - 根据当前节点生成HtmlDocument - - - - - - - 根据XPath来获取属性值 - - - - 属性名,为空则输出InnerText,-1则输出InnerHtml,-2则输出OuterHtml - - - - - - 根据XPath来查找节点 - - - - - - - - 在当前节点下根据xpath来查找符合的第一个节点 - - - - - - - - 在当前节点下根据xpath来查找所有符合的节点 - - - - - - - - A utility class to compute CRC32. - - - - - Compute a checksum for a given array of bytes. - - The array of bytes to compute the checksum for. - The computed checksum. - - - - Compute a checksum for a given string. - - The string to compute the checksum for. - The computed checksum. - - - - Represents an HTML attribute. - - - - - Gets the line number of this attribute in the document. - - - - - Gets the column number of this attribute in the document. - - - - - Gets the stream position of the value of this attribute in the document, relative to the start of the document. - - - - - Gets the length of the value. - - - - - - - - - - Gets the qualified name of the attribute. - - - - - Name of attribute with original case - - - - - Gets the HTML document to which this attribute belongs. - - - - - Gets the HTML node to which this attribute belongs. - - - - - Specifies what type of quote the data should be wrapped in - - - - - Specifies what type of quote the data should be wrapped in (internal to keep backward compatibility) - - - - - Gets the stream position of this attribute in the document, relative to the start of the document. - - - - - Gets or sets the value of the attribute. - - - - - Gets the DeEntitized value of the attribute. - - - - - Gets a valid XPath string that points to this Attribute - - - - - Compares the current instance with another attribute. Comparison is based on attributes' name. - - An attribute to compare with this instance. - A 32-bit signed integer that indicates the relative order of the names comparison. - - - - Creates a duplicate of this attribute. - - The cloned attribute. - - - - Removes this attribute from it's parents collection - - - - - An Enum representing different types of Quotes used for surrounding attribute values - - - - - A single quote mark ' - - - - - A double quote mark " - - - - - No quote mark - - - - - The initial value (current value) - - - - - Represents a combined list and collection of HTML nodes. - - - - - Gets the number of elements actually contained in the list. - - - - - Gets readonly status of colelction - - - - - Gets the attribute at the specified index. - - - - - Gets a given attribute from the list using its name. - - - - - Adds a new attribute to the collection with the given values - - - - - - - Adds supplied item to collection - - - - - Adds a range supplied items to collection. - An IEnumerable<HtmlAttribute> of items to append to this. - - - Adds a range supplied items to collection using a dictionary. - A Dictionary<string,string> of items to append to this. - - - - Explicit clear - - - - - Retreives existence of supplied item - - - - - - - Copies collection to array - - - - - - - Get Explicit enumerator - - - - - - Explicit non-generic enumerator - - - - - - Retrieves the index for the supplied item, -1 if not found - - - - - - - Inserts given item into collection at supplied index - - - - - - - Explicit collection remove - - - - - - - Removes the attribute at the specified index. - - The index of the attribute to remove. - - - - Inserts the specified attribute as the last attribute in the collection. - - The attribute to insert. May not be null. - The appended attribute. - - - - Creates and inserts a new attribute as the last attribute in the collection. - - The name of the attribute to insert. - The appended attribute. - - - - Creates and inserts a new attribute as the last attribute in the collection. - - The name of the attribute to insert. - The value of the attribute to insert. - The appended attribute. - - - - Checks for existance of attribute with given name - - - - - - - Inserts the specified attribute as the first node in the collection. - - The attribute to insert. May not be null. - The prepended attribute. - - - - Removes a given attribute from the list. - - The attribute to remove. May not be null. - - - - Removes an attribute from the list, using its name. If there are more than one attributes with this name, they will all be removed. - - The attribute's name. May not be null. - - - - Remove all attributes in the list. - - - - - Returns all attributes with specified name. Handles case insentivity - - Name of the attribute - - - - - Removes all attributes from the collection - - - - - Clears the attribute collection - - - - - Represents an HTML comment. - - - - - Gets or Sets the comment text of the node. - - - - - Gets or Sets the HTML between the start and end tags of the object. In the case of a text node, it is equals to OuterHtml. - - - - - Gets or Sets the object and its content in HTML. - - - - - Represents a complete HTML document. - - - - True to disable, false to enable the behavior tag p. - - - Default builder to use in the HtmlDocument constructor - - - Action to execute before the Parse is executed - - - - Defines the max level we would go deep into the html document - - - - The HtmlDocument Text. Careful if you modify it. - - - True to stay backward compatible with previous version of HAP. This option does not guarantee 100% compatibility. - - - - Adds Debugging attributes to node. Default is false. - - - - - Defines if closing for non closed nodes must be done at the end or directly in the document. - Setting this to true can actually change how browsers render the page. Default is false. - - - - - Defines if non closed nodes will be checked at the end of parsing. Default is true. - - - - - Defines if a checksum must be computed for the document while parsing. Default is false. - - - - - Defines if SelectNodes method will return null or empty collection when no node matched the XPath expression. - Setting this to true will return empty collection and false will return null. Default is false. - - - - True to disable, false to enable the server side code. - - - - Defines the default stream encoding to use. Default is System.Text.Encoding.Default. - - - - - Force to take the original comment instead of creating it - - - - - Defines if source text must be extracted while parsing errors. - If the document has a lot of errors, or cascading errors, parsing performance can be dramatically affected if set to true. - Default is false. - - - - - Defines the maximum length of source text or parse errors. Default is 100. - - - - - Defines if LI, TR, TH, TD tags must be partially fixed when nesting errors are detected. Default is false. - - - - - Defines if output must conform to XML, instead of HTML. Default is false. - - - - - If used together with and enabled, Xml namespaces in element names are preserved. Default is false. - - - - - Defines if attribute value output must be optimized (not bound with double quotes if it is possible). Default is false. - - - - Defines the global attribute value quote. When specified, it will always win. - - - - Defines if name must be output with it's original case. Useful for asp.net tags and attributes. Default is false. - - - - - Defines if name must be output in uppercase. Default is false. - - - - - Defines if declared encoding must be read from the document. - Declared encoding is determined using the meta http-equiv="content-type" content="text/html;charset=XXXXX" html node. - Default is true. - - - - - Defines the name of a node that will throw the StopperNodeException when found as an end node. Default is null. - - - - - Defines if the 'id' attribute must be specifically used. Default is true. - - - - - Defines if empty nodes must be written as closed during output. Default is false. - - - - - The max number of nested child nodes. - Added to prevent stackoverflow problem when a page has tens of thousands of opening html tags with no closing tags - - - - - Creates an instance of an HTML document. - - - - Gets the parsed text. - The parsed text. - - - - Defines the max level we would go deep into the html document. If this depth level is exceeded, and exception is - thrown. - - - - - Gets the document CRC32 checksum if OptionComputeChecksum was set to true before parsing, 0 otherwise. - - - - - Gets the document's declared encoding. - Declared encoding is determined using the meta http-equiv="content-type" content="text/html;charset=XXXXX" html node (pre-HTML5) or the meta charset="XXXXX" html node (HTML5). - - - - - Gets the root node of the document. - - - - - Gets the document's output encoding. - - - - - Gets a list of parse errors found in the document. - - - - - Gets the remaining text. - Will always be null if OptionStopperNodeName is null. - - - - - Gets the offset of Remainder in the original Html text. - If OptionStopperNodeName is null, this will return the length of the original Html text. - - - - - Gets the document's stream encoding. - - - - - Gets a valid XML name. - - Any text. - A string that is a valid XML name. - - - - - - - - - - - - - - - - - - - Applies HTML encoding to a specified string. - - The input string to encode. May not be null. - The encoded string. - - - - Determines if the specified character is considered as a whitespace character. - - The character to check. - true if if the specified character is considered as a whitespace character. - - - - Creates an HTML attribute with the specified name. - - The name of the attribute. May not be null. - The new HTML attribute. - - - - Creates an HTML attribute with the specified name. - - The name of the attribute. May not be null. - The value of the attribute. - The new HTML attribute. - - - - Creates an HTML comment node. - - The new HTML comment node. - - - - Creates an HTML comment node with the specified comment text. - - The comment text. May not be null. - The new HTML comment node. - - - - Creates an HTML element node with the specified name. - - The qualified name of the element. May not be null. - The new HTML node. - - - - Creates an HTML text node. - - The new HTML text node. - - - - Creates an HTML text node with the specified text. - - The text of the node. May not be null. - The new HTML text node. - - - - Detects the encoding of an HTML stream. - - The input stream. May not be null. - The detected encoding. - - - - Detects the encoding of an HTML stream. - - The input stream. May not be null. - The html is checked. - The detected encoding. - - - - Detects the encoding of an HTML text provided on a TextReader. - - The TextReader used to feed the HTML. May not be null. - The detected encoding. - - - - Detects the encoding of an HTML text. - - The input html text. May not be null. - The detected encoding. - - - - Gets the HTML node with the specified 'id' attribute value. - - The attribute id to match. May not be null. - The HTML node with the matching id or null if not found. - - - - Loads an HTML document from a stream. - - The input stream. - - - - Loads an HTML document from a stream. - - The input stream. - Indicates whether to look for byte order marks at the beginning of the stream. - - - - Loads an HTML document from a stream. - - The input stream. - The character encoding to use. - - - - Loads an HTML document from a stream. - - The input stream. - The character encoding to use. - Indicates whether to look for byte order marks at the beginning of the stream. - - - - Loads an HTML document from a stream. - - The input stream. - The character encoding to use. - Indicates whether to look for byte order marks at the beginning of the stream. - The minimum buffer size. - - - - Loads the HTML document from the specified TextReader. - - The TextReader used to feed the HTML data into the document. May not be null. - - - - Loads the HTML document from the specified string. - - String containing the HTML document to load. May not be null. - - - - Saves the HTML document to the specified stream. - - The stream to which you want to save. - - - - Saves the HTML document to the specified stream. - - The stream to which you want to save. May not be null. - The character encoding to use. May not be null. - - - - Saves the HTML document to the specified StreamWriter. - - The StreamWriter to which you want to save. - - - - Saves the HTML document to the specified TextWriter. - - The TextWriter to which you want to save. May not be null. - - - - Saves the HTML document to the specified XmlWriter. - - The XmlWriter to which you want to save. - - - - Detects the encoding of an HTML document from a file first, and then loads the file. - - The complete file path to be read. - - - - Detects the encoding of an HTML document from a file first, and then loads the file. - - The complete file path to be read. May not be null. - true to detect encoding, false otherwise. - - - - Detects the encoding of an HTML file. - - Path for the file containing the HTML document to detect. May not be null. - The detected encoding. - - - - Loads an HTML document from a file. - - The complete file path to be read. May not be null. - - - - Loads an HTML document from a file. - - The complete file path to be read. May not be null. - Indicates whether to look for byte order marks at the beginning of the file. - - - - Loads an HTML document from a file. - - The complete file path to be read. May not be null. - The character encoding to use. May not be null. - - - - Loads an HTML document from a file. - - The complete file path to be read. May not be null. - The character encoding to use. May not be null. - Indicates whether to look for byte order marks at the beginning of the file. - - - - Loads an HTML document from a file. - - The complete file path to be read. May not be null. - The character encoding to use. May not be null. - Indicates whether to look for byte order marks at the beginning of the file. - The minimum buffer size. - - - - Saves the mixed document to the specified file. - - The location of the file where you want to save the document. - - - - Saves the mixed document to the specified file. - - The location of the file where you want to save the document. May not be null. - The character encoding to use. May not be null. - - - - Creates a new XPathNavigator object for navigating this HTML document. - - An XPathNavigator object. The XPathNavigator is positioned on the root of the document. - - - - Flags that describe the behavior of an Element node. - - - - - The node is a CDATA node. - - - - - The node is empty. META or IMG are example of such nodes. - - - - - The node will automatically be closed during parsing. - - - - - The node can overlap. - - - - - A utility class to replace special characters by entities and vice-versa. - Follows HTML 4.0 specification found at http://www.w3.org/TR/html4/sgml/entities.html - Follows Additional specification found at https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references - See also: https://html.spec.whatwg.org/multipage/named-characters.html#named-character-references - - - - - - - - - - A collection of entities indexed by name. - - - - - A collection of entities indexed by value. - - - - - Replace known entities by characters. - - The source text. - The result text. - - - - Clone and entitize an HtmlNode. This will affect attribute values and nodes' text. It will also entitize all child nodes. - - The node to entitize. - An entitized cloned node. - - - - Replace characters above 127 by entities. - - The source text. - The result text. - - - - Replace characters above 127 by entities. - - The source text. - If set to false, the function will not use known entities name. Default is true. - The result text. - - - - Replace characters above 127 by entities. - - The source text. - If set to false, the function will not use known entities name. Default is true. - If set to true, the [quote], [ampersand], [lower than] and [greather than] characters will be entitized. - The result text - - - - Represents an HTML node. - - - - - Gets the name of a comment node. It is actually defined as '#comment'. - - - - - Gets the name of the document node. It is actually defined as '#document'. - - - - - Gets the name of a text node. It is actually defined as '#text'. - - - - - Gets a collection of flags that define specific behaviors for specific element nodes. - The table contains a DictionaryEntry list with the lowercase tag name as the Key, and a combination of HtmlElementFlags as the Value. - - - - - Initialize HtmlNode. Builds a list of all tags that have special allowances - - - - - Initializes HtmlNode, providing type, owner and where it exists in a collection - - - - - - - - Gets the collection of HTML attributes for this node. May not be null. - - - - - Gets all the children of the node. - - - - - Gets a value indicating if this node has been closed or not. - - - - - Gets the collection of HTML attributes for the closing tag. May not be null. - - - - - Gets the closing tag of the node, null if the node is self-closing. - - - - - Gets the first child of the node. - - - - - Gets a value indicating whether the current node has any attributes. - - - - - Gets a value indicating whether this node has any child nodes. - - - - - Gets a value indicating whether the current node has any attributes on the closing tag. - - - - - Gets or sets the value of the 'id' HTML attribute. The document must have been parsed using the OptionUseIdAttribute set to true. - - - - - Gets or Sets the HTML between the start and end tags of the object. - - - - - Gets the text between the start and end tags of the object. - - - - Gets direct inner text. - The direct inner text. - - - - Gets the last child of the node. - - - - - Gets the line number of this node in the document. - - - - - Gets the column number of this node in the document. - - - - - Gets the stream position of the area between the opening and closing tag of the node, relative to the start of the document. - - - - - Gets the stream position of the area of the beginning of the tag, relative to the start of the document. - - - - - Gets the length of the area between the opening and closing tag of the node. - - - - - Gets the length of the entire node, opening and closing tag included. - - - - - Gets or sets this node's name. - - - - - Gets the HTML node immediately following this element. - - - - - Gets the type of this node. - - - - - The original unaltered name of the tag - - - - - Gets or Sets the object and its content in HTML. - - - - - Gets the to which this node belongs. - - - - - Gets the parent of this node (for nodes that can have parents). - - - - - Gets the node immediately preceding this node. - - - - - Gets the stream position of this node in the document, relative to the start of the document. - - - - - Gets a valid XPath string that points to this node - - - - - The depth of the node relative to the opening root html element. This value is used to determine if a document has to many nested html nodes which can cause stack overflows - - - - - Determines if an element node can be kept overlapped. - - The name of the element node to check. May not be null. - true if the name is the name of an element node that can be kept overlapped, false otherwise. - - - - Creates an HTML node from a string representing literal HTML. - - The HTML text. - The newly created node instance. - - - - Creates an HTML node from a string representing literal HTML. - - The HTML text. - The HTML Document builder. - The newly created node instance. - - - - Determines if an element node is a CDATA element node. - - The name of the element node to check. May not be null. - true if the name is the name of a CDATA element node, false otherwise. - - - - Determines if an element node is closed. - - The name of the element node to check. May not be null. - true if the name is the name of a closed element node, false otherwise. - - - - Determines if an element node is defined as empty. - - The name of the element node to check. May not be null. - true if the name is the name of an empty element node, false otherwise. - - - - Determines if a text corresponds to the closing tag of an node that can be kept overlapped. - - The text to check. May not be null. - true or false. - - - - Returns a collection of all ancestor nodes of this element. - - - - - - Get Ancestors with matching name - - - - - - - Returns a collection of all ancestor nodes of this element. - - - - - - Gets all anscestor nodes and the current node - - - - - - - Adds the specified node to the end of the list of children of this node. - - The node to add. May not be null. - The node added. - - - Sets child nodes identifier. - The chil node. - - - - Adds the specified node to the end of the list of children of this node. - - The node list to add. May not be null. - - - - Gets all Attributes with name - - - - - - - Creates a duplicate of the node - - - - - - Creates a duplicate of the node and changes its name at the same time. - - The new name of the cloned node. May not be null. - The cloned node. - - - - Creates a duplicate of the node and changes its name at the same time. - - The new name of the cloned node. May not be null. - true to recursively clone the subtree under the specified node; false to clone only the node itself. - The cloned node. - - - - Creates a duplicate of the node. - - true to recursively clone the subtree under the specified node; false to clone only the node itself. - The cloned node. - - - - Creates a duplicate of the node and the subtree under it. - - The node to duplicate. May not be null. - - - - Creates a duplicate of the node. - - The node to duplicate. May not be null. - true to recursively clone the subtree under the specified node, false to clone only the node itself. - - - - Gets all Descendant nodes for this node and each of child nodes - - The depth level of the node to parse in the html tree - the current element as an HtmlNode - - - - Returns a collection of all descendant nodes of this element, in document order - - - - - - Gets all Descendant nodes in enumerated list - - - - - - Gets all Descendant nodes in enumerated list - - - - - - Get all descendant nodes with matching name - - - - - - - Returns a collection of all descendant nodes of this element, in document order - - - - - - Gets all descendant nodes including this node - - - - - - - Gets first generation child node matching name - - - - - - - Gets matching first generation child nodes matching name - - - - - - Gets data attribute. - The key. - The data attribute. - - - Gets the data attributes in this collection. - - An enumerator that allows foreach to be used to process the data attributes in this - collection. - - - - Gets the attributes in this collection. - - An enumerator that allows foreach to be used to process the attributes in this collection. - - - - Gets the attributes in this collection. - A variable-length parameters list containing attribute names. - - An enumerator that allows foreach to be used to process the attributes in this collection. - - - - - Helper method to get the value of an attribute of this node. If the attribute is not found, the default value will be returned. - - The name of the attribute to get. May not be null. - The default value to return if not found. - The value of the attribute if found, the default value if not found. - - - - Helper method to get the value of an attribute of this node. If the attribute is not found, the default value will be returned. - - The name of the attribute to get. May not be null. - The default value to return if not found. - The value of the attribute if found, the default value if not found. - - - - Helper method to get the value of an attribute of this node. If the attribute is not found, the default value will be returned. - - The name of the attribute to get. May not be null. - The default value to return if not found. - The value of the attribute if found, the default value if not found. - - - - Helper method to get the value of an attribute of this node. If the attribute is not found, - the default value will be returned. - - The name of the attribute to get. May not be null. - The default value to return if not found. - The value of the attribute if found, the default value if not found. - - - - Inserts the specified node immediately after the specified reference node. - - The node to insert. May not be null. - The node that is the reference node. The newNode is placed after the refNode. - The node being inserted. - - - - Inserts the specified node immediately before the specified reference node. - - The node to insert. May not be null. - The node that is the reference node. The newChild is placed before this node. - The node being inserted. - - - - Adds the specified node to the beginning of the list of children of this node. - - The node to add. May not be null. - The node added. - - - - Adds the specified node list to the beginning of the list of children of this node. - - The node list to add. May not be null. - - - - Removes node from parent collection - - - - - Removes all the children and/or attributes of the current node. - - - - - Removes all the children of the current node. - - - - Removes all id for node described by node. - The node. - - - Move a node already associated and append it to this node instead. - The child node to move. - - - Move a children collection already associated and append it to this node instead. - The children collection already associated to move to another node. - - - Removes the children collection for this node. - The old children collection to remove. - - - - Removes the specified child node. - - The node being removed. May not be null. - The node removed. - - - - Removes the specified child node. - - The node being removed. May not be null. - true to keep grand children of the node, false otherwise. - The node removed. - - - - Replaces the child node oldChild with newChild node. - - The new node to put in the child list. - The node being replaced in the list. - The node replaced. - - - - Helper method to set the value of an attribute of this node. If the attribute is not found, it will be created automatically. - - The name of the attribute to set. May not be null. - The value for the attribute. - The corresponding attribute instance. - - - - Saves all the children of the node to the specified TextWriter. - - The TextWriter to which you want to save. - Identifies the level we are in starting at root with 0 - - - - Saves all the children of the node to a string. - - The saved string. - - - - Saves the current node to the specified TextWriter. - - The TextWriter to which you want to save. - identifies the level we are in starting at root with 0 - - - - Saves the current node to the specified XmlWriter. - - The XmlWriter to which you want to save. - - - - Saves the current node to a string. - - The saved string. - - - - Sets the parent Html node and properly determines the current node's depth using the parent node's depth. - - - - - Adds one or more classes to this node. - - The node list to add. May not be null. - - - - Adds one or more classes to this node. - - The node list to add. May not be null. - true to throw Error if class name exists, false otherwise. - - - - Removes the class attribute from the node. - - - - - Removes the class attribute from the node. - - true to throw Error if class name doesn't exist, false otherwise. - - - - Removes the specified class from the node. - - The class being removed. May not be null. - - - - Removes the specified class from the node. - - The class being removed. May not be null. - true to throw Error if class name doesn't exist, false otherwise. - - - - Replaces the class name oldClass with newClass name. - - The new class name. - The class being replaced. - - - - Replaces the class name oldClass with newClass name. - - The new class name. - The class being replaced. - true to throw Error if class name doesn't exist, false otherwise. - - - Gets the CSS Class from the node. - - The CSS Class from the node - - - - Check if the node class has the parameter class. - The class. - True if node class has the parameter class, false if not. - - - - Fill an object and go through it's properties and fill them too. - - Type of object to want to fill. It should have atleast one property that defined XPath. - Returns an object of type T including Encapsulated data. - Why it's thrown. - Why it's thrown. - Why it's thrown. - Why it's thrown. - Why it's thrown. - Why it's thrown. - Why it's thrown. - Why it's thrown. - Why it's thrown. - - - - Fill an object and go through it's properties and fill them too. - - Type of object to want to fill. It should have atleast one property that defined XPath. - If htmlDocument includes data , leave this parameter null. Else pass your specific htmldocument. - Returns an object of type T including Encapsulated data. - Why it's thrown. - Why it's thrown. - Why it's thrown. - Why it's thrown. - Why it's thrown. - Why it's thrown. - Why it's thrown. - Why it's thrown. - Why it's thrown. - - - - Fill an object and go through it's properties and fill them too. - - Type of object to want to fill. It should have atleast one property that defined XPath. - If htmlDocument includes data , leave this parameter null. Else pass your specific htmldocument. - Returns an object of type targetType including Encapsulated data. - Why it's thrown. - Why it's thrown. - Why it's thrown. - Why it's thrown. - Why it's thrown. - Why it's thrown. - Why it's thrown. - Why it's thrown. - Why it's thrown. - - - - Creates a new XPathNavigator object for navigating this HTML node. - - An XPathNavigator object. The XPathNavigator is positioned on the node from which the method was called. It is not positioned on the root of the document. - - - - Creates an XPathNavigator using the root of this document. - - - - - - Selects a list of nodes matching the expression. - - The XPath expression. - An containing a collection of nodes matching the query, or null if no node matched the XPath expression. - - - - Selects a list of nodes matching the expression. - - The XPath expression. - An containing a collection of nodes matching the query, or null if no node matched the XPath expression. - - - - Selects the first XmlNode that matches the XPath expression. - - The XPath expression. May not be null. - The first that matches the XPath query or a null reference if no matching node was found. - - - - Selects a list of nodes matching the expression. - - The XPath expression. - An containing a collection of nodes matching the query, or null if no node matched the XPath expression. - - - - Includes tools that GetEncapsulatedData method uses them. - - - - - Determine if a type define an attribute or not , supporting both .NetStandard and .NetFramework2.0 - - Type you want to test it. - Attribute that type must have or not. - If true , The type parameter define attributeType parameter. - - - - Retrive properties of type that defined . - - Type that you want to find it's XPath-Defined properties. - IEnumerable of property infos of a type , that defined specific attribute. - - - - Determine if a has implemented BUT is considered as NONE-IEnumerable ! - - The property info you want to test. - True if property info is IEnumerable. - - - - Returns T type(first generic type) of or . - - IEnumerable-Implemented property - List of generic types. - - - - Find and Return a mehtod that defined in a class by it's name. - - Type of class include requested method. - Name of requested method as string. - Method info of requested method. - - - - Create of given type. - - Type that you want to make a List of it. - Returns IList of given type. - - - - Returns the part of value of you want as . - - A htmlNode instance. - Attribute that includes ReturnType - String that choosen from HtmlNode as result. - - - - Returns parts of values of you want as . - - that you want to retrive each value. - A instnce incules . - Type of IList generic you want. - - - - - Simulate Func method to use in Lambada Expression. - - - - - - - - - This method works like Where method in LINQ. - - - - - - - - - Check if the type can instantiated. - - - - - - - Returns count of elements stored in IEnumerable of T - - - - - - - - Specify which part of is requested. - - - - - The text between the start and end tags of the object. - - - - - The HTML between the start and end tags of the object - - - - - The object and its content in HTML - - - - - Just mark and flag classes to show they have properties that defined . - - - - - Includes XPath and . XPath for finding html tags and for specify which part of you want to return. - - - - - XPath Expression that is used to find related html node. - - - - - Html Attribute name - - - - - The methode of output - - - - - Specify Xpath to find related Html Node. - - - - - - Specify Xpath to find related Html Node. - - - Specify you want the output include html text too. - - - - Specify Xpath and Attribute to find related Html Node and its attribute value. - - - - - - - Tagging a property with this Attribute make Encapsulator to ignore that property if it causes an error. - - - - - Exception that often occures when there is no way to bind a XPath to a Html Tag. - - - - - - - - - - - - - - - - - - - - - - - Exception that often occures when there is no way to bind a XPath to a HtmlTag Attribute. - - - - - - - - - - - - - - - - - - - - - - - Exception that often occures when there is no property that assigned with XPath Property in Class. - - - - - - - - - - - - - - - - - - - - - - - Represents a combined list and collection of HTML nodes. - - - - - Initialize the HtmlNodeCollection with the base parent node - - The base node of the collection - - - Gets the parent node associated to the collection. - - - - Gets a given node from the list. - - - - - Get node with tag name - - - - - - - Gets the number of elements actually contained in the list. - - - - - Is collection read only - - - - - Gets the node at the specified index. - - - - - Add node to the collection - - - - - - Add node to the collection - - - - - - - Clears out the collection of HtmlNodes. Removes each nodes reference to parentnode, nextnode and prevnode - - - - - Gets existence of node in collection - - - - - - - Copy collection to array - - - - - - - Get Enumerator - - - - - - Get Explicit Enumerator - - - - - - Get index of node - - - - - - - Insert node at index - - - - - - - Remove node - - - - - - - Remove at index - - - - - - Get first instance of node in supplied collection - - - - - - - - Add node to the end of the collection - - - - - - Get first instance of node with name - - - - - - - Get index of node - - - - - - - Add node to the beginning of the collection - - - - - - Remove node at index - - - - - - - Replace node at index - - - - - - - Get all node descended from this collection - - - - - - Get all node descended from this collection with matching name - - - - - - Gets all first generation elements in collection - - - - - - Gets all first generation elements matching name - - - - - - - All first generation nodes in collection - - - - - - Represents an HTML navigator on an HTML document seen as a data store. - - - - - Initializes a new instance of the HtmlNavigator and loads an HTML document from a stream. - - The input stream. - - - - Initializes a new instance of the HtmlNavigator and loads an HTML document from a stream. - - The input stream. - Indicates whether to look for byte order marks at the beginning of the stream. - - - - Initializes a new instance of the HtmlNavigator and loads an HTML document from a stream. - - The input stream. - The character encoding to use. - - - - Initializes a new instance of the HtmlNavigator and loads an HTML document from a stream. - - The input stream. - The character encoding to use. - Indicates whether to look for byte order marks at the beginning of the stream. - - - - Initializes a new instance of the HtmlNavigator and loads an HTML document from a stream. - - The input stream. - The character encoding to use. - Indicates whether to look for byte order marks at the beginning of the stream. - The minimum buffer size. - - - - Initializes a new instance of the HtmlNavigator and loads an HTML document from a TextReader. - - The TextReader used to feed the HTML data into the document. - - - - Initializes a new instance of the HtmlNavigator and loads an HTML document from a file. - - The complete file path to be read. - - - - Initializes a new instance of the HtmlNavigator and loads an HTML document from a file. - - The complete file path to be read. - Indicates whether to look for byte order marks at the beginning of the file. - - - - Initializes a new instance of the HtmlNavigator and loads an HTML document from a file. - - The complete file path to be read. - The character encoding to use. - - - - Initializes a new instance of the HtmlNavigator and loads an HTML document from a file. - - The complete file path to be read. - The character encoding to use. - Indicates whether to look for byte order marks at the beginning of the file. - - - - Initializes a new instance of the HtmlNavigator and loads an HTML document from a file. - - The complete file path to be read. - The character encoding to use. - Indicates whether to look for byte order marks at the beginning of the file. - The minimum buffer size. - - - - Gets the base URI for the current node. - Always returns string.Empty in the case of HtmlNavigator implementation. - - - - - Gets the current HTML document. - - - - - Gets the current HTML node. - - - - - Gets a value indicating whether the current node has child nodes. - - - - - Gets a value indicating whether the current node has child nodes. - - - - - Gets a value indicating whether the current node is an empty element. - - - - - Gets the name of the current HTML node without the namespace prefix. - - - - - Gets the qualified name of the current node. - - - - - Gets the namespace URI (as defined in the W3C Namespace Specification) of the current node. - Always returns string.Empty in the case of HtmlNavigator implementation. - - - - - Gets the associated with this implementation. - - - - - Gets the type of the current node. - - - - - Gets the prefix associated with the current node. - Always returns string.Empty in the case of HtmlNavigator implementation. - - - - - Gets the text value of the current node. - - - - - Gets the xml:lang scope for the current node. - Always returns string.Empty in the case of HtmlNavigator implementation. - - - - - Creates a new HtmlNavigator positioned at the same node as this HtmlNavigator. - - A new HtmlNavigator object positioned at the same node as the original HtmlNavigator. - - - - Gets the value of the HTML attribute with the specified LocalName and NamespaceURI. - - The local name of the HTML attribute. - The namespace URI of the attribute. Unsupported with the HtmlNavigator implementation. - The value of the specified HTML attribute. String.Empty or null if a matching attribute is not found or if the navigator is not positioned on an element node. - - - - Returns the value of the namespace node corresponding to the specified local name. - Always returns string.Empty for the HtmlNavigator implementation. - - The local name of the namespace node. - Always returns string.Empty for the HtmlNavigator implementation. - - - - Determines whether the current HtmlNavigator is at the same position as the specified HtmlNavigator. - - The HtmlNavigator that you want to compare against. - true if the two navigators have the same position, otherwise, false. - - - - Moves to the same position as the specified HtmlNavigator. - - The HtmlNavigator positioned on the node that you want to move to. - true if successful, otherwise false. If false, the position of the navigator is unchanged. - - - - Moves to the HTML attribute with matching LocalName and NamespaceURI. - - The local name of the HTML attribute. - The namespace URI of the attribute. Unsupported with the HtmlNavigator implementation. - true if the HTML attribute is found, otherwise, false. If false, the position of the navigator does not change. - - - - Moves to the first sibling of the current node. - - true if the navigator is successful moving to the first sibling node, false if there is no first sibling or if the navigator is currently positioned on an attribute node. - - - - Moves to the first HTML attribute. - - true if the navigator is successful moving to the first HTML attribute, otherwise, false. - - - - Moves to the first child of the current node. - - true if there is a first child node, otherwise false. - - - - Moves the XPathNavigator to the first namespace node of the current element. - Always returns false for the HtmlNavigator implementation. - - An XPathNamespaceScope value describing the namespace scope. - Always returns false for the HtmlNavigator implementation. - - - - Moves to the node that has an attribute of type ID whose value matches the specified string. - - A string representing the ID value of the node to which you want to move. This argument does not need to be atomized. - true if the move was successful, otherwise false. If false, the position of the navigator is unchanged. - - - - Moves the XPathNavigator to the namespace node with the specified local name. - Always returns false for the HtmlNavigator implementation. - - The local name of the namespace node. - Always returns false for the HtmlNavigator implementation. - - - - Moves to the next sibling of the current node. - - true if the navigator is successful moving to the next sibling node, false if there are no more siblings or if the navigator is currently positioned on an attribute node. If false, the position of the navigator is unchanged. - - - - Moves to the next HTML attribute. - - - - - - Moves the XPathNavigator to the next namespace node. - Always returns falsefor the HtmlNavigator implementation. - - An XPathNamespaceScope value describing the namespace scope. - Always returns false for the HtmlNavigator implementation. - - - - Moves to the parent of the current node. - - true if there is a parent node, otherwise false. - - - - Moves to the previous sibling of the current node. - - true if the navigator is successful moving to the previous sibling node, false if there is no previous sibling or if the navigator is currently positioned on an attribute node. - - - - Moves to the root node to which the current node belongs. - - - - - Represents the type of a node. - - - - - The root of a document. - - - - - An HTML element. - - - - - An HTML comment. - - - - - A text node is always the child of an element or a document node. - - - - - Represents a parsing error found during document parsing. - - - - - Gets the type of error. - - - - - Gets the line number of this error in the document. - - - - - Gets the column number of this error in the document. - - - - - Gets a description for the error. - - - - - Gets the the full text of the line containing the error. - - - - - Gets the absolute stream position of this error in the document, relative to the start of the document. - - - - - Represents the type of parsing error. - - - - - A tag was not closed. - - - - - A tag was not opened. - - - - - There is a charset mismatch between stream and declared (META) encoding. - - - - - An end tag was not required. - - - - - An end tag is invalid at this position. - - - - - Represents an HTML text node. - - - - - Gets or Sets the HTML between the start and end tags of the object. In the case of a text node, it is equals to OuterHtml. - - - - - Gets or Sets the object and its content in HTML. - - - - - Gets or Sets the text of the node. - - - - - A utility class to get HTML document from HTTP. - - - - - Represents the method that will handle the PostResponse event. - - - - - Represents the method that will handle the PreHandleDocument event. - - - - - Represents the method that will handle the PreRequest event. - - - - - Occurs after an HTTP request has been executed. - - - - - Occurs before an HTML document is handled. - - - - - Occurs before an HTTP request is executed. - - - - - Gets or Sets a value indicating if document encoding must be automatically detected. - - - - - Gets or sets the Encoding used to override the response stream from any web request - - - - - Gets or Sets a value indicating whether to get document only from the cache. - If this is set to true and document is not found in the cache, nothing will be loaded. - - - - - Gets or Sets a value indicating whether to get document from the cache if exists, otherwise from the web - A value indicating whether to get document from the cache if exists, otherwise from the web - - - - - Gets or Sets the cache path. If null, no caching mechanism will be used. - - - - - Gets a value indicating if the last document was retrieved from the cache. - - - - - Gets the last request duration in milliseconds. - - - - - Gets the URI of the Internet resource that actually responded to the request. - - - - - Gets the last request status. - - - - - Gets or Sets the size of the buffer used for memory operations. - - - - - Gets or Sets a value indicating if cookies will be stored. - - - - Gets or sets a value indicating whether redirect should be captured instead of the current location. - True if capture redirect, false if not. - - - - Gets or Sets the User Agent HTTP 1.1 header sent on any webrequest - - - - - Gets or Sets a value indicating whether the caching mechanisms should be used or not. - - - - - Gets the MIME content type for a given path extension. - - The input path extension. - The default content type to return if any error occurs. - The path extension's MIME content type. - - - - Gets the path extension for a given MIME content type. - - The input MIME content type. - The default path extension to return if any error occurs. - The MIME content type's path extension. - - - - Creates an instance of the given type from the specified Internet resource. - - The requested URL, such as "http://Myserver/Mypath/Myfile.asp". - The requested type. - An newly created instance. - - - - Gets an HTML document from an Internet resource and saves it to the specified file. - - The requested URL, such as "http://Myserver/Mypath/Myfile.asp". - The location of the file where you want to save the document. - - - - Gets an HTML document from an Internet resource and saves it to the specified file. - Proxy aware - - The requested URL, such as "http://Myserver/Mypath/Myfile.asp". - The location of the file where you want to save the document. - - - - - - Gets an HTML document from an Internet resource and saves it to the specified file. - - The requested URL, such as "http://Myserver/Mypath/Myfile.asp". - The location of the file where you want to save the document. - The HTTP method used to open the connection, such as GET, POST, PUT, or PROPFIND. - - - - Gets an HTML document from an Internet resource and saves it to the specified file. Understands Proxies - - The requested URL, such as "http://Myserver/Mypath/Myfile.asp". - The location of the file where you want to save the document. - - The HTTP method used to open the connection, such as GET, POST, PUT, or PROPFIND. - - - - - Gets the cache file path for a specified url. - - The url fo which to retrieve the cache path. May not be null. - The cache file path. - - - - Gets an HTML document from an Internet resource. - - The requested URL, such as "http://Myserver/Mypath/Myfile.asp". - A new HTML document. - - - - Gets an HTML document from an Internet resource. - - The requested Uri, such as new Uri("http://Myserver/Mypath/Myfile.asp"). - A new HTML document. - - - - Gets an HTML document from an Internet resource. - - The requested URL, such as "http://Myserver/Mypath/Myfile.asp". - Host to use for Proxy - Port the Proxy is on - User Id for Authentication - Password for Authentication - A new HTML document. - - - - Gets an HTML document from an Internet resource. - - The requested Uri, such as new Uri("http://Myserver/Mypath/Myfile.asp"). - Host to use for Proxy - Port the Proxy is on - User Id for Authentication - Password for Authentication - A new HTML document. - - - - Loads an HTML document from an Internet resource. - - The requested URL, such as "http://Myserver/Mypath/Myfile.asp". - The HTTP method used to open the connection, such as GET, POST, PUT, or PROPFIND. - A new HTML document. - - - - Loads an HTML document from an Internet resource. - - The requested URL, such as new Uri("http://Myserver/Mypath/Myfile.asp"). - The HTTP method used to open the connection, such as GET, POST, PUT, or PROPFIND. - A new HTML document. - - - - Loads an HTML document from an Internet resource. - - The requested URL, such as "http://Myserver/Mypath/Myfile.asp". - The HTTP method used to open the connection, such as GET, POST, PUT, or PROPFIND. - Proxy to use with this request - Credentials to use when authenticating - A new HTML document. - - - - Loads an HTML document from an Internet resource. - - The requested Uri, such as new Uri("http://Myserver/Mypath/Myfile.asp"). - The HTTP method used to open the connection, such as GET, POST, PUT, or PROPFIND. - Proxy to use with this request - Credentials to use when authenticating - A new HTML document. - - - - Loads an HTML document from an Internet resource and saves it to the specified XmlTextWriter. - - The requested URL, such as "http://Myserver/Mypath/Myfile.asp". - The XmlTextWriter to which you want to save to. - - - - Creates an instance of the given type from the specified Internet resource. - - The requested URL, such as "http://Myserver/Mypath/Myfile.asp". - The URL that specifies the XSLT stylesheet to load. - An containing the namespace-qualified arguments used as input to the transform. - The requested type. - An newly created instance. - - - - Creates an instance of the given type from the specified Internet resource. - - The requested URL, such as "http://Myserver/Mypath/Myfile.asp". - The URL that specifies the XSLT stylesheet to load. - An containing the namespace-qualified arguments used as input to the transform. - The requested type. - A file path where the temporary XML before transformation will be saved. Mostly used for debugging purposes. - An newly created instance. - - - - Loads an HTML document from an Internet resource and saves it to the specified XmlTextWriter, after an XSLT transformation. - - The requested URL, such as "http://Myserver/Mypath/Myfile.asp". - The URL that specifies the XSLT stylesheet to load. - An XsltArgumentList containing the namespace-qualified arguments used as input to the transform. - The XmlTextWriter to which you want to save. - - - - Loads an HTML document from an Internet resource and saves it to the specified XmlTextWriter, after an XSLT transformation. - - The requested URL, such as "http://Myserver/Mypath/Myfile.asp". May not be null. - The URL that specifies the XSLT stylesheet to load. - An XsltArgumentList containing the namespace-qualified arguments used as input to the transform. - The XmlTextWriter to which you want to save. - A file path where the temporary XML before transformation will be saved. Mostly used for debugging purposes. - - - - Represents an exception thrown by the HtmlWeb utility class. - - - - - Creates an instance of the HtmlWebException. - - The exception's message. - - - - Represents a document with mixed code and text. ASP, ASPX, JSP, are good example of such documents. - - - - - Gets or sets the token representing code end. - - - - - Gets or sets the token representing code start. - - - - - Gets or sets the token representing code directive. - - - - - Gets or sets the token representing response write directive. - - - - - Creates a mixed code document instance. - - - - - Gets the code represented by the mixed code document seen as a template. - - - - - Gets the list of code fragments in the document. - - - - - Gets the list of all fragments in the document. - - - - - Gets the encoding of the stream used to read the document. - - - - - Gets the list of text fragments in the document. - - - - - Create a code fragment instances. - - The newly created code fragment instance. - - - - Create a text fragment instances. - - The newly created text fragment instance. - - - - Loads a mixed code document from a stream. - - The input stream. - - - - Loads a mixed code document from a stream. - - The input stream. - Indicates whether to look for byte order marks at the beginning of the file. - - - - Loads a mixed code document from a stream. - - The input stream. - The character encoding to use. - - - - Loads a mixed code document from a stream. - - The input stream. - The character encoding to use. - Indicates whether to look for byte order marks at the beginning of the file. - - - - Loads a mixed code document from a stream. - - The input stream. - The character encoding to use. - Indicates whether to look for byte order marks at the beginning of the file. - The minimum buffer size. - - - - Loads a mixed code document from a file. - - The complete file path to be read. - - - - Loads a mixed code document from a file. - - The complete file path to be read. - Indicates whether to look for byte order marks at the beginning of the file. - - - - Loads a mixed code document from a file. - - The complete file path to be read. - The character encoding to use. - - - - Loads a mixed code document from a file. - - The complete file path to be read. - The character encoding to use. - Indicates whether to look for byte order marks at the beginning of the file. - - - - Loads a mixed code document from a file. - - The complete file path to be read. - The character encoding to use. - Indicates whether to look for byte order marks at the beginning of the file. - The minimum buffer size. - - - - Loads the mixed code document from the specified TextReader. - - The TextReader used to feed the HTML data into the document. - - - - Loads a mixed document from a text - - The text to load. - - - - Saves the mixed document to the specified stream. - - The stream to which you want to save. - - - - Saves the mixed document to the specified stream. - - The stream to which you want to save. - The character encoding to use. - - - - Saves the mixed document to the specified file. - - The location of the file where you want to save the document. - - - - Saves the mixed document to the specified file. - - The location of the file where you want to save the document. - The character encoding to use. - - - - Saves the mixed document to the specified StreamWriter. - - The StreamWriter to which you want to save. - - - - Saves the mixed document to the specified TextWriter. - - The TextWriter to which you want to save. - - - - Represents a fragment of code in a mixed code document. - - - - - Gets the fragment code text. - - - - - Represents a base class for fragments in a mixed code document. - - - - - Gets the fragement text. - - - - - Gets the type of fragment. - - - - - Gets the line number of the fragment. - - - - - Gets the line position (column) of the fragment. - - - - - Gets the fragment position in the document's stream. - - - - - Represents a list of mixed code fragments. - - - - - Gets the Document - - - - - Gets the number of fragments contained in the list. - - - - - Gets a fragment from the list using its index. - - - - - Gets an enumerator that can iterate through the fragment list. - - - - - Appends a fragment to the list of fragments. - - The fragment to append. May not be null. - - - - Gets an enumerator that can iterate through the fragment list. - - - - - Prepends a fragment to the list of fragments. - - The fragment to append. May not be null. - - - - Remove a fragment from the list of fragments. If this fragment was not in the list, an exception will be raised. - - The fragment to remove. May not be null. - - - - Remove all fragments from the list. - - - - - Remove a fragment from the list of fragments, using its index in the list. - - The index of the fragment to remove. - - - - Represents a fragment enumerator. - - - - - Gets the current element in the collection. - - - - - Gets the current element in the collection. - - - - - Advances the enumerator to the next element of the collection. - - true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. - - - - Sets the enumerator to its initial position, which is before the first element in the collection. - - - - - Represents the type of fragment in a mixed code document. - - - - - The fragment contains code. - - - - - The fragment contains text. - - - - - Represents a fragment of text in a mixed code document. - - - - - Gets the fragment text. - - - - - 给控件增加拖放功能的类 - - - - - 拖放实例 - - - - - 高级拖放事件 - - - - - - - - - - - - - - - - - - - - 使管理员方式运行时支持拖放 - - - - - - 使支持拖放属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 获取WMI内容 - - - - - - - 获取WMI内容 - - - - - - - 获取内存信息 - - - - - - 获取显卡信息 - - - - - - 获取显卡信息 - - - - - - 获取显卡信息 - - - - - - 获取硬盘信息 - - - - - - 获取主板信息 - - - - - - 获取处理器信息 - - - - - - 获取主要硬件信息 - - - - - - 获取主要硬件信息 - - 是否获取XML格式 - - - - - 网络操作类 - - - - - 通过NetworkInterface读取网卡Mac - - - - - - 通过NetworkInterface读取网卡Mac - - - - - - 根据mac字符串来获取最终的mac地址,可以是各种MAC地址格式,非法的内容将返回null - - - - - - - 远程唤醒 - - - - - - - - 远程唤醒 - - - - - - - - - 消息客户端类 - - - - - 判断当前消息主服务器是否创建成功 - - - - - 最后一次接收消息的时间,可用来判断服务端是否有响应 - - - - - 主句柄 - - - - - 当收到消息时激发 - - - - - 连接上主服务器时触发 - - - - - 收到服务端关闭通知 - - - - - 收到服务端关闭通知,即将关闭 - - - - - 服务端大小改变时激发 - - - - - 实例化客户端 - - 服务端ID - 当前客户端ID,会向服务器报告当前ID - 客户端 - - - - - - - - - 断开服务端连接 - - - - - 发送消息,采用多线程发送 - - - - - - - 向服务端发送心跳包 - - - - - 判断服务端句柄是否存在。 - - - - - - 共享内存 - - - - - 写共享内存 - - 需要映射的文件的字节数量 - 映射对象(简单类型、结构体等) - 文件映射对象的名称 - - - - - 写共享内存 - - 映射对象(简单类型、结构体等) - 文件映射对象的名称 - - - - - 写共享内存 - - 映射对象(简单类型、结构体等) - 文件映射对象的名称 - - - - - 写共享内存 - - 映射对象(简单类型、结构体等) - 文件映射对象的名称 - - - - - 写共享内存 - - 映射对象(简单类型、结构体等) - 文件映射对象的名称 - - - - - 写共享内存 - - 映射对象(简单类型、结构体等) - 文件映射对象的名称 - - - - - 写共享内存 - - 映射对象(简单类型、结构体等) - 文件映射对象的名称 - - - - - 写共享内存 - - 需要映射的文件的字节数量 - 映射对象(简单类型、结构体等) - 文件映射对象的名称 - 发送消息的窗口句柄 - 发送消息 - - - - - 读共享内存 - - - - - - - - 读共享内存 - - - - - - - - 读共享内存 - - - - - - - - - 读共享内存 - - 需要映射的文件的字节数量 - 类型 - 文件映射对象的名称 - 返回读到的映射对象 - - - - 读共享内存 - - 需要映射的文件的字节数量 - 类型 - 文件映射对象的名称 - 返回读到的映射字节数据 - - - - 消息服务器 - - - - - 消息事件 - - - - - - - 大小改变事件 - - - - - - - - 即将关闭事件 - - - - - - - 当收到消息时激发 - - - - - 消息处理类 - - - - - - - - - - - - - - - - - - - - - - - 发送消息,采用单线程发送 - - 要发送到的句柄 - 编号 - 消息内容 - - - - 发送消息,采用多线程发送 - - 要发送到的句柄 - 编号 - 消息内容 - - - - 消息类 - - - - - 是否取消 - - - - - 来源句柄 - - - - - - - - - - 消息文本 - - - - - 需要回复的内容 - - - - - 消息服务端类 - - - - - 判断当前消息主服务器是否创建成功 - - - - - 当收到消息时激发 - - - - - 当收到自定义消息时(非系统消息)激发 - - - - - 有消息客户端发起连接请求时激发 - - - - - 有消息客户端连接成功时激发 - - - - - 有消息客户端断开连接时激发 - - - - - - - 服务端ID,需要唯一性,共客户端识别 - 服务端 - - - - 释放资源 - - - - - 判断是否包含指定客户端 - - - - - - - - - - - - 设置客户端大小 - - - - - 根据客户端ID,获取客户端对象 - - - - - - - 根据客户端句柄,获取客户端对象 - - - - - - - 关闭所有客户端 - - - - - 关闭指定客户端 - - - - - - 关闭指定客户端 - - - - - - 向所有客户端发送消息,单线程 - - - - - - - 向指定客户端发送消息 - - - - - - - - 关闭在指定时间前失去响应的子客户端 - - - - - - 客户端信息 - - - - - 客户端句柄 - - - - - 客户端ID - - - - - 客户端连接时间 - - - - - 心跳时间 - - - - - 数据库引擎 - - - - - 数据库枚举类型 - - - - - Odbc引擎 - - - - - OleDb引擎 - - - - - Oracle引擎 - - - - - MSSQL引擎 - - - - - SQLite引擎 - - - - - MySql引擎 - - - - - 判断DataSet是否包含数据 - - - - - - - 获取首行数据 - - - - - - - 获取第一行第一列的值 - - - - - - - 将DataSet类型转换为RyQuickSQL列表类型 - - - - - - - 将DataSet类型转换为RyQuickSQL列表类型 - - - - - - - - 数据库操作接口 - - - - - 连接数据库 - - - - - - 断开数据库 - - - - - - 获取数量 - - - - - - - - 获取分页语句 - - - - - - - - - 获取分页语句 - - - - - - - - - 获取分页语句 - - - - - - - - - - 获取分页语句 - - - - - - - - - - 添加Parameter参数 - - - - - - - 清空Parameter参数 - - - - - - - 获取Parameter值 - - - - - - 根据RyQuickSQL类来获取Parameter值 - - - - - - - 开始执行事务 - - - - - 提交事务 - - - - - 判断是否包含数据 - - - - - - - - 返回-1000表示该数据库不支持本接口 - - - - - - - 读取数据 - - - - - - - 读取数据 - - - - - - - - 读取数据 - - - - - - - - 根据id号获取数据 - - - - - - - - 执行SQL语句 - - - - - - - - 执行SQL语句 - - - - - - - - 执行SQL语句 - - - 只针对IsAdd为false才生效,where 以后的sql语句 - 是新增还是更新 - - - - - 插入数据库 - - - - - - - 更新数据库 - - - where 以后的sql语句 - - - - - 执行SQL语句 - - - - - - - 根据id号删除数据 - - - - - - - - 创建数据库 - - - - - - - 释放资源 - - - - - 最后一个错误信息 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 连接数据库 - - 数据库连接字符串 - - - - - 连接数据库 - - 数据源 - 数据库名称 - 用户id - 用户密码 - - - - - - - - - 连接数据库 - - - - - - 关闭数据库 - - - - - - 运行SQL命令 - - SQL语句 - SQL命令参数 - 运行失败,则返回-1,否则返回影响的行数 - - - - 运行SQL命令 - - SQL语句 - 运行失败,则返回-1,否则返回影响的行数 - - - - 运行SQL命令,并返回结果 - - SQL语句 - SQL命令参数 - 运行失败,则返回null,否则返回以数组显示的字符串 - - - - 运行SQL命令,并返回结果 - - SQL语句 - SQL命令参数 - 数组第一个默认的值 - 运行失败,则返回null,否则返回以数组显示的字符串 - - - - 运行SQL命令,并返回结果 - - SQL语句 - 运行失败,则返回null,否则返回以数组显示的字符串 - - - - 运行SQL命令,并返回结果 - - SQL语句 - 数组第一个默认的值 - 运行失败,则返回DefFristValue,否则返回以数组显示的字符串 - - - - 清空指定表的所有数据 - - 表名 - 运行失败,则返回-1,否则返回影响的行数 - - - - 判断指定值是否存在 - - 表名 - 指定值所属字段 - 指定值 - 当前id,如果是新增记录,请填写-1 - - - - - 判断SQL语句是否有结果返回 - - SQL语句 - SQL命令参数 - 运行失败,则返回-1;存在结果,返回1;不存在结果,返回0 - - - - 判断SQL语句是否有结果返回 - - SQL语句 - 运行失败,则返回-1;存在结果,返回1;不存在结果,返回0 - - - - - - - - - - - - - - 获取最后一次错误信息 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 执行SQL语句 - - - 只针对IsAdd为false才生效,where 以后的sql语句 - 是新增还是更新 - - - - - 插入数据库 - - - - - - - 更新数据库 - - - where 以后的sql语句 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SQL字段类型 - - - - - SQL字段类型 - - - - - - - SQL字段类型 - - - - - - - - SQL字段名 - - - - - SQL字段值 - - - - - SQL字段长度 - - - - - 不是真的值,而是用于计算的值 - - - - - SQL快速操作类 - - - - - SQL快速操作类 - - - - - - 表名 - - - - - 操作字段列表 - - - - - 清理使用资源 - - - - - 清理使用资源 - - - - - 清理使用资源 - - - - - 操作参数列表 - - - - - 操作参数列表 - - - - - 添加字符串字段 - - - - - - - 添加null值字段 - - - - - - 添加日期字段 - - - - - - - 添加int字段 - - - - - - - 添加double字段 - - - - - - - 添加decimal字段 - - - - - - - 添加byte[]字段 - - - - - - - 添加bool字段 - - - - - - - 添加用于计算的值 - - - - - - - 添加Int64字段 - - - - - - - 清空内容 - - - - - 数量 - - - - - - - - - - 输出多条件搜索。 - - 字段名,多个字段请用逗号分隔。 - 多个条件之间请用空格隔开 - - - - - 获取插入SQL语句 - - - - - - 获取更新SQL语句 - - - - - - 添加参数 - - - - - - - 获取Ole参数 - - - - - - 获取SQL参数 - - - - - - 一个强类型的资源类,用于查找本地化的字符串等。 - - - - - 返回此类使用的缓存的 ResourceManager 实例。 - - - - - 重写当前线程的 CurrentUICulture 属性,对 - 使用此强类型资源类的所有资源查找执行重写。 - - - - - 查找 System.Drawing.Bitmap 类型的本地化资源。 - - - - - 查找 System.Drawing.Bitmap 类型的本地化资源。 - - - - - 查找 System.Drawing.Bitmap 类型的本地化资源。 - - - - - 查找 System.Drawing.Bitmap 类型的本地化资源。 - - - - - 查找 System.Drawing.Bitmap 类型的本地化资源。 - - - - - 查找 System.Drawing.Bitmap 类型的本地化资源。 - - - - - 查找 System.Drawing.Bitmap 类型的本地化资源。 - - - - - 查找 System.Drawing.Bitmap 类型的本地化资源。 - - - - - 查找 System.Drawing.Bitmap 类型的本地化资源。 - - - - - 查找 System.Drawing.Bitmap 类型的本地化资源。 - - - - - 查找 System.Drawing.Bitmap 类型的本地化资源。 - - - - - 查找 System.Drawing.Bitmap 类型的本地化资源。 - - - - - 查找 System.Drawing.Bitmap 类型的本地化资源。 - - - - - 查找 System.Drawing.Bitmap 类型的本地化资源。 - - - - - 查找 System.Drawing.Bitmap 类型的本地化资源。 - - - - - Win32 API - - - - - - - - - - WM_COPYDATA消息的主要目的是允许在进程间传递只读数据。 - - - - - 系统通道ID - - - - - 用户通道ID - - - - - 获取消息 - - - - - - - - 发送消息 - - - - - - - - - - 设置父窗口 - - - - - - - - - Http连接操作帮助类 - - - - - - - - - - - - 根据相传入的数据,得到相应页面数据 - - 参数类对象 - 返回HttpResult类型 - - - - 获取数据的并解析的方法 - - - - - - - 设置编码 - - HttpItem - HttpResult - byte[] - - - - 提取网页Byte - - - - - - 为请求准备参数 - - 参数列表 - - - - 设置证书 - - - - - - 设置多个证书 - - - - - - 设置Cookie - - Http参数 - - - - 设置Post数据 - - Http参数 - - - - 设置代理 - - 参数对象 - - - - 回调验证证书问题 - - 流对象 - 证书 - X509Chain - SslPolicyErrors - bool - - - - 通过设置这个属性,可以在发出连接的时候绑定客户端发出连接所使用的IP地址。 - - - - - - - - - Http请求参考类 - - - - - 请求URL必须填写 - - - - - 请求方式默认为GET方式,当为POST方式时必须设置Postdata的值 - - - - - 默认请求超时时间 - - - - - 默认写入Post数据超时间 - - - - - 设置Host的标头信息 - - - - - 获取或设置一个值,该值指示是否与 Internet 资源建立持久性连接默认为true。 - - - - - 请求标头值 默认为text/html, application/xhtml+xml, */* - - - - - 请求返回类型默认 text/html - - - - - 客户端访问信息默认Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) - - - - - 返回数据编码默认为NUll,可以自动识别,一般为utf-8,gbk,gb2312 - - - - - Post的数据类型 - - - - - Post请求时要发送的字符串Post数据 - - - - - Post请求时要发送的Byte类型的Post数据 - - - - - Cookie对象集合 - - - - - 请求时的Cookie - - - - - 来源地址,上次访问地址 - - - - - 证书绝对路径 - - - - - 设置代理对象,不想使用IE默认配置就设置为Null,而且不要设置ProxyIp - - - - - 是否设置为全文小写,默认为不转化 - - - - - 获取或设置要在 HTTP 请求中使用的 Date HTTP 标头值。默认不填写 - - - - - 支持跳转页面,查询结果将是跳转后的页面,默认是不跳转 - - - - - 最大连接数 - - - - - 代理Proxy 服务器用户名 - - - - - 代理 服务器密码 - - - - - 代理 服务IP,如果要使用IE代理就设置为ieproxy - - - - - 设置返回类型String和Byte - - - - - header对象 - - - - - 获取或设置用于请求的 HTTP 版本。返回结果:用于请求的 HTTP 版本。默认为 System.Net.HttpVersion.Version11。 - - - - - 获取或设置一个 System.Boolean 值,该值确定是否使用 100-Continue 行为。如果 POST 请求需要 100-Continue 响应,则为 true;否则为 false。默认值为 true。 - - - - - 设置509证书集合 - - - - - 设置或获取Post参数编码,默认的为Default编码 - - - - - Cookie返回类型,默认的是只返回字符串类型 - - - - - 获取或设置请求的身份验证信息。 - - - - - 设置请求将跟随的重定向的最大数目 - - - - - 获取和设置IfModifiedSince,默认为当前日期和时间 - - - - - 设置本地的出口ip和端口 - ] - - item.IPEndPoint = new IPEndPoint(IPAddress.Parse("192.168.1.1"),80); - - - - - 是否重置request,response的值,默认不重置,当设置为True时request,response将被设置为Null - - - - - Http返回参数类 - - - - - Http请求返回的Cookie - - - - - Cookie对象集合 - - - - - 返回的String类型数据 只有ResultType.String时才返回数据,其它情况为空 - - - - - 返回的Byte数组 只有ResultType.Byte时才返回数据,其它情况为空 - - - - - header对象 - - - - - 返回状态说明 - - - - - 返回状态码,默认为OK - - - - - 最后访问的URl - - - - - 获取重定向的URl - - - - - 返回类型 - - - - - 表示只返回字符串 只有Html有数据 - - - - - 表示返回字符串和字节流 ResultByte和Html都有数据返回 - - - - - Post的数据格式默认为string - - - - - 字符串类型,这时编码Encoding可不设置 - - - - - Byte类型,需要设置PostdataByte参数的值编码Encoding可设置为空 - - - - - 传文件,Postdata必须设置为文件的绝对路径,必须设置Encoding的值 - - - - - Cookie返回类型 - - - - - 只返回字符串类型的Cookie - - - - - CookieCollection格式的Cookie集合同时也返回String类型的cookie - - - - - Http服务器类 - - - - - - - - - - - - 当收到Get事件时激发 - - - - - 当收到Post事件时激发 - - - - - 监听的主机,默认是localhost - - - - - 最后一次错误信息 - - - - - 在此端口建立Http服务类 - - 端口号 - - - - - - - - - - 开始服务 - - - - - 退出服务 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 超时时间 - - - - 以post方式获取网页源码 - - - - - - - - - 以post方式提交json内容 - - - - - - - - - 以post方式提交json内容 - - - - - - - - 以post方式获取网页源码 - - - - - - - - - - 以post方式获取网页源码 - - - - - - - - 获取网址对应的文件大小 - - - - - - - 获取网址对应的文件大小 - - - - - - - - 代理 - - - - - - - - - - 是否自动跳转 - - - - - 获取网页源码 - - - - - - - - 获取网页源码 - - - - - - - - - 获取网页源码 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 将相对网址转换成绝对网址 - - 相对网址 - 当前页面地址 - 转换后的绝对网址 - - - - WebDav接口 - - - - - WebDav初始化 - - - - - - - - 删除文件 - - 相对路径,不包括域名 - - - - - 下载文件 - - - - - - - - 下载文件 - - - - - - - - - 上传文件 - - - - - - - - 上传文件 - - - - - - - - - 新建文件夹 - - - - - - - 新建文件夹 - - 文件夹路径 - - - - - - 新建文件夹 - - - - - - - - 将文件或目录列出来 - - - - - - - - 定义每个文件或目录的属性 - - - - - 文件名 - - - - - 是否是文件夹 - - - - - 网址 - - - - - 最后修改时间 - - - - - - - - - - - - - - - url解密 - - - - - - - - url解密,按UTF8方式解密 - - - - - - - Url加密 - - - - - - - - Url加密,按UTF8方式加密 - - - - - - - 解密 - - - - - - - 加密 - - - - - - - - - - - - - - - - - - - - - - - - - url加密,Unicode - - - - - - - - - - - - - - - - - - - - - - Html解码,将html里未转义成功的重新转义。 - - - - - - - 将url里的字段分解成表单字典 - - - - - - - - - 根据表单字段名获取值 - - - - - - - - - AES加密解密类 - - - - - AES加密算法 - - 明文字符串 - 密钥 - 返回加密后的密文字节数组 - - - - AES解密 - - 密文字节数组 - 密钥 - 返回解密后的字符串 - - - - 加密 - - - - - - - - 解码 - - - - - - - - 转换密钥到合法密钥 - - - - - - - Base64编码类 - - - - - 编码 - - - - - - - 把字符串编码成Base64字符串 - - - - - - - - 解码 - - - - - - - MD5和SHA1操作类 - - - - - 计算文件MD5。 - 通过MD5CryptoServiceProvider类中的ComputeHash方法直接传入一个FileStream类实现计算MD5 - 操作简单,代码少,调用即可 - - 文件地址 - MD5Hash - - - - 计算文件MD5。 - 通过HashAlgorithm的TransformBlock方法对流进行叠加运算获得MD5 - 实现稍微复杂,但可使用与传输文件或接收文件时同步计算MD5值 - 可自定义缓冲区大小,计算速度较快 - - 文件地址 - MD5Hash - - - - 获取MD5 - - - - - - - 获取MD5 - - - - - - - 获取SHA1 - - - - - - - 获取SHA1 - - - - - - - 获取HmacSHA1 - - - - - - - - 获取SHA256 - - - - - - - 获取HmacSHA256 - - - - - - - - 获取SHA224 - - - - - - - 获取SHA512 - - - - - - - 获取HmacSHA512 - - - - - - - 使用using代替lock操作的对象,可指定写入和读取锁定模式 - - - - 利用IDisposable的using语法糖方便的释放锁定操作 - 内部类 - - - - 读写锁对象 - - - - 是否为写入模式 - - - - 利用IDisposable的using语法糖方便的释放锁定操作 - 构造函数 - - 读写锁 - 写入模式为true,读取模式为false - - - 释放对象时退出指定锁定模式 - - - - 空的可释放对象,免去了调用时需要判断是否为null的问题 - 内部类 - - - - 空的可释放对象 - - - - 空的释放方法 - - - - 读写锁 - - - - 保存数据 - - - - 使用using代替lock操作的对象,可指定写入和读取锁定模式 - 构造函数 - - - - 使用using代替lock操作的对象,可指定写入和读取锁定模式 - 构造函数 - 为Data属性设置初始值 - - - - 获取或设置当前对象中保存数据的值 - - 获取数据时未进入读取或写入锁定模式 - 设置数据时未进入写入锁定模式 - - - 是否启用,当该值为false时,Read()和Write()方法将返回 Disposable.Empty - - - - 进入读取锁定模式,该模式下允许多个读操作同时进行 - 退出读锁请将返回对象释放,建议使用using语块 - Enabled为false时,返回Disposable.Empty; - 在读取或写入锁定模式下重复执行,返回Disposable.Empty; - - - - 进入写入锁定模式,该模式下只允许同时执行一个读操作 - 退出读锁请将返回对象释放,建议使用using语块 - Enabled为false时,返回Disposable.Empty; - 在写入锁定模式下重复执行,返回Disposable.Empty; - - 读取模式下不能进入写入锁定状态 - - - - 中国农历类,最大支持公元0-9999年 - - 日期:2019-02-09 - 作者:http://www.cnblogs.com/zjfree/ - - - - 日历类型 - - - - - 无效 - - - - - Julian 日历 - - - - - Gregorian 日历 - - - - - 有效 - - - - - 公历节日 - - - - - 农历节日 - - - - - 某个月第n个星期几 - - - - - 获取农历 - - - - - - - 获取农历 - - - - - - - - - 获得某农历年的闰月,返回 1~12 对应一月到十二月,返回 0 表示无闰月 - - - - - - - 农历搜索方向 - - - - - 无效 - - - - - 向上 - - - - - 向下 - - - - - {* 日月食类型, 无, 日食, 月全食, 月偏食 } - - - - - 无 - - - - - 日食 - - - - - 月全食 - - - - - 月偏食 - - - - - {* 月相, 无, 朔, 望} - - - - - 无 - - - - - 朔 - - - - - 望 - - - - - 获得某公历年月日的农历日数和该日月相以及日月食类型和时刻 - - - - - - - - - - - - 获得某公历年月日的农历月数 - - - - - - - - - 获取阳历日期对应的农历日期 - - - - - - - - - - - - - 获得某公历年月日的农历月日和是否闰月的信息 - - - - - - - - - - - - 获得等效标准日数对应的某公历日,倒推而来 - - - - - - - - - - 比较两个农历日期(包括闰月信息),1 大于2返回1、1等于2返回0、1小于2返回-1 - - - - - - - - - - - - - - 获得某农历年月日(加是否闰月)的公历年月日 - 该函数采用反向二分法查找 - - - - - - - - - - - - - 获取农历某一个月的总天数 - - - - - - - - - 获取农历年份,范围约1901-2101年 - - - - - - - 获取农历年份,范围约0-9999年 - - - - - - - - - 获取农历月份,范围约1901-2101年 - - - - - - - 获取农历月份,范围约0-9999年 - - - - - - - - - 获取中文表示的农历月份 - - - - - - - 获取农历日,范围约1901-2101年 - - - - - - - 获取农历日,范围约0-9999年 - - - - - - - - - 获取农历日,范围约0-9999年 - - - - - - - 获取节气,范围约1901-2101年 - - - - - - - 获取节气,范围约0-9999年 - - - - - - - - - 返回y年第n个节气(如小寒为1)的日差天数值(pd取值真假,分别表示平气和定气) - - - - pd取值真假,分别表示平气和定气 - - - - - 获取等效标准日数 - - - - - - - - - 取本月天数,不考虑 1582 年 10 月的特殊情况 - - - - - - - - 获取节气,范围约1901-2101年 - - - - - - - 获取节气,范围约0-9999年 - - - - - - - - - 获取节气 - - - - - - - - - - - - 获取公历节日 - - - - - - - 获取公历节日 - - - - - - - - - 获取指定月份的第n个星期几的节日 - - - - - - - 返回星座,范围约1901-2101年 - - - - - 返回星座,范围约0-9999年 - - - - - 获取农历节日 - - - - - - - - - 获取农历节日 - - - - - - - 判断y年m月(1,2,..,12,下同)d日是Gregorian历还是Julian历(opt=1,2,3分别表示标准日历,Gregorge历和Julian历),是则返回1,是Julian历则返回0,若是Gregorge历所删去的那10天则返回-1 - - - - - 返回阳历y年m月d日的日差天数(在y年年内所走过的天数,如2000年3月1日为61) - - - - - 返回阳历y年日差天数为x时所对应的月日数(如y=2000,x=274时,返回1001(表示10月1日,即返回100*m+d)) - - - - - 获取指定日期的节气。 - - 要获取的年 - 要获取的月 - - - 立春:立是开始的意思,春是蠢动,表示万物开始有生气,这一天春天开始。 - 雨水:降雨开始,雨水将多。 - 惊蛰:春雷响动,惊动蛰伏地下冬眠的生物,它们将开始出土活动。 - 春分:这是春季九十天的中分点,这一天昼夜相等,所以古代曾称春分秋分为昼夜分。 - 清明:明洁晴朗,气候温暖,草木开始萌发繁茂。 - 谷雨:雨生百谷的意思。雨水增多,适时的降雨对谷物生长很为有利。 - 立夏:夏天开始,万物渐将随温暖的气候而生长。 - 小满:满指籽粒饱满,麦类等夏热作物这时开始结籽灌浆,即将饱满。 - 芒种:有芒作物开始成熟,此时也是秋季作物播种的最繁忙时节。 - 夏至:白天最长,黑夜最短,这一天中午太阳位置最高,日影短至终极,古代又称这一天为日北至或长日至。 - 小暑:暑是炎热,此时还未到达最热。 - 大暑:炎热的程度到达高峰。 - 立秋:秋天开始,植物快成熟了。 - 处暑:处是住的意思,表示暑气到此为止。 - 白露:地面水气凝结为露,色白,是天气开始转凉了。 - 秋分:秋季九十天的中间,这一天昼夜相等,同春分一样,太阳从正东升起正西落下。 - 寒露:水露先白而后寒,是气候将逐渐转冷的意思。 - 霜降:水气开始凝结成霜。 - 立冬:冬是终了,作物收割后要收藏起来的意思,这一天起冬天开始。 - 小雪:开始降雪,但还不多。 - 大雪:雪量由小增大。 - 冬至:这一天中午太阳在天空中位置最低,日影最长,白天最短, 黑夜最长,古代又称短日至或日南至。 - 小寒:冷气积久而为寒,此时尚未冷到顶点。 - 大寒:天候达到最寒冷的程度 - - - - - 获取年柱。 - - - - - 获得月柱 - - - - - - - 获取日柱。 - - - - - 返回甲子数x对应的天干数(如33为3) - - - - - 返回甲子数x对应的地支数(如33为9) - - - - - 获取日的天干地支 - - - - - - - 返回甲子数x对应的天干字符串 - - - - - 返回甲子数x对应的地支字符串 - - - - - 返回甲子数x对应的干支字符串 - - - - - - - 获取三伏开始时间 - - - 0表示1伏,1表示2伏,2表示3伏 - - - - - 节气 - - - - - 节气的时间。 - - - - - 节气名。 - - - - - 热键转换类 - - - - - 功能键。 - - - - - 修改键。 - - - - - 转换功能键到谷歌浏览器专用 - - - - - 将chrome功能键转换为普通功能键 - - - - - - - 按键值。 - - - - - 初始化类 的新实例。 - - The modifiers. - The key code. - - - - - - - - - - - - - - - - - 初始化类 的新实例。 - - - - - 加载热键 - - - - - - - 加载热键 - - - - - - 加载热键 - - - - - - 判断是否是热键 - - - - - 获取当前热键 - - - - - 已重载,返回“Ctrl+Alt+A”格式的字符串。 - - 类似“Ctrl+Alt+A”格式的字符串 - - - - 返回“Ctrl+Alt+A”格式的字符串。 - - 类似“Ctrl+Alt+A”格式的字符串 - - - - 功能键 - - - - - 无 - - - - - Alt键 - - - - - Ctrl键 - - - - - Alt+Ctrl键 - - - - - Shift键 - - - - - Shift+Alt键 - - - - - Shift+Ctrl键 - - - - - Alt+Shift+Ctrl键 - - - - - Win键 - - - - - 热键类 - - - - - 热键类 - - - - - - 热键注销 - - - - - 热键是否有效 - - - - - 释放热键 - - - - - 获取热键Tag - - - - - - - 获取热键id - - - - - - - 获取热键id - - - - - - - - 判断热键id是否存在 - - - - - - - 判断热键Tag是否存在 - - - - - - - 判断热键是否存在 - - - - - - - - 注册热键 - - - - - - - - - 注册热键 - - - - - - - - - 注册热键 - - - - - - - - - - 获取热键数量 - - - - - 删除热键 - - - - - - - 删除所有热键 - - - - - 删除所有热键 - - - - - 热键事件 - - - - - - 当使用热键时发生的事件 - - - - - 热键消息过滤 - - - - - - - 热键类型 - - - - - 热键id - - - - - 热键Tag - - - - - 功能键 - - - - - 普通键 - - - - - 热键类型 - - - - - - - - 热键类型 - - - - - - - - - 热键类型 - - - - - - - - - - 结束进程 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / - - - - - / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 删除一个逻辑笔、画笔、字体、位图、区域或者调色板,释放所有与该对象有关的系统资源,在对象被删除之后,指定的句柄也就失效了。 - - - - - - - 选择一对象到指定的设备上下文环境中,该新对象替换先前的相同类型的对象。 - - - - - - - - 创建一个与指定设备兼容的内存设备上下文环境(DC)。 - - - - - - - 为一个设备创建设备上下文环境。 - - - - - - - - - - 删除指定的设备上下文环境(Dc)。 - - - - - - - - - - - - 模拟鼠标点击 - - - - - - - - - - - 模拟按键 - - - - - - - - - 返回hWnd参数所指定的窗口的设备环境。 - - - - - - - 移动窗口 - - - - - - - - - - - - 将消息信息传送给指定的窗口过程的函数。使用函数CallWindowsProc可进行窗口子分类。 - 通常来说,同一类的所有窗口共享一个窗口过程。子类是一个窗口或者相同类的一套窗口, - 在其消息被传送到该类的窗口过程之前,这些消息是由另一个窗口过程进行解释和处理的。 - - - - - - - - - - - 用来改变指定窗口的属性.函数也将指定的一个32位值设置在窗口的额外存储空间的指定偏移位置。 - - - - - - - - - 用来改变指定窗口的属性.函数也将指定的一个32位值设置在窗口的额外存储空间的指定偏移位置。 - - - - - - - - - 设置弹出式窗口,层叠窗口或子窗口的父窗口 - - - - - - - - 获得一个指定子窗口的父窗口句柄 - - Handle to the window whose parent window handle is to be retrieved. - If the window is a child window, the return value is a handle to the parent window. If the window is a top-level window, the return value is a handle to the owner window. If the window is a top-level unowned window or if the function fails, the return value is NULL. - - - - 获取系统菜单的句柄 - - 拥有窗口菜单拷贝的窗口的句柄 - 标志位,指定将执行的操作 - - - - - 获取系统菜单的句柄 - - 拥有窗口菜单拷贝的窗口的句柄 - 标志位,指定将执行的操作。 - 如果此参数为FALSE,GetSystemMenu返回当前使用窗口菜单的拷贝的句柄。该拷贝初始时与窗口菜单相同,但可以被修改。 - 如果此参数为TRUE,GetSystemMenu重置窗口菜单到缺省状态。如果存在先前的窗口菜单,将被销毁。 - - 如果参数bRevert为FALSE,返回值是窗口菜单的拷贝的句柄:如果参数bRevert为TRUE,返回值是NULL。 - - - - 从指定菜单删除一个菜单项或分离一个子菜单。 - 备注:只要一个菜单被修改,无论它是否在显示窗口里,应用程序都必须调用函数DrawMenuBar。 - - 将被修改的菜单的句柄。 - 指定将被删除的菜单项,其含义由参数wFlags决定。 - - 如果函数调用成功,返回非零值;如果函数调用失败,返回值是零。若想获得更多的错误信息,请调用GetLastError函数。 - - - - 设置前台窗口 - - - - - - - 获取当前前台窗口句柄 - - - - - - 获得当前活动窗体 - - 活动窗口的句柄。如没有窗口处于活动状态或处于活动状态的窗口非当前线程创建,则返回零。 - - - - 设置活动窗体 - - - - - - - 获取类名 - - - - - - - - - 获取当前线程对应的进程ID - - - - - - - - 判断指定句柄是否是一个窗口 - - - - - - - 获取窗口标题 - - - - - - - - - 发送消息 - - - - - - - - - - 发送消息 - - - - - - - - - - 发送消息 - - - - - - - - - - 发送消息 - - - - - - - - - - 发送消息 - - - - - - - - - 从文件中载入指针 - - - - - - - 判断窗口是否可见 - - - - - - - 查找窗口 - - - - - - - - The FindWindowEx function retrieves a handle to a window whose class name and window name match the specified strings. The function searches child windows, beginning with the one following the specified child window. - - Handle to the parent window whose child windows are to be searched. - Handle to a child window. - Specifies class name. - Pointer to a null-terminated string that specifies the window name (the window's title). - If the function succeeds, the return value is a handle to the window that has the specified class and window names.If the function fails, the return value is NULL. - - - - The InvalidateRect function adds a rectangle to the specified window's update region. - - Handle to window. - Rectangle coordinates. - Erase state. - If the function succeeds, the return value is true.If the function fails, the return value is false. - - - - The ValidateRect function validates the client area within a rectangle by removing the rectangle from the update region of the specified window. - - Handle to window. - Validation rectangle coordinates. - If the function succeeds, the return value is true.If the function fails, the return value is false. - - - - 获取指定窗口的有关信息,也可用于获取窗口内存中指定偏移的32位度整型值。 - - - - - - - - 检索一指定窗口的客户区域或整个屏幕的显示设备上下文环境的句柄,以后可以在GDI函数中使用该句柄来在设备上下文环境中绘图。 - - - - - - - 释放设备上下文环境(DC)供其他应用程序使用。函数的效果与设备上下文环境类型有关。它只释放公用的和设备上下文环境,对于类或私有的则无效。 - - - - - - - - 获取桌面句柄 - - - - - - 获取窗口客户区的大小。注意一下:窗口的客户区为窗口中除标题栏、菜单栏之外的地方。 - - - - - - - - 返回指定窗口的边框矩形的尺寸。该尺寸以相对于屏幕坐标左上角的屏幕坐标给出。 - - - - - - - - 更新一个分层窗口的位置,大小,形状,内容和半透明度 - - - - - - - - - - - - - - - 改变一个子窗口,弹出式窗口或顶层窗口的尺寸,位置和Z序。 - 子窗口,弹出式窗口,及顶层窗口根据它们在屏幕上出现的顺序排序、顶层窗口设置的级别最高,并且被设置为Z序的第一个窗口。 - - A handle to the window. - A handle to the window to precede the positioned window in the Z order. This parameter must be a window handle or one of the following values. - Specifies the new position of the left side of the window, in client coordinates. - Specifies the new position of the top of the window, in client coordinates. - Specifies the new width of the window, in pixels. - Specifies the new height of the window, in pixels. - Specifies the window sizing and positioning flags. This parameter can be a combination of the following values. - If the function succeeds, the return value is nonzero, if the function fails, the return value is zero. - - - - 改变一个子窗口,弹出式窗口或顶层窗口的尺寸,位置和Z序。 - 子窗口,弹出式窗口,及顶层窗口根据它们在屏幕上出现的顺序排序、顶层窗口设置的级别最高,并且被设置为Z序的第一个窗口。 - - - - - - - - - - - - - 设置指针位置 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 获取或设置是否捕获鼠标 - - - - - 获取或设置是否显示图像信息 - - - - - 获取或设置操作框点的颜色 - - - - - 获取或设置操作框边框颜色 - - - - - 获取或设置放大图形的原始尺寸 - - - - - 获取或设置放大图像的倍数 - - - - - - - - - - - - - - - - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - - - - - - - - - - - - - - - - - - - - - 获取或设置用于被操作的图像 - - - - - 获取或设置操作框点的颜色 - - - - - 获取或设置操作框线条的颜色 - - - - - 获取当前选中的区域 - - - - - 获取或设置放大图像的原图大小尺寸 - - - - - 获取或设置图像放大的倍数 - - - - - 获取或设置是否绘制操作框点 - - - - - 获取或设置是否限制鼠标操作区域 - - - - - 获取或设置是否绘制信息展示 - - - - - 获取或设置是否根据图像大小自动调整控件尺寸 - - - - - 获取当前是否绘制的有区域 - - - - - 获取当前是否开始绘制 - - - - - 获取当前操作框是否正在移动 - - - - - 获取或设置操作框是否锁定 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 响应四个按键实现精确移动 - - - - - - - - - - - - 绘制操作框 - - - - - - 绘制图像放大信息 - - - - - - 清空所有操作 - - - - - 手动设置一个块选中区域 - - 要选中区域 - - - - 手动设置一个块选中区域 - - 要选中区域的坐标 - 要选中区域的大小 - - - - 手动设置一个块选中区域 - - 要选中区域的x坐标 - 要选中区域的y坐标 - 要选中区域的宽度 - 要选中区域的高度 - - - - 手动设置信息显示的位置 - - 要显示的位置 - - - - 手动设置信息显示的位置 - - 要显示位置的x坐标 - 要显示位置的y坐标 - - - - 获取操作框内的图像 - - 结果图像 - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 鼠标结构信息 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 设置Hook - - - - - - 卸载Hook - - - - - - 鼠标状态枚举值 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 事件参数 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Bin/Debug/SuperDesign/MyDb_SQLite.dll b/Bin/Debug/SuperDesign/MyDb_SQLite.dll deleted file mode 100644 index fa2c602..0000000 Binary files a/Bin/Debug/SuperDesign/MyDb_SQLite.dll and /dev/null differ diff --git a/Bin/Debug/SuperDesign/MyDb_SQLite.xml b/Bin/Debug/SuperDesign/MyDb_SQLite.xml deleted file mode 100644 index b80291c..0000000 --- a/Bin/Debug/SuperDesign/MyDb_SQLite.xml +++ /dev/null @@ -1,437 +0,0 @@ - - - - MyDb_SQLite - - - - - - - - - - - - - - - - - - - - - - 数据库路径 - 数据库密码 - - - - - - - 数据库路径 - - - - - - - - - - - - - - - - - - - - 连接数据库 - - - - - - 设置路径和密码 - - - - - - 连接数据库 - - - - - - - - - - - - 连接或创建数据库,如果数据库不存在,就创建,否则连接 - - - - - - 连接或创建数据库,如果数据库不存在,就创建,否则连接 - - - - - - 关闭数据库 - - - - - - 运行SQL命令 - - SQL语句 - SQL命令参数 - 运行失败,则返回-1,否则返回影响的行数 - - - - 运行SQL命令 - - SQL语句 - 运行失败,则返回-1,否则返回影响的行数 - - - - 运行SQL命令,并返回结果 - - SQL语句 - SQL命令参数 - 运行失败,则返回null,否则返回以数组显示的字符串 - - - - 运行SQL命令,并返回结果 - - SQL语句 - SQL命令参数 - 数组第一个默认的值 - 运行失败,则返回null,否则返回以数组显示的字符串 - - - - 运行SQL命令,并返回结果 - - SQL语句 - 运行失败,则返回null,否则返回以数组显示的字符串 - - - - 运行SQL命令,并返回结果 - - SQL语句 - 数组第一个默认的值 - 运行失败,则返回DefFristValue,否则返回以数组显示的字符串 - - - - 清空指定表的所有数据 - - 表名 - 运行失败,则返回-1,否则返回影响的行数 - - - - 清空指定表的所有数据 - - 表名 - 运行失败,则返回-1,否则返回影响的行数 - - - - 判断指定值是否存在 - - 表名 - 指定值所属字段 - 指定值 - 当前id,如果是新增记录,请填写-1 - - - - - 判断SQL语句是否有结果返回 - - SQL语句 - SQL命令参数 - 运行失败,则返回-1;存在结果,返回1;不存在结果,返回0 - - - - 判断SQL语句是否有结果返回 - - SQL语句 - 运行失败,则返回-1;存在结果,返回1;不存在结果,返回0 - - - - 创建数据库 - - SQL语句 - - - - - 根据内置例子创建数据库 - - - - - - 保存信息,如果Name不存在,系统会自动创建 - - 返回1,表示成功,0表示失败 - - - - 获取信息 - - - - - - 获取信息 - - - - - - - - - - - 获取最后一次错误信息 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 执行SQL语句 - - - 只针对IsAdd为false才生效,where 以后的sql语句 - 是新增还是更新 - - - - - 插入数据库 - - - - - - - 更新数据库 - - - where 以后的sql语句 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Bin/Debug/SuperDesign/MySql.Data.dll b/Bin/Debug/SuperDesign/MySql.Data.dll new file mode 100644 index 0000000..10eb79b Binary files /dev/null and b/Bin/Debug/SuperDesign/MySql.Data.dll differ diff --git a/Bin/Debug/SuperDesign/RaUI.dll b/Bin/Debug/SuperDesign/RaUI.dll new file mode 100644 index 0000000..7237d43 Binary files /dev/null and b/Bin/Debug/SuperDesign/RaUI.dll differ diff --git a/Bin/Debug/SuperDesign/ryControls.xml b/Bin/Debug/SuperDesign/RaUI.xml similarity index 53% rename from Bin/Debug/SuperDesign/ryControls.xml rename to Bin/Debug/SuperDesign/RaUI.xml index ebd2815..e295e5c 100644 --- a/Bin/Debug/SuperDesign/ryControls.xml +++ b/Bin/Debug/SuperDesign/RaUI.xml @@ -1,32860 +1,59440 @@ - - - - ryControls - - - - - Martin Lottering : 2007-10-27 - -------------------------------- - This is a usefull control in Filters. Allows you to save space and can replace a Grouped Box of CheckBoxes. - Currently used on the TasksFilter for TaskStatusses, which means the user can select which Statusses to include - in the "Search". - This control does not implement a CheckBoxListBox, instead it adds a wrapper for the normal ComboBox and Items. - See the CheckBoxItems property. - ---------------- - ALSO IMPORTANT: In Data Binding when setting the DataSource. The ValueMember must be a bool type property, because it will - be binded to the Checked property of the displayed CheckBox. Also see the DisplayMemberSingleItem for more information. - ---------------- - Extends the CodeProject PopupComboBox "Simple pop-up control" "http://www.codeproject.com/cs/miscctrl/simplepopup.asp" - by Lukasz Swiatkowski. - - - - - - - - - - The checkbox list control. The public CheckBoxItems property provides a direct reference to its Items. - - - - - In DataBinding operations, this property will be used as the DisplayMember in the CheckBoxComboBoxListBox. - The normal/existing "DisplayMember" property is used by the TextBox of the ComboBox to display - a concatenated Text of the items selected. This concatenation and its formatting however is controlled - by the Binded object, since it owns that property. - - - - - Builds a CSV string of the items selected. - - - - - A direct reference to the Items of CheckBoxComboBoxListControl. - You can use it to Get or Set the Checked status of items manually if you want. - But do not manipulate the List itself directly, e.g. Adding and Removing, - since the list is synchronised when shown with the ComboBox.Items. So for changing - the list contents, use Items instead. - - - - - The DataSource of the combobox. Refreshes the CheckBox wrappers when this is set. - - - - - The ValueMember of the combobox. Refreshes the CheckBox wrappers when this is set. - - - - - In DataBinding operations, this property will be used as the DisplayMember in the CheckBoxComboBoxListBox. - The normal/existing "DisplayMember" property is used by the TextBox of the ComboBox to display - a concatenated Text of the items selected. This concatenation however is controlled by the Binded - object, since it owns that property. - - - - - Made this property Browsable again, since the Base Popup hides it. This class uses it again. - Gets an object representing the collection of the items contained in this - System.Windows.Forms.ComboBox. - - A System.Windows.Forms.ComboBox.ObjectCollection representing the items in - the System.Windows.Forms.ComboBox. - - - - - - - - - - - - - - - - - Will add an invisible item when the style is DropDownList, - to help maintain the correct text in main TextBox. - - - - - - - - - - - - A function to clear/reset the list. - (Ubiklou : http://www.codeproject.com/KB/combobox/extending_combobox.aspx?msg=2526813#xx2526813xx) - - - - - Uncheck all items. - - - - - The properties that will be assigned to the checkboxes as default values. - - - - - - - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - A container control for the ListControl to ensure the ScrollBar on the ListControl does not - Paint over the Size grip. Setting the Padding or Margin on the Popup or host control does - not work as I expected. - - - - - - - - - - Prescribed by the Popup class to ensure Resize operations work correctly. - - - - - - This ListControl that pops up to the User. It contains the CheckBoxComboBoxItems. - The items are docked DockStyle.Top in this control. - - - - - - - - - - - Simply a reference to the CheckBoxComboBox. - - - - - A Typed list of ComboBoxCheckBoxItems. - - - - - - - - - - Prescribed by the Popup control to enable Resize operations. - - - - - - - - - - - - Maintains the controls displayed in the list by keeping them in sync with the actual - items in the combobox. (e.g. removing and adding as well as ordering) - - - - - The CheckBox items displayed in the Popup of the ComboBox. - - - - - - - A reference to the CheckBoxComboBox. - A reference to the item in the ComboBox.Items that this object is extending. - - - - A reference to the CheckBoxComboBox. - - - - - A reference to the Item in ComboBox.Items that this object is extending. - - - - - A reference to the Item in ComboBox.Items that this object is extending. - - - - - When using Data Binding operations via the DataSource property of the ComboBox. This - adds the required Bindings for the CheckBoxes. - - - - - - - - - - - Added this handler because the control doesn't seem - to initialize correctly until shown for the first - time, which also means the summary text value - of the combo is out of sync initially. - - - - - A Typed List of the CheckBox items. - Simply a wrapper for the CheckBoxComboBox.Items. A list of CheckBoxComboBoxItem objects. - This List is automatically synchronised with the Items of the ComboBox and extended to - handle the additional boolean value. That said, do not Add or Remove using this List, - it will be lost or regenerated from the ComboBox.Items. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Returns the item with the specified displayName or Text. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Called when any property changes. - - - - - - - - - - CodeProject.com "Simple pop-up control" "http://www.codeproject.com/cs/miscctrl/simplepopup.asp". - - - - - CodeProject.com "Simple pop-up control" "http://www.codeproject.com/cs/miscctrl/simplepopup.asp". - - - - - CodeProject.com Simple pop-up control http://www.codeproject.com/cs/miscctrl/simplepopup.asp. - Represents a pop-up window. - - - - - Gets the content of the pop-up. - - - - - Gets a value indicating whether the PopupControl.Popup uses the fade effect. - - true if pop-up uses the fade effect; otherwise, false. - To use the fade effect, the FocusOnOpen property also has to be set to true. - - - - Gets or sets a value indicating whether to focus the content after the pop-up has been opened. - - true if the content should be focused after the pop-up has been opened; otherwise, false. - If the FocusOnOpen property is set to false, then pop-up cannot use the fade effect. - - - - Gets or sets a value indicating whether presing the alt key should close the pop-up. - - true if presing the alt key does not close the pop-up; otherwise, false. - - - - Gets or sets a value indicating whether this PopupControl.Popup is resizable. - - true if resizable; otherwise, false. - - - - Gets or sets the size that is the lower limit that can specify. - - An ordered pair of type representing the width and height of a rectangle. - - - - Gets or sets the size that is the upper limit that can specify. - - An ordered pair of type representing the width and height of a rectangle. - - - - Gets parameters of a new window. - - An object of type used when creating a new window. - - - - Initializes a new instance of the PopupControl.Popup class. - - The content of the pop-up. - - Pop-up will be disposed immediately after disposion of the content control. - - is null. - - - - Processes a dialog box key. - - One of the values that represents the key to process. - - true if the key was processed by the control; otherwise, false. - - - - - Updates the pop-up region. - - - - - Shows pop-up window below the specified control. - - The control below which the pop-up will be shown. - - When there is no space below the specified control, the pop-up control is shown above it. - - is null. - - - - Shows pop-up window below the specified area of specified control. - - The control used to compute screen location of specified area. - The area of control below which the pop-up will be shown. - - When there is no space below specified area, the pop-up control is shown above it. - - is null. - - - - Adjusts the size of the owner to accommodate the if the owner is currently displayed, or clears and resets active child controls of the if the is not currently displayed. - - true if the owner is currently displayed; otherwise, false. - - - - Raises the event. - - An that contains the event data. - - - - Raises the event. - - A that contains the event data. - - - - Raises the event. - - An that contains the event data. - - - - - - - - - - - - - - - - - - - - - Processes Windows messages. - - The Windows to process. - - - - Processes the resizing messages. - - The message. - true, if the WndProc method from the base class shouldn't be invoked. - - - - Paints the size grip. - - The instance containing the event data. - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - CodeProject.com "Simple pop-up control" "http://www.codeproject.com/cs/miscctrl/simplepopup.asp". - Represents a Windows combo box control with a custom popup control attached. - - - - - Initializes a new instance of the PopupControl.PopupComboBox class. - - - - - The pop-up wrapper for the dropDownControl. - Made PROTECTED instead of PRIVATE so descendent classes can set its Resizable property. - Note however the pop-up properties must be set after the dropDownControl is assigned, since this - popup wrapper is recreated when the dropDownControl is assigned. - - - - - Gets or sets the drop down control. - - The drop down control. - - - - Shows the drop down. - - - - - Hides the drop down. - - - - - Processes Windows messages. - - The Windows to process. - - - This property is not relevant for this class. - This property is not relevant for this class. - - - This property is not relevant for this class. - This property is not relevant for this class. - - - This property is not relevant for this class. - This property is not relevant for this class. - - - This property is not relevant for this class. - This property is not relevant for this class. - - - This property is not relevant for this class. - This property is not relevant for this class. - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - Maintains an additional "Selected" and "Count" value for each item in a List. - Useful in the CheckBoxComboBox. It holds a reference to the List[Index] Item and - whether it is selected or not. - It also caters for a Count, if needed. - - - - - No property on the object is specified for display purposes, so simple ToString() operation - will be performed. And no Counts will be displayed - - - - - No property on the object is specified for display purposes, so simple ToString() operation - will be performed. - - - - - A Display "Name" property is specified. ToString() will not be performed on items. - This is specifically useful on DataTable implementations, or where PropertyDescriptors are used to read the values. - If a PropertyDescriptor is not found, a Property will be used. - - - - - A Display "Name" property is specified. ToString() will not be performed on items. - This is specifically useful on DataTable implementations, or where PropertyDescriptors are used to read the values. - If a PropertyDescriptor is not found, a Property will be used. - - - - - Is a Count indicator used. - - - - - The original List of values wrapped. A "Selected" and possibly "Count" functionality is added. - - - - - Used to indicate NOT to use ToString(), but read this property instead as a display value. - - - - - When specified, indicates that ToString() should not be performed on the items. - This property will be read instead. - This is specifically useful on DataTable implementations, where PropertyDescriptors are used to read the values. - - - - - Builds a concatenation list of selected items in the list. - - - - - Indicates whether the Item display value (Name) should include a count. - - - - - Reset all counts to zero. - - - - - Creates a ObjectSelectionWrapper item. - Note that the constructor signature of sub classes classes are important. - - - - - - - - - - - - - - Used together with the ListSelectionWrapper in order to wrap data sources for a CheckBoxComboBox. - It helps to ensure you don't add an extra "Selected" property to a class that don't really need or want that information. - - - - - - - - - - - - Used as a count indicator for the item. Not necessarily displayed. - - - - - Is this item selected. - - - - - A reference to the wrapped item. - - - - - The containing list for these selections. - - - - - An indicator of how many items with the specified status is available for the current filter level. - Thaught this would make the app a bit more user-friendly and help not to miss items in Statusses - that are not often used. - - - - - A reference to the item wrapped. - - - - - The item display value. If ShowCount is true, it displays the "Name [Count]". - - - - - The textbox display value. The names concatenated. - - - - - Indicates whether the item is selected. - - - - - - - - - - - - - - - - 控件状态 - - - - - 无 - - - - - 获得焦点 - - - - - 失去焦点 - - - - - 鼠标指针进入控件 - - - - - Toolbar控件 - - - - - - - - - - - - - - - 获取或设置控件显示的图片 - - - - - 重写控件焦点属性 - - - - - 自定义绘制 - - - - - - 焦点进入 - - - - - - 失去焦点 - - - - - - 禁止调整大小 - - - - - - - - - - - - - - - - - - 只响应单击鼠标左键事件 - - - - - - 按比例缩放图片 - - - - - - - 图片缩放 - - 源图片 - 缩放图片的宽度 - 缩放图片的高度 - 缩放的图片 - - - - 必需的设计器变量。 - - - - - 清理所有正在使用的资源。 - - 如果应释放托管资源,为 true;否则为 false。 - - - - 设计器支持所需的方法 - 不要 - 使用代码编辑器修改此方法的内容。 - - - - - 绘图对像 - - 绘图对像 - 图片 - 绘置的图片大小、坐标 - 绘置的图片边界 - 当前状态 - 状态总数 - - - - 绘图对像 - - 绘图对像 - 图片对像 - 绘置的图片大小、坐标 - 当前状态 - 状态总数 - - - - - - - - - 得到要绘置的图片对像 - - 图像在程序集中的地址 - - - - - 得到要绘置的图片对像 - - 图像在程序集中的路径 - 图像在程序集中的地址 - - - - - 获取资源图标 - - - - - - - 得到图程序集中的图片对像 - - 图像在程序集中的地址 - - - - - 得到图程序集中的图片对像 - - 图像在程序集中的路径 - 图像在程序集中的地址 - - - - - 控件的状态。 - - - - - 正常 - - - - - 鼠标经过 - - - - - 鼠标按下 - - - - - 鼠标的当前位置 - - - - - - - - - - - - - - - - - - - - 美化按钮 - - - - - 普通按钮矩形位置 - - - - - 美化按钮 - - - - - 分割按钮的宽度 - - - - - 是否启用分割按钮 - - - - - 优先使用默认皮肤 - - - - - 按钮基础背景色 - - - - - 按钮字体颜色 - - - - - 图片宽度,默认值为18px,最小12px - - - - - 圆角的位置,默认全部都是圆角 - - - - - 设置圆角半径 - - - - - 背景色是否渐变 - - - - - 图片高度 - - - - - 图片与文字之间的间距 - - - - - 当鼠标按下时图片和文字是否产生偏移 - - - - - 鼠标进入时 - - - - - - 鼠标离开 - - - - - - 鼠标按下 - - - - - - 鼠标弹起 - - - - - - 鼠标当前所在位置 - - - - - 获取图像以及文字的位置 - - - - - - - - - - - - - - - - - - - - - - - - 添加菜单分隔线 - - - - - - 添加菜单 - - - - - - - - 必需的设计器变量。 - - - - - 清理所有正在使用的资源。 - - 如果应释放托管资源,为 true;否则为 false。 - - - - 设计器支持所需的方法 - 不要修改 - 使用代码编辑器修改此方法的内容。 - - - - - 增强版Label(禁用了双击Label会自动复制文本到剪切板的功能) - - - - - - - - - - - 必需的设计器变量。 - - - - - 清理所有正在使用的资源。 - - 如果应释放托管资源,为 true;否则为 false。 - - - - 设计器支持所需的方法 - 不要修改 - 使用代码编辑器修改此方法的内容。 - - - - - 增强富文本控件 - - - - - 开始更新 - - - - - 结束更新 - - - - - RichTextBox - - - - - - - - - - - - - - - - - - - - - - - 在自带菜单弹出前激发 - - - - - 根据标签获得菜单项 - - - - - - - 只允许输入文本(只对设置之后的人工输入有效) - - - - - 按下按键 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 鼠标按下 - - - - - - - - - - - - - - - - - - 当文本框为空时,显示的内容。 - - - - - 添加菜单分隔线 - - - - - - 添加菜单 - - - - - - - - 必需的设计器变量。 - - - - - 清理所有正在使用的资源。 - - 如果应释放托管资源,为 true;否则为 false。 - - - - 设计器支持所需的方法 - 不要修改 - 使用代码编辑器修改此方法的内容。 - - - - - - - - - - - - - - - 必需的设计器变量。 - - - - - 清理所有正在使用的资源。 - - 如果应释放托管资源,为 true;否则为 false。 - - - - 设计器支持所需的方法 - 不要修改 - 使用代码编辑器修改此方法的内容。 - - - - - - - - - - 消息列表控件 - - - - - 最大高度 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 必需的设计器变量。 - - - - - 清理所有正在使用的资源。 - - 如果应释放托管资源,为 true;否则为 false。 - - - - 设计器支持所需的方法 - 不要 - 使用代码编辑器修改此方法的内容。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 建立圆角路径的样式。 - - - - - 四个角都不是圆角。 - - - - - 四个角都为圆角。 - - - - - 左边两个角为圆角。 - - - - - 右边两个角为圆角。 - - - - - 上边两个角为圆角。 - - - - - 下边两个角为圆角。 - - - - - 左下角为圆角。 - - - - - 右下角为圆角。 - - - - - 画图相关API - - - - - 建立带有圆角样式的路径。 - - 用来建立路径的矩形。 - 圆角的大小。 - 圆角的样式。 - 是否把矩形长宽减 1,以便画出边框。 - 建立的路径。 - - - - 窗体皮肤 - - - - - 窗体皮肤 - - - - - 标题属性 - - - - - 是否使用父窗口的图标 - - - - - 点击最小化按钮是最小化还是隐藏 - - - - - 最大化按钮 - - - - - 最小化按钮 - - - - - 标题栏关闭按钮是否显示 - - - - - 当窗口位于后台时,是否标注显示。 - - - - - - - - - - 标题栏字体颜色 - - - - - 标题栏不处于活动状态时的字体颜色 - - - - - 标题栏背景颜色 - - - - - 标题栏不处于活动状态时的背景颜色 - - - - - 是否允许拖拉窗体边缘来改变窗体大小 - - - - - - - - - - - 画边框 - - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - 热键文本框 - - - - - 热键文本框 - - - - - - - - - - - - - - - - - 在控件大小变化时发生 - - - - - - 此属性无效 - - - - - 载入热键配置 - - - - - - 保存热键 - - - - - - 是否含义热键 - - - - - 读取或设置热键 - - - - - 功能键 - - - - - 热键按键 - - - - - KeyDown事件 - - - - - - KeyDown事件 - - - - - - 必需的设计器变量。 - - - - - 清理所有正在使用的资源。 - - 如果应释放托管资源,为 true;否则为 false。 - - - - 设计器支持所需的方法 - 不要 - 使用代码编辑器修改此方法的内容。 - - - - - 图标列表控件 - - - - - 图标列表控件 - - - - - 图标大小 - - - - - 文本显示高度(从底部算起) - - - - - 默认图标 - - - - - 是否显示图标 - - - - - 是否显示网格线 - - - - - 角标图标合集 - - - - - 画项 - - - - - - 选择项的背景开始颜色 - - - - - 选择项的背景结束颜色 - - - - - 选择项的边框颜色 - - - - - 选择项的字体颜色 - - - - - 重绘选中时背景 - - - - - 重绘图标 - - - 区域大小 - - - - - - - - 重绘文本 - - - - - 获取文本对齐 - - - - - 水平滚动条滚动事件 - - - - - 垂直滚动条滚动事件 - - - - - - - - - - - 列表项 - - - - - 图标 - - - - - 角标图片序号,为-1表示无角标 - - - - - - - - - - - - - - - 最大高度 - - - - - 标题 - - - - - 是否显示时间 - - - - - 添加时间 - - - - - - - - - - - - - - - - - 必需的设计器变量。 - - - - - 清理所有正在使用的资源。 - - 如果应释放托管资源,为 true;否则为 false。 - - - - 设计器支持所需的方法 - 不要 - 使用代码编辑器修改此方法的内容。 - - - - - - - - - - - - - - - 最大高度 - - - - - 标题 - - - - - 是否显示时间 - - - - - 添加时间 - - - - - 内容 - - - - - 网址 - - - - - 必需的设计器变量。 - - - - - 清理所有正在使用的资源。 - - 如果应释放托管资源,为 true;否则为 false。 - - - - 设计器支持所需的方法 - 不要 - 使用代码编辑器修改此方法的内容。 - - - - - - - - - - - - - - - - - - - - - 必需的设计器变量。 - - - - - 清理所有正在使用的资源。 - - 如果应释放托管资源,为 true;否则为 false。 - - - - 设计器支持所需的方法 - 不要修改 - 使用代码编辑器修改此方法的内容。 - - - - - - - - - - - - - - - 图标 - - - - - 标题 - - - - - 悬浮提示 - - - - - 标题颜色 - - - - - 设置按钮 - - - - - - - 判断和设置是否选择 - - - - - 必需的设计器变量。 - - - - - 清理所有正在使用的资源。 - - 如果应释放托管资源,为 true;否则为 false。 - - - - 设计器支持所需的方法 - 不要修改 - 使用代码编辑器修改此方法的内容。 - - - - - - - - - - - - - - - 绘制边框 - - 消息 - - - - 类说明:CContextMenuStrip控件的实现用来代替系统的ContextMenuStrip控件 - - - - - - - - - - - - - - - - 重写OnCreateControl - - - - - 重写OnPaint事件 - - - - - - CreateRoundedRectanglePath - - Rectangle - - - - - - 系统热键数据类。 - - - - - 系统热键数据类 - - - - - 使多行属性失效掉 - - - - - 使只读属性失效掉 - - - - - 获取热键文本 - - - - - 功能键 - - - - - 热键按键 - - - - - - - - - - - 必需的设计器变量。 - - - - - 清理所有正在使用的资源。 - - 如果应释放托管资源,为 true;否则为 false。 - - - - 设计器支持所需的方法 - 不要 - 使用代码编辑器修改此方法的内容。 - - - - - 增强时间控件 - - - - - 增强时间控件 - - - - - - - - - - - 必需的设计器变量。 - - - - - 清理所有正在使用的资源。 - - 如果应释放托管资源,为 true;否则为 false。 - - - - 设计器支持所需的方法 - 不要修改 - 使用代码编辑器修改此方法的内容。 - - - - - 选择文本框 - - - - - 选择文本框 - - - - - 按钮基础背景色 - - - - - 优先使用默认皮肤 - - - - - 选择的id - - - - - 选择的名称 - - - - - 选择的名称 - - - - - 字体 - - - - - 重新设置大小 - - - - - 在选择时激发 - - - - - 点击选择 - - - - - 必需的设计器变量。 - - - - - 清理所有正在使用的资源。 - - 如果应释放托管资源,为 true;否则为 false。 - - - - 设计器支持所需的方法 - 不要修改 - 使用代码编辑器修改此方法的内容。 - - - - - 可以改变文本行距(行间距)的Label - - - - - 行间距 - - - - - 可以改变文本行距(行间距)的Label - - - - - - - - - - 字体高度 - - - - - - - - - - 文本 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 计算两个日期的时间间隔,返回的是日期值+ - - 时间值,将显示在返回的值里 - 参照时间 - - - - - - - - - - - - - - - 控件边框颜色 - - - - - 控件背景颜色 - - - - - 圆角弧度大小 - - - - - 圆角风格 - - - - - 必需的设计器变量。 - - - - - 清理所有正在使用的资源。 - - 如果应释放托管资源,为 true;否则为 false。 - - - - 设计器支持所需的方法 - 不要修改 - 使用代码编辑器修改此方法的内容。 - - - - - - - - - - 在搜索时激发 - - - - - 文本变化时激发 - - - - - 文本变化时激发 - - - - - 双击时激发 - - - - - - - - - - - - - - - 文本为空时的显示效果 - - - - - 文本不选中 - - - - - 有内容时的显示效果 - - - - - 当文本框为空时,显示的内容。 - - - - - 字体 - - - - - 优先使用默认皮肤 - - - - - 背景色是否渐变 - - - - - 按钮基础背景色 - - - - - 按钮圆角部分背景颜色 - - - - - - - - - - 重新设置大小 - - - - - 点击搜索按钮 - - - - - 必需的设计器变量。 - - - - - 清理所有正在使用的资源。 - - 如果应释放托管资源,为 true;否则为 false。 - - - - 设计器支持所需的方法 - 不要修改 - 使用代码编辑器修改此方法的内容。 - - - - - - - - - - - - - - - 使用公共皮肤 - - - - - 按钮颜色 - - - - - - - - - - - - - - - - - - - - - - - - - - - 皮肤公共类 - - - - - 是否使用默认皮肤 - - - - - 按钮皮肤 - - - - - 按钮皮肤类 - - - - - 背景颜色 - - - - - 字体颜色 - - - - - 是否颜色渐变 - - - - - 类说明:帮助类 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 修改控件或窗体的边框,例如Textbox或是Form窗体 - - 消息 - 控件对象 - 边框像素 - 边框颜色 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 超级图片控件,支持加载工程内部图片、异步加载网络图片 - - - - - 超级图片控件,支持加载工程内部图片、异步加载网络图片 - - - - - 图片所在上级域名 - - - - - 图片资源所在上级文件夹 - - - - - 根据不同前缀,加载不同格式图片。i:表示工程内置图片;s:表示T_ImageDomain域名下的图片,u:表示指定url的图片;f:表示本地图片 - - - - - - 加载本地图片,加载完毕不会占用本地图片 - - - - - - 加载指定url图片 - - url位置 - 是否异步 - - - - 必需的设计器变量。 - - - - - 清理所有正在使用的资源。 - - 如果应释放托管资源,为 true;否则为 false。 - - - - 设计器支持所需的方法 - 不要 - 使用代码编辑器修改此方法的内容。 - - - - - 多标签控件 - - - - - - - - - - 选项发生变化时激发 - - - - - 标签选择的序号 - - - - - - - - - - 选择的颜色 - - - - - 多标签控件颜色 - - - - - - - - - - 必需的设计器变量。 - - - - - 清理所有正在使用的资源。 - - 如果应释放托管资源,为 true;否则为 false。 - - - - 设计器支持所需的方法 - 不要修改 - 使用代码编辑器修改此方法的内容。 - - - - - 多标签控件 - - - - - - - - - - 获取对应的标签 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 美化文本框控件 - - - - - 文本变化时激发 - - - - - 文本变化时激发 - - - - - 双击时激发 - - - - - - - - - - 是否只能输入数字 - - - - - 是否多行 - - - - - 是否在显示不下时换行 - - - - - 最大长度 - - - - - - - - - - 背景颜色 - - - - - 右键菜单 - - - - - 字体颜色 - - - - - 选择的开始位置 - - - - - 选择的长度 - - - - - 选择的文本 - - - - - 提示文本 - - - - - 选择全部 - - - - - 密码 - - - - - 是否只读 - - - - - - - - - - - 文本为空时的显示效果 - - - - - 字体 - - - - - 有内容时的显示效果 - - - - - 当文本框为空时,显示的内容。 - - - - - - - - - - 选择文本框中的文本范围 - - 文本框中当前选定文本的第一个字符的位置。 - 要选择的字符数 - - - - 必需的设计器变量。 - - - - - 清理所有正在使用的资源。 - - 如果应释放托管资源,为 true;否则为 false。 - - - - 设计器支持所需的方法 - 不要修改 - 使用代码编辑器修改此方法的内容。 - - - - - Define some Windows message constants - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This class adds to the functionality provided in System.Windows.Forms.MenuStrip. - - It allows you to "ClickThrough" to the MenuStrip so that you don't have to click once to - bring the form into focus and once more to take the desired action - - It also implements a SuppressHighlighting property to turn off the highlighting - that occures on mouseover when the form is not active - - - - - Gets or sets whether the control honors item clicks when its containing form does - not have input focus. - - - Default value is false, which is the same behavior provided by the base ToolStrip class. - - - - - Gets or sets whether the control shows highlighting on mouseover - - - Default value is true, which is the same behavior provided by the base MenuStrip class. - - - - - This method overrides the procedure that responds to Windows messages. - - It intercepts the WM_MOUSEMOVE message - and ignores it if SuppressHighlighting is on and the TopLevelControl does not contain the focus. - Otherwise, it calls the base class procedure to handle the message. - - It also intercepts the WM_MOUSEACTIVATE message and replaces an "Activate and Eat" result with - an "Activate" result if ClickThrough is enabled. - - - - - - This class adds to the functionality provided in System.Windows.Forms.ToolStrip. - - It allows you to "ClickThrough" to the MenuStrip so that you don't have to click once to - bring the form into focus and once more to take the desired action - - It also implements a SuppressHighlighting property to turn off the highlighting - that occures on mouseover when the form is not active - - - - - Gets or sets whether the control honors item clicks when its containing form does - not have input focus. - - - Default value is false, which is the same behavior provided by the base ToolStrip class. - - - - - Gets or sets whether the control shows highlighting on mouseover - - - Default value is true, which is the same behavior provided by the base MenuStrip class. - - - - - This method overrides the procedure that responds to Windows messages. - - It intercepts the WM_MOUSEMOVE message - and ignores it if SuppressHighlighting is on and the TopLevelControl does not contain the focus. - Otherwise, it calls the base class procedure to handle the message. - - It also intercepts the WM_MOUSEACTIVATE message and replaces an "Activate and Eat" result with - an "Activate" result if ClickThrough is enabled. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 还原 - - - - - 移动 - - - - - 大小 - - - - - 最小化 - - - - - 最大化 - - - - - 关闭 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 透明图片控件 - - - - - 是否使用透明,默认为True - - - - - 设置透明度 - - - - - 要绑定的控件 - - - - - 透明图片控件 - - - - - 图片 - - - - - 初始化加载控件 - - 透明度 - 是否显示加载图片 - 图片 - - - - - - - - - - - - - - - 显示加载 - - - - - 隐藏加载 - - - - - 必需的设计器变量。 - - - - - 清理所有正在使用的资源。 - - 如果应释放托管资源,为 true;否则为 false。 - - - - 设计器支持所需的方法 - 不要修改 - 使用代码编辑器修改此方法的内容。 - - - - - - - - - - 获得当前进程,以便重绘控件 - - - - - - - 是否启用热点效果 - - - - - 边框颜色 - - - - - 热点边框颜色 - - - - - 是否鼠标MouseOver状态 - - - - - 是否启用热点效果 - - - - - 边框颜色 - - - - - 热点时边框颜色 - - - - - - - - - - 鼠标移动到该控件上时 - - - - - - 当鼠标从该控件移开时 - - - - - - 当该控件获得焦点时 - - - - - - 当该控件失去焦点时 - - - - - - 获得操作系统消息 - - - - - - 必需的设计器变量。 - - - - - 清理所有正在使用的资源。 - - 如果应释放托管资源,为 true;否则为 false。 - - - - 设计器支持所需的方法 - 不要修改 - 使用代码编辑器修改此方法的内容。 - - - - - 一个强类型的资源类,用于查找本地化的字符串等。 - - - - - 返回此类使用的缓存的 ResourceManager 实例。 - - - - - 重写当前线程的 CurrentUICulture 属性,对 - 使用此强类型资源类的所有资源查找执行重写。 - - - - - 查找 System.Drawing.Bitmap 类型的本地化资源。 - - - - - 查找 System.Drawing.Bitmap 类型的本地化资源。 - - - - - 查找 System.Drawing.Bitmap 类型的本地化资源。 - - - - - 查找 System.Drawing.Bitmap 类型的本地化资源。 - - - - - 查找 System.Drawing.Bitmap 类型的本地化资源。 - - - - - 查找 System.Drawing.Bitmap 类型的本地化资源。 - - - - - 查找 System.Drawing.Bitmap 类型的本地化资源。 - - - - - 日控件 - - - - - 日控件 - - - - - 当前日期 - - - - - 在发生页码变化前激发 - - - - - 设置休息状态,1为休息,-1为上班,其它为不显示 - - - - - - 日期 - - - - - 农历 - - - - - 阳历日期字体颜色 - - - - - 阳历日期字体 - - - - - 农历日期字体 - - - - - 农历部分字体颜色 - - - - - 是否选中 - - - - - 必需的设计器变量。 - - - - - 清理所有正在使用的资源。 - - 如果应释放托管资源,为 true;否则为 false。 - - - - 设计器支持所需的方法 - 不要修改 - 使用代码编辑器修改此方法的内容。 - - - - - 日历控件 - - - - - 单击事件 - - - - - - - 单击某个日期事件 - - - - - 日历控件 - - - - - 设置日期 - - - - - 放假数据表 - - - - - 必需的设计器变量。 - - - - - 清理所有正在使用的资源。 - - 如果应释放托管资源,为 true;否则为 false。 - - - - 设计器支持所需的方法 - 不要修改 - 使用代码编辑器修改此方法的内容。 - - - - - 设置管理类,快速添加设置。 - - - - - 设置管理类,快速添加设置。 - - - - - 设置管理类,快速添加设置。 - - - - - - 存储类型 - - - - - 配置存储路径 - - - - - 设置XML内容 - - - - - 添加控件 - - - - - - - - 设置值 - - - - - - - - 添加控件 - - - - - - - - - - 添加控件 - - - - - - - - - 添加控件 - - - - - - - - - 添加控件 - - - - - - - - - 添加控件 - - - - - - - - - 添加控件 - - - - - - - - - 添加控件 - - - - - - - - - 添加控件 - - - - - - - - - 添加控件 - - - - - - - - - 添加控件 - - - - - - - - - 读取配置 - - - - - 保存配置 - - - - - - - - - - - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - - - - - - 类 名:ColorHSL - 功 能:H 色相 \ S 饱和度(纯度) \ L 亮度 颜色模型 - 日 期:2015-02-08 - 修 改:2015-03-20 - 作 者:ls9512 - - - - - HSL颜色 - - - - - - - - 色相 - - - - - 饱和度(纯度) - - - - - 饱和度 - - - - - 类 名:ColorHSV - 功 能:H 色相 \ S 饱和度(纯度) \ V 明度 颜色模型 - 日 期:2015-01-22 - 修 改:2015-03-20 - 作 者:ls9512 - - - - - 构造方法 - - - - - - - - 色相 - - - - - 饱和度(纯度) - - - - - 明度 - - - - - 类 名:ColorRGB - 功 能:R 红色 \ G 绿色 \ B 蓝色 颜色模型 - 所有颜色模型的基类,RGB是用于输出到屏幕的颜色模式,所以所有模型都将转换成RGB输出 - 日 期:2015-01-22 - 修 改:2015-03-20 - 作 者:ls9512 - - - - - 构造方法 - - - - - - - - - - - - - - 红色 - - - - - 绿色 - - - - - 蓝色 - - - - - 获取实际颜色 - - - - - - 类 名:ColorHelper - 功 能:提供从RGB到HSV/HSL色彩空间的相互转换 - 日 期:2015-02-08 - 修 改:2015-03-20 - 作 者:ls9512 - - - - - RGB转换HSV - - - - - - - HSV转换RGB - - - - - - - RGB转换HSL - - - - - - - HSL转换RGB - - H, S and L input range = 0 -1.0 - - - - - RGB转CMYK - - - - - - - - - - RGB转CMYK - - - - - - - - - - - - CMYK转RGB - - - - - - - - - - Standard-RGB → XYZ,X、Y、Z 使用 D65/2°标准光源. - - - - - - - - - XYZ → Standard-RGB,X、Y、Z 使用 D65/2°标准光源. - - - - - - - - - XYZ → Adobe-RGB,X、Y、Z 使用 D65/2°标准光源.RGB Adobe 1998 - - - - - - - - - Adobe-RGB → XYZ,X、Y、Z 使用 D65/2°标准光源.RGB Adobe 1998 - - - - - - - - - Yxy转RGB - - - - - - - - - RGB转Yxy - - - - - - - - - 超级颜色选择控件 - - - 分页控件 - - - - - - - - - - - - - - - - - - - - - - - - - - 获取网页颜色 - - - - - 超级颜色选择控件 - - - - - 必需的设计器变量。 - - - - - 清理所有正在使用的资源。 - - 如果应释放托管资源,为 true;否则为 false。 - - - - 设计器支持所需的方法 - 不要修改 - 使用代码编辑器修改此方法的内容。 - - - - - Chrome风格的多标签控件 - - - - - 设置选项卡处于选中状态时第一背景色. - - - - - 设置选项卡处于选中状态时第二背景色. - - - - - 设置选项卡处于非选中状态时第一背景色. - - - - - 设置选项卡处于非选中状态时第二背景色. - - - - - 设置鼠标移动到非选中状态选项卡时第一背景色. - - - - - 设置鼠标移动到非选中状态选项卡时第二背景色. - - - - - 设置选项卡工作区背景色. - - - - - 设置选项卡工作区背景图. - - - - - 是否显示关闭按钮 - - - - - 是否显示新增按钮 - - - - - 是否允许拖拽标签 - - - - - 标签最大宽度 - - - - - 标签右键菜单 - - - - - 鼠标按下标签时激发 - - - - - 鼠标放开标签时激发 - - - - - Chrome风格的多标签控件 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 设置圆角半径 - - - - - Tab文字左边距离 - - - - - - - - - - - - - - 画标签文字 - - - - - - - - - 画标签图标 - - - - - - - 画关闭按钮 - - - - - - - - 获取所有选项卡合起来的宽度 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 添加新标签 - - - - - - - - - - - - 必需的设计器变量。 - - - - - 清理所有正在使用的资源。 - - 如果应释放托管资源,为 true;否则为 false。 - - - - 设计器支持所需的方法 - 不要 - 使用代码编辑器修改此方法的内容。 - - - - - The position is not over a tab. - - - - - The position is over a tab's icon. - - - - - The position is over a tab's text. - - - - - The position is over a tab but not over its icon or its text. For owner-drawn tab controls, this value is specified if the position is anywhere over a tab. - TCHT_ONITEM is a bitwise-OR operation on TCHT_ONITEMICON and TCHT_ONITEMLABEL. - - - - - Specifies values from SetWindowPosZ enumeration. - - - - - Specified HWND_TOP enumeration value. - - - - - Specified HWND_BOTTOM enumeration value. - - - - - Specified HWND_TOPMOST enumeration value. - - - - - Specified HWND_NOTOPMOST enumeration value. - - - - - Invalidates the rectangle or region that you specify in lprcUpdate or hrgnUpdate. - You can set only one of these parameters to a non-NULL value. If both are NULL, RDW_INVALIDATE invalidates the entire window. - - - - Causes the OS to post a WM_PAINT message to the window regardless of whether a portion of the window is invalid. - - - - Causes the window to receive a WM_ERASEBKGND message when the window is repainted. - Specify this value in combination with the RDW_INVALIDATE value; otherwise, RDW_ERASE has no effect. - - - - - Validates the rectangle or region that you specify in lprcUpdate or hrgnUpdate. - You can set only one of these parameters to a non-NULL value. If both are NULL, RDW_VALIDATE validates the entire window. - This value does not affect internal WM_PAINT messages. - - - - Suppresses any pending WM_ERASEBKGND messages. - - - Excludes child windows, if any, from the repainting operation. - - - Includes child windows, if any, in the repainting operation. - - - Causes the affected windows, which you specify by setting the RDW_ALLCHILDREN and RDW_NOCHILDREN values, to receive WM_ERASEBKGND and WM_PAINT messages before the RedrawWindow returns, if necessary. - - - - Causes the affected windows, which you specify by setting the RDW_ALLCHILDREN and RDW_NOCHILDREN values, to receive WM_ERASEBKGND messages before RedrawWindow returns, if necessary. - The affected windows receive WM_PAINT messages at the ordinary time. - - - - - Specifies values from Msgs enumeration. - - - - - Specified WM_NULL enumeration value. - - - - - Specified WM_CREATE enumeration value. - - - - - Specified WM_DESTROY enumeration value. - - - - - Specified WM_MOVE enumeration value. - - - - - Specified WM_SIZE enumeration value. - - - - - Specified WM_ACTIVATE enumeration value. - - - - - Specified WM_SETFOCUS enumeration value. - - - - - Specified WM_KILLFOCUS enumeration value. - - - - - Specified WM_ENABLE enumeration value. - - - - - Specified WM_SETREDRAW enumeration value. - - - - - Specified WM_SETTEXT enumeration value. - - - - - Specified WM_GETTEXT enumeration value. - - - - - Specified WM_GETTEXTLENGTH enumeration value. - - - - - Specified WM_PAINT enumeration value. - - - - - Specified WM_CLOSE enumeration value. - - - - - Specified WM_QUERYENDSESSION enumeration value. - - - - - Specified WM_QUIT enumeration value. - - - - - Specified WM_QUERYOPEN enumeration value. - - - - - Specified WM_ERASEBKGND enumeration value. - - - - - Specified WM_SYSCOLORCHANGE enumeration value. - - - - - Specified WM_ENDSESSION enumeration value. - - - - - Specified WM_SHOWWINDOW enumeration value. - - - - - Specified WM_WININICHANGE enumeration value. - - - - - Specified WM_SETTINGCHANGE enumeration value. - - - - - Specified WM_DEVMODECHANGE enumeration value. - - - - - Specified WM_ACTIVATEAPP enumeration value. - - - - - Specified WM_FONTCHANGE enumeration value. - - - - - Specified WM_TIMECHANGE enumeration value. - - - - - Specified WM_CANCELMODE enumeration value. - - - - - Specified WM_SETCURSOR enumeration value. - - - - - Specified WM_MOUSEACTIVATE enumeration value. - - - - - Specified WM_CHILDACTIVATE enumeration value. - - - - - Specified WM_QUEUESYNC enumeration value. - - - - - Specified WM_GETMINMAXINFO enumeration value. - - - - - Specified WM_PAINTICON enumeration value. - - - - - Specified WM_ICONERASEBKGND enumeration value. - - - - - Specified WM_NEXTDLGCTL enumeration value. - - - - - Specified WM_SPOOLERSTATUS enumeration value. - - - - - Specified WM_DRAWITEM enumeration value. - - - - - Specified WM_MEASUREITEM enumeration value. - - - - - Specified WM_DELETEITEM enumeration value. - - - - - Specified WM_VKEYTOITEM enumeration value. - - - - - Specified WM_CHARTOITEM enumeration value. - - - - - Specified WM_SETFONT enumeration value. - - - - - Specified WM_GETFONT enumeration value. - - - - - Specified WM_SETHOTKEY enumeration value. - - - - - Specified WM_GETHOTKEY enumeration value. - - - - - Specified WM_QUERYDRAGICON enumeration value. - - - - - Specified WM_COMPAREITEM enumeration value. - - - - - Specified WM_GETOBJECT enumeration value. - - - - - Specified WM_COMPACTING enumeration value. - - - - - Specified WM_COMMNOTIFY enumeration value. - - - - - Specified WM_WINDOWPOSCHANGING enumeration value. - - - - - Specified WM_WINDOWPOSCHANGED enumeration value. - - - - - Specified WM_POWER enumeration value. - - - - - Specified WM_COPYDATA enumeration value. - - - - - Specified WM_CANCELJOURNAL enumeration value. - - - - - Specified WM_NOTIFY enumeration value. - - - - - Specified WM_INPUTLANGCHANGEREQUEST enumeration value. - - - - - Specified WM_INPUTLANGCHANGE enumeration value. - - - - - Specified WM_TCARD enumeration value. - - - - - Specified WM_HELP enumeration value. - - - - - Specified WM_USERCHANGED enumeration value. - - - - - Specified WM_NOTIFYFORMAT enumeration value. - - - - - Specified WM_CONTEXTMENU enumeration value. - - - - - Specified WM_STYLECHANGING enumeration value. - - - - - Specified WM_STYLECHANGED enumeration value. - - - - - Specified WM_DISPLAYCHANGE enumeration value. - - - - - Specified WM_GETICON enumeration value. - - - - - Specified WM_SETICON enumeration value. - - - - - Specified WM_NCCREATE enumeration value. - - - - - Specified VK_RMENU enumeration value. - - - - - Specified WM_NCCALCSIZE enumeration value. - - - - - Specified WM_NCHITTEST enumeration value. - - - - - Specified WM_NCPAINT enumeration value. - - - - - Specified WM_NCACTIVATE enumeration value. - - - - - Specified WM_GETDLGCODE enumeration value. - - - - - Specified WM_SYNCPAINT enumeration value. - - - - - Specified WM_NCMOUSEMOVE enumeration value. - - - - - Specified WM_NCLBUTTONDOWN enumeration value. - - - - - Specified WM_NCLBUTTONUP enumeration value. - - - - - Specified WM_NCLBUTTONDBLCLK enumeration value. - - - - - Specified WM_NCRBUTTONDOWN enumeration value. - - - - - Specified WM_NCRBUTTONUP enumeration value. - - - - - Specified WM_NCRBUTTONDBLCLK enumeration value. - - - - - Specified WM_NCMBUTTONDOWN enumeration value. - - - - - Specified WM_NCMBUTTONUP enumeration value. - - - - - Specified WM_NCMBUTTONDBLCLK enumeration value. - - - - - Specified WM_NCXBUTTONDOWN enumeration value. - - - - - Specified WM_NCXBUTTONUP enumeration value. - - - - - Specified WM_KEYDOWN enumeration value. - - - - - Specified WM_KEYUP enumeration value. - - - - - Specified WM_CHAR enumeration value. - - - - - Specified WM_DEADCHAR enumeration value. - - - - - Specified WM_SYSKEYDOWN enumeration value. - - - - - Specified WM_SYSKEYUP enumeration value. - - - - - Specified WM_SYSCHAR enumeration value. - - - - - Specified WM_SYSDEADCHAR enumeration value. - - - - - Specified WM_KEYLAST enumeration value. - - - - - Specified WM_IME_STARTCOMPOSITION enumeration value. - - - - - Specified WM_IME_ENDCOMPOSITION enumeration value. - - - - - Specified WM_IME_COMPOSITION enumeration value. - - - - - Specified WM_IME_KEYLAST enumeration value. - - - - - Specified WM_INITDIALOG enumeration value. - - - - - Specified WM_COMMAND enumeration value. - - - - - Specified WM_SYSCOMMAND enumeration value. - - - - - Specified WM_TIMER enumeration value. - - - - - Specified WM_HSCROLL enumeration value. - - - - - Specified WM_VSCROLL enumeration value. - - - - - Specified WM_INITMENU enumeration value. - - - - - Specified WM_INITMENUPOPUP enumeration value. - - - - - Specified WM_MENUSELECT enumeration value. - - - - - Specified WM_MENUCHAR enumeration value. - - - - - Specified WM_ENTERIDLE enumeration value. - - - - - Specified WM_MENURBUTTONUP enumeration value. - - - - - Specified WM_MENUDRAG enumeration value. - - - - - Specified WM_MENUGETOBJECT enumeration value. - - - - - Specified WM_UNINITMENUPOPUP enumeration value. - - - - - Specified WM_MENUCOMMAND enumeration value. - - - - - Specified WM_CTLCOLORMSGBOX enumeration value. - - - - - Specified WM_CTLCOLOREDIT enumeration value. - - - - - Specified WM_CTLCOLORLISTBOX enumeration value. - - - - - Specified WM_CTLCOLORBTN enumeration value. - - - - - Specified WM_CTLCOLORDLG enumeration value. - - - - - Specified WM_CTLCOLORSCROLLBAR enumeration value. - - - - - Specified WM_CTLCOLORSTATIC enumeration value. - - - - - Specified WM_MOUSEMOVE enumeration value. - - - - - Specified WM_LBUTTONDOWN enumeration value. - - - - - Specified WM_LBUTTONUP enumeration value. - - - - - Specified WM_LBUTTONDBLCLK enumeration value. - - - - - Specified WM_RBUTTONDOWN enumeration value. - - - - - Specified WM_RBUTTONUP enumeration value. - - - - - Specified WM_RBUTTONDBLCLK enumeration value. - - - - - Specified WM_MBUTTONDOWN enumeration value. - - - - - Specified WM_MBUTTONUP enumeration value. - - - - - Specified WM_MBUTTONDBLCLK enumeration value. - - - - - Specified WM_MOUSEWHEEL enumeration value. - - - - - Specified WM_XBUTTONDOWN enumeration value. - - - - - Specified WM_XBUTTONUP enumeration value. - - - - - Specified WM_XBUTTONDBLCLK enumeration value. - - - - - Specified WM_PARENTNOTIFY enumeration value. - - - - - Specified WM_ENTERMENULOOP enumeration value. - - - - - Specified WM_EXITMENULOOP enumeration value. - - - - - Specified WM_NEXTMENU enumeration value. - - - - - Specified WM_SIZING enumeration value. - - - - - Specified WM_CAPTURECHANGED enumeration value. - - - - - Specified WM_MOVING enumeration value. - - - - - Specified WM_DEVICECHANGE enumeration value. - - - - - Specified WM_MDICREATE enumeration value. - - - - - Specified WM_MDIDESTROY enumeration value. - - - - - Specified WM_MDIACTIVATE enumeration value. - - - - - Specified WM_MDIRESTORE enumeration value. - - - - - Specified WM_MDINEXT enumeration value. - - - - - Specified WM_MDIMAXIMIZE enumeration value. - - - - - Specified WM_MDITILE enumeration value. - - - - - Specified WM_MDICASCADE enumeration value. - - - - - Specified WM_MDIICONARRANGE enumeration value. - - - - - Specified WM_MDIGETACTIVE enumeration value. - - - - - Specified WM_MDISETMENU enumeration value. - - - - - Specified WM_ENTERSIZEMOVE enumeration value. - - - - - Specified WM_EXITSIZEMOVE enumeration value. - - - - - Specified WM_DROPFILES enumeration value. - - - - - Specified WM_MDIREFRESHMENU enumeration value. - - - - - Specified WM_IME_SETCONTEXT enumeration value. - - - - - Specified WM_IME_NOTIFY enumeration value. - - - - - Specified WM_IME_CONTROL enumeration value. - - - - - Specified WM_IME_COMPOSITIONFULL enumeration value. - - - - - Specified WM_IME_SELECT enumeration value. - - - - - Specified WM_IME_CHAR enumeration value. - - - - - Specified WM_IME_REQUEST enumeration value. - - - - - Specified WM_IME_KEYDOWN enumeration value. - - - - - Specified WM_IME_KEYUP enumeration value. - - - - - Specified WM_MOUSEHOVER enumeration value. - - - - - Specified WM_UNDO enumeration value. - - - - - Specified WM_RENDERFORMAT enumeration value. - - - - - Specified WM_RENDERALLFORMATS enumeration value. - - - - - Specified WM_DESTROYCLIPBOARD enumeration value. - - - - - Specified WM_DRAWCLIPBOARD enumeration value. - - - - - Specified WM_PAINTCLIPBOARD enumeration value. - - - - - Specified WM_VSCROLLCLIPBOARD enumeration value. - - - - - Specified WM_SIZECLIPBOARD enumeration value. - - - - - Specified WM_ASKCBFORMATNAME enumeration value. - - - - - Specified WM_CHANGECBCHAIN enumeration value. - - - - - Specified WM_HSCROLLCLIPBOARD enumeration value. - - - - - Specified WM_QUERYNEWPALETTE enumeration value. - - - - - Specified WM_PALETTEISCHANGING enumeration value. - - - - - Specified WM_PALETTECHANGED enumeration value. - - - - - Specified WM_HOTKEY enumeration value. - - - - - Specified WM_PRINT enumeration value. - - - - - Specified WM_PRINTCLIENT enumeration value. - - - - - Specified WM_HANDHELDFIRST enumeration value. - - - - - Specified WM_HANDHELDLAST enumeration value. - - - - - Specified WM_AFXFIRST enumeration value. - - - - - Specified WM_AFXLAST enumeration value. - - - - - Specified WM_PENWINFIRST enumeration value. - - - - - Specified WM_PENWINLAST enumeration value. - - - - - Specified WM_APP enumeration value. - - - - - Specified WM_USER enumeration value. - - - - - Specified WM_REFLECT enumeration value. - - - - - Specified WM_THEMECHANGED enumeration value. - - - - - - - - - - 关键词 - - - - - 密码 - - - - - 权限用户id - - - - - - - - - - - - - 返回关键词 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 树形控件,用于分类用 - - - - - 显示在第一位的名称 - - - - - 是否显示菜单 - - - - - 树形控件 - - - - - 判断指定节点是否是目标节点的子节点 - - - - - - - - - 判断当前节点,当前用户是否有权限访问 - - - - - - - - - 权限事件 - - - - - - - - 选择权限用户时发生 - - - - - 数据变化时发生 - - - - - 数据变化前发生 - - - - - 操作事件 - - - - - - - 在添加分组前发生 - - - - - 在修改分组前发生 - - - - - 在删除分组前发生 - - - - - 在设置密码前发生 - - - - - 在设置权限前发生 - - - - - 获取新的关键词分类 - - - - - - 根据id获取节点 - - - - - - - 根据节点获取节点信息 - - - - - - - 设置节点信息 - - - - - - - 设置节点关键词和密码 - - - - - - - - 设置节点密码 - - - - - - - 设置节点关键词 - - - - - - - 设置节点用户 - - - - - - - RecursionTreeControl:表示将XML文件的内容显示在TreeView控件中 - - 将要加载的XML文件中的节点元素 - 将要加载的XML文件中的节点集合 - - - - 把XML文本载入到列表中 - - - - - - 把XML文件载入到列表中 - - - - - - 将列表保存为xml文本 - - - - - - 改变所有子节点的状态 - - - - - - - 反选子节点 - - - - - - 根据关键词来选中列表 - - - - - - 根据关键词来选中列表 - - - - - - 格式化关键字(会去除重复项),以便存入数据库 - - - - - - - 去除掉重复项 - - - - - - - 获取当前选中项以及所有父项的关键词组合 - - - - - - 获取选中的 - - - - - - - - 必需的设计器变量。 - - - - - 清理所有正在使用的资源。 - - 如果应释放托管资源,为 true;否则为 false。 - - - - 设计器支持所需的方法 - 不要 - 使用代码编辑器修改此方法的内容。 - - - - - - - - - - 是否为添加 - - - - - 选择的文本 - - - - - 选择的Tag - - - - - 选择的图片序号 - - - - - - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - - - - - - - - - - - - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - - - - - - - - - - - - - - - - 旧密码 - - - - - 新密码 - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - - - - - - - - - - - - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - 颜色标签 - - - - - 行间距 - - - - - 颜色标签 - - - - - 更新 - - - - - 字体高度 - - - - - 控件高 - - - - - 控件文本 - - - - - 获取过滤掉颜色的字 - - - - - - - 改变字体 - - - - - - - - - - - - - - 密码控件 - - - - - - - - - - 密码 - - - - - 必需的设计器变量。 - - - - - 清理所有正在使用的资源。 - - 如果应释放托管资源,为 true;否则为 false。 - - - - 设计器支持所需的方法 - 不要 - 使用代码编辑器修改此方法的内容。 - - - - - 分页控件 - - - - - 首页文本 - - - - - 上一页文本 - - - - - 下一页文本 - - - - - 末页文本 - - - - - 跳页文本 - - - - - 页面信息文本 - - - - - 存储SQL参数 - - - - - 最后一页的页码 - - - - - 在发生页码变化时激发 - - - - - 在发生页码变化前激发 - - - - - 设置/返回每页显示的量大小 - - - - - 设置/返回记录总数 - - - - - 设置/返回分页SQL语句,{pagecount}表示页数,{recordcount}表示记录总数,{pagesize}表示页面大小, - {pageindex}表示当前页数,{recordnum}表示当前页记录数,{pageendnum}表示当前页最后一条记录的记录数 - - - - - 设置/返回当{recordnum}小于等于0时的分页SQL语句(比如第一页),如果为空,则默认使用SQLText值。{pagecount}表示页数, - {recordcount}表示记录总数,{pagesize}表示页面大小,{pageindex}表示当前页数,{recordnum}表示当前页记录数,{pageendnum}表示当前页最后一条记录的记录数 - - - - - 获取当前页码 - - - - - - 设置分页语句 - - 数据库类型 - 表名 - 条件判断sql语句,注意不包含where,以及不包含排序语句;,如果不存在条件判断语句,请为空 - 排序语句,必须包含Order By;,如果不存在排序语句,请为空 - - - - - 获取数据库指定条件的记录总数 - - 数据库类型 - 表名 - 条件判断sql语句,注意不包含where,以及不包含排序语句;,如果不存在条件判断语句,请为空 - - - - - 设置分页语句为MySQL分页语句 - - 表名 - 条件判断sql语句,注意不包含where,以及不包含排序语句;,如果不存在条件判断语句,请为空 - 排序语句,必须包含Order By;,如果不存在排序语句,请为空 - - - - - 获取MySQL数据库指定条件的记录总数 - - 表名 - 条件判断sql语句,注意不包含where,以及不包含排序语句;,如果不存在条件判断语句,请为空 - - - - - 设置分页语句为MSSQL分页语句 - - 表名 - 条件判断sql语句,注意不包含where,以及不包含排序语句;,如果不存在条件判断语句,请为空 - 排序语句,必须包含Order By;,如果不存在排序语句,请为空 - - - - - 获取MSSQL数据库指定条件的记录总数 - - 表名 - 条件判断sql语句,注意不包含where,以及不包含排序语句;,如果不存在条件判断语句,请为空 - 排序语句,必须包含Order By;,如果不存在排序语句,请为空 - - - - - 设置分页语句为SQLite分页语句 - - 表名 - 条件判断sql语句,注意不包含where,以及不包含排序语句;,如果不存在条件判断语句,请为空 - 排序语句,必须包含Order By;,如果不存在排序语句,请为空 - - - - - 设置分页语句为SQLite分页语句 - - 表名 - 条件判断sql语句,注意不包含where,可包含order by,如果不存在条件判断语句,请为空 - - - - - 获取SQLite数据库指定条件的记录总数 - - 表名 - 条件判断sql语句,注意不包含where,可包含order by,如果不存在条件判断语句,请为空 - - - - - 返回分页SQL语句 - - - - - 分页控件 - - - - - 设置当前页为指定页 - - - - - - 下一页 - - - - - 上一页 - - - - - 末页 - - - - - 首页 - - - - - 必需的设计器变量。 - - - - - 清理所有正在使用的资源。 - - 如果应释放托管资源,为 true;否则为 false。 - - - - 设计器支持所需的方法 - 不要 - 使用代码编辑器修改此方法的内容。 - - - - - 自动排列控件 - - - - - 最大列数 - - - - - 开始排列的坐标 - - - - - 下一项的位置 - - - - - 下一项的右下角坐标 - - - - - 竖向间隔像素 - - - - - 横向间隔像素 - - - - - 最小保留右边距,只对ReDraw2有效 - - - - - 自动排列控件构造函数 - - - - - - 自动排列控件构造函数 - - - - - - - - 开始排列控件 - - - - - 开始排列控件,当列数超过显示空间时,自动换行 - - - - - 加入的控件列表 - - - - - 初始化添加,自动将容器设置为滚动条自动显示 - - - - - - 添加控件 - - - - - - - 删除控件 - - - - - - 删除控件 - - - - - - 清空所有控件 - - - - - This enum represents the possible browser commands - - - - - Used when no commans are available - - - - - Used in the new navigation events - - - - - The URL to navigate to - - - - - The name of the frame to navigate to - - - - - The flags when opening a new window - - - - - The pointer to ppDisp - - - - - Creates a new instance of WebBrowserExtendedNavigatingEventArgs - - Pointer to the automation object of the browser - The URL to go to - The name of the frame - The new window flags - - - - - - - - - Used in the new navigation events - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 查看源码 - - - - - 复制当前选中区 - - - - - 粘贴当前选中区 - - - - - 剪切当前选中区 - - - - - 全选 - - - - - 清除当前选中区的选中状态。 - - - - - 从当前选中区中删除全部超级链接。 - - - - - 从当前选中区中删除全部书签。 - - - - - 删除当前选中区 - - - - - 重做 - - - - - 撤销 - - - - - 从当前选中区中删除格式化标签。 - - - - - 点击节点 - - - - - - - - 点击节点 - - - - - - - - - 点击元素 - - 节点名 - 属性 - 属性值 - 等待毫秒数 - 第几个符合的元素,从1开始 - - - - 等待多时毫秒 - - - - - - Represents event information for the main form, when the command state of the active browser changes - - - - - Creates a new instance of the class - - A list of commands that are available - - - - Gets a list of commands that are available - - - - - An extended version of the control. - - - - - - - - - - - - 在页面弹出消息对话框时激发 - - - - - - - - - - - - - - - - - - - - - - 打开页面并等待页面加载完毕 - - 要打开的页面地址 - 小于等于0,则表示一直等待,否则表示等待指定秒后,如果依然没有加载完毕,就直接返回 - - - - 等待页面加载完毕 - - 小于等于0,则表示一直等待,否则表示等待指定秒后,如果依然没有加载完毕,就直接返回 - - - - 等待指定毫秒 - - 等待指定毫秒 - - - - 获取网页源代码,可以自动去除乱码 - - - - - - 加载html文本到浏览器中 - - - - - - - 加载html文本到浏览器中 - - - - - - 强制用本窗体打开新链接 - - - - - - - - - - - This method supports the .NET Framework infrastructure and is not intended to be used directly from your code. - Called by the control when the underlying ActiveX control is created. - - - - - - This method supports the .NET Framework infrastructure and is not intended to be used directly from your code. - Called by the control when the underlying ActiveX control is discarded. - - - - - Returns the automation object for the web browser - - - - - This method will be called to give you a chance to create your own event sink - - - - - Detaches the event sink - - - - - 在文档下载开始时激发 - - - - - Raises the event - - Empty - - You could start an animation or a notification that downloading is starting - - - - - 下载完成后触发 - - - Here you could start monitoring for script errors. - - - - - Raises the event - - Empty - - - - 在开始浏览新网页时激发. - - - - - 在打开新的网页窗口时激发 - - - - - Raises the event - - Thrown when BrowserExtendedNavigatingEventArgs is null - - - - Raises the event - - Thrown when BrowserExtendedNavigatingEventArgs is null - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 新窗口事件,只限Window XP SP2或以上系统支持 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Overridden - - The send to this procedure - - - - A list of all the available window messages - - - - - Raises the event - - - - - 在网页窗口关闭时激发 - - - Do not confuse this with DWebBrowserEvents2.Quit... That's something else. - - - - - Flags used by INewWindowManager::EvaluateNewWindow. - These values are taken into account in the decision of whether to display a pop-up window. - - - - - No information Present - - - - - The page is unloading. This flag is set in response to the onbeforeunload and onunload events. - Some pages load pop-up windows when you leave them rather than when you enter. This flag is used to identify those situations. - - - - - The call to INewWindowManager::EvaluateNewWindow is the result of a user-initiated action - (a mouse click or key press). Use this flag in conjunction with the NWMF_FIRST_USERINITED flag - to determine whether the call is a direct or indirect result of the user-initiated action. - - - - - When NWMF_USERINITED is present, this flag indicates that the call to - INewWindowManager::EvaluateNewWindow is the first query that results from this user-initiated action. - Always use this flag in conjunction with NWMF_USERINITED. - - - - - The override key (ALT) was pressed. The override key is used to bypass the pop-up manager梐llowing - all pop-up windows to display梐nd must be held down at the time that INewWindowManager::EvaluateNewWindow is called. - - - - - The new window attempting to load is the result of a call to the showHelp method. Help is sometimes displayed in a separate window, - and this flag is valuable in those cases. - - - - - The new window is a dialog box that displays HTML content. - - - - - Indicates that the EvaluateNewWindow method is being called through a marshalled Component Object Model (COM) proxy - from another thread. In this situation, the method should make a decision and return immediately without performing - blocking operations such as showing modal user interface (UI). Lengthy operations will cause the calling thread to - appear unresponsive. - - - - - HRESULT constants - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - a form that supports custom theme - - - - - 标签新建按钮事件 - - - - - 标签关闭按钮事件 - - - - - 标签创建时事件 - - - - - 标签激活前事件 - - - - - 标签激活后事件 - - - - - 在标签栏创建时激发 - - - - - - - 内边距 - - - - - 默认内边距 - - - - - 标题 - - - - - 皮肤/主题 - - - - - 是否可拖动改变窗体大小 - - - - - 窗体边界大小,鼠标移动到该边界将变成指针形状,拖动可改变窗体大小 - - - - - 窗体边框大小 - - - - - 标题栏高度 - - - - - 窗体圆角程度 - - - - - 窗体圆角样式 - - - - - 控制按钮相对于右上角的偏移量 - - - - - 关闭/最大化/最小化按钮之间的距离,可以设置成负值使它们重叠 - - - - - 标题栏图标尺寸 - - - - - 窗体图标,如果设置本项,将不使用Icon属性 - - - - - 标题栏图标与窗体左边框的距离 - - - - - 标题距离左边的距离 - - - - - 窗体关闭按钮的尺寸 - - - - - 窗体最大化/还原按钮的大小 - - - - - 窗体最小化按钮的大小 - - - - - 是否显示阴影 - - - - - 窗体阴影宽度 - - - - - 使用阴影来缩放 - - - - - 窗体阴影颜色 - - - - - 阴影从里到外是逐渐变浅的,这个值设置深色部分的透明度,ARGB中的A值 - - - - - 阴影从里到外是逐渐变浅的,这个值设置浅色部分的透明度,ARGB中的A值 - - - - - 表示去掉自画的边框及标题栏后,剩下的可用的客户区区域,坐标相对于窗体左上角 - - - - - 表示去掉自画的边框及标题栏后,剩下的可用的客户区大小 - - - - - 表示MDI标签栏的区域,包括bottom-region - - - - - MGdUI皮肤 - - - - - - - - - - - - - - - - - 获取子窗体 - - - - - - 通过sendmessage方式激活子窗体以避免闪烁 - - - - - - 当子窗体关闭时激发 - - - - - - - 子窗体可视化变化 - - - - - - - 获取当前的子窗体列表 - - - - - - 判断所接收到的 wm_nc-calc-size 消息是否指示窗体即将最小化 - - - - - 判断所接收到的 wm_nc-calc-size 消息是否指示窗体即将最大化 - - - - - to make the client area to have 3D view - - - - - 双击事件 - - - - - 消息 - - - - - - 画UI - - - - - - 在画背景时激发 - - - - - - 重写该方法解决在VS设计器中,每次保存一个新的尺寸,再打开尺寸会变大的问题 - - - - - 创建控件时激发 - - - - - 窗体可见变化时激发 - - - - - - 大小改变时激发 - - - - - - 在位置变化时激发 - - - - - - 窗体激活 - - - - - - 窗体关闭后激发 - - - - - - 加载时 - - - - - - 在子窗体激活时激发 - - - - - - 标签菜单 - - - - - 窗体上移动鼠标时激发 - - - - - - 获取当前点击的标签项 - - - - - 在窗体上按下鼠标时激发 - - - - - - 在窗体上放开鼠标时激发 - - - - - - 在鼠标离开窗体时激发 - - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - 该类处理mdi-bar的绘制及鼠标事件管理 - - - - - use left,top,right to location the bar in owner form, - the margin is from Form.ClientRectangle - - - - - 整个标签栏高度,包含标签栏底部区域、标签、标签顶部空隙 - - - - - 标签栏底部区域的高度 - - - - - 是否显示标签栏边框 - - - - - 是否显示标签栏背景 - - - - - 标签栏左内边距 - - - - - 标签栏右内边距 - - - - - 标签高度 - - - - - 激活的标签高度 - - - - - tab顶部与bar顶部的空间,这个值用来计算 BarHeight - - - - - 每个标签的左右边界可以不是垂直的,而是都有一个斜度 - - - - - tab与tab之间的距离,用负值可以使tab有重叠的效果 - - - - - 标签是否显示图标 - - - - - 是否显示标签关闭按钮 - - - - - 标签图标大小 - - - - - 标签图标距离左边的距离 - - - - - 标签文字距离左边的距离 - - - - - 标签关闭按钮的大小 - - - - - 标签关闭按钮距离右边的距离 - - - - - 是否显示新建标签按钮 - - - - - 新建标签按钮的大小 - - - - - 新建标签距离左边的距离 - - - - - 按钮与Bar底部的距离 - - - - - 一个tab允许的最小宽度 - - - - - 一个tab允许的最大显示宽度 - - - - - 标签正常宽度 - - - - - 同步_listTabItems与mdi主窗体实际存在的子form - - - - - 为每个tab分配空间,如果tab数目太多,则有些会被隐藏 - - - - - 重绘整个标签栏 - - - - - - 处理鼠标事件。该方法会触发一些click事件,重刷一些按钮等 - - - - - - - 该类表示一个单独的标签项 - - - - - 该标签所对应的窗体 - - - - - 最终分配到的整个tab的宽度 - - - - - 表示所对应的form是否仍未被关闭 - - - - - 是否因空间不足而被隐藏 - - - - - 返回全部显示该标签文本所需的长度 - - - - - - 返回显示全部文本时该tab所需的宽度,该宽度不超过bar-container - 规定的tabmaxwidth - - - - - - 居左 - - - - - 显示在最后一个标签后面 - - - - - 该类封装设置一个主题所需的信息,可以继承该类实现不同的主题 - - - - - 主题名称,用于标识主题,对主题进行简单描述 - - - - - 窗体边界大小,鼠标移动到该边界将变成指针形状,拖动可改变窗体大小 - - - - - 窗体边框大小 - - - - - 窗体标题栏高度 - - - - - 标题栏图标与窗体左边框的距离 - - - - - 标题栏图标尺寸 - - - - - 标题栏文本左边距 - - - - - 控制按钮(关闭按钮)相对于窗体右上角的偏移量 - - - - - 窗体关闭按钮的尺寸 - - - - - 窗体最大化/还原按钮的大小 - - - - - 窗体最小化按钮的大小 - - - - - 关闭/最大化/最小化按钮之间的距离,可以设置成负值使它们重叠 - - - - - 窗体圆角程度 - - - - - 窗体圆角样式 - - - - - 是否使用默认的圆角样式,该样式为左上角和右上角圆角, - 最好在窗体边框较粗时才使用该样式 - - - - - 是否在标题栏上绘制图标 - - - - - 是否在标题栏上绘制文本 - - - - - 是否显示窗体阴影 - - - - - 窗体阴影大小 - - - - - 拖动窗体阴影是否可以改变窗体大小 - - - - - 阴影的颜色,可以设置成其他颜色而不一定是黑色 - - - - - 阴影从里到外是逐渐变浅的,这个值设置深色部分的透明度,ARGB中的A值 - - - - - 阴影从里到外是逐渐变浅的,这个值设置浅色部分的透明度,ARGB中的A值 - - - - - 是否在客户区边界画线使其看起来有立体感 - - - - - 窗体标题栏文字是否居中显示 - - - - - 窗体边框最外一像素的颜色 - - - - - 窗体边框第二最外像素的颜色 - - - - - 窗体边框其他部分颜色,如果窗体边框大小大于2,则其他像素将用此颜色画出 - - - - - 标题栏颜色是从上到下渐变的,这个值设置上边的颜色值 - - - - - 标题栏颜色是从上到下渐变的,这个值设置下边的颜色值 - - - - - 标题栏文字颜色 - - - - - 窗体背景颜色,该值将覆盖窗体自带的BackColor属性值 - - - - - 窗体关闭按钮的颜色集合 - - - - - 窗体最大化/还原按钮的颜色集合 - - - - - 窗体最小化按钮的颜色集合 - - - - - 默认状态下关闭按钮背景图片 - - - - - 鼠标移过去时关闭按钮背景图片 - - - - - 鼠标按下时关闭按钮背景图片 - - - - - 默认状态下最大化按钮背景图片 - - - - - 鼠标移过去时最大化按钮背景图片 - - - - - 鼠标按下时最大化按钮背景图片 - - - - - 默认状态下恢复按钮背景图片 - - - - - 鼠标移过去时恢复按钮背景图片 - - - - - 鼠标按下时恢复按钮背景图片 - - - - - 默认状态下最小化按钮背景图片 - - - - - 鼠标移过去时最小化按钮背景图片 - - - - - 鼠标按下时最小化按钮背景图片 - - - - - 是否用SendMessage的方式切换子窗体,以避免子窗体切换时产生的闪烁 - - - - - Mdi-Bar与窗体左、上、右边界的距离,只用到这三个值,Bottom值没用到。 - 用这三个值来确定Mdi-Bar的宽度及其在窗体中的位置 - - - - - 内部左边空白,第一个标签将从这个空白距离之后开始 - - - - - 标签栏内部右边空白 - - - - - 标签栏背景颜色 - - - - - 标签栏边框颜色 - - - - - 标签栏背景图片 - - - - - 是否显示标签栏边框 - - - - - 标签栏下边区域的背景颜色 - - - - - 标签栏下边区域的高度 - - - - - 标签高度 - - - - - 被选中的标签高度,可以设置成与TabHeight不一样的值,以突出显示被选中状态 - - - - - 标签之间的距离,设成负值可以使标签有重叠的效果 - - - - - 标签的最大宽度,任何情况下标签都不能超过这个宽度 - - - - - 标签正常宽度,如果标签需要很短的宽度(比如20像素)就可以显示完上面的文字, - 但是Mdi-Bar上有足够的空间时,标签会以正常宽度(比如100像素)显示 - - - - - 标签最小宽度,当标签小于这个宽度时将被隐藏 - - - - - 标签梯度大小,标签可以不以矩形方式显示,而是有一个梯度/斜度。 - - - - - 标签顶部空白,这个值用于参与计算Mdi-Bar高度,计算方式为: - Mdi-Bar Height = BottomRegionHeight + TabHeight + TabTopSpace - - - - - 标签上是否显示子窗体图标 - - - - - 标签上是否显示子窗体关闭图标 - - - - - 选中状态的标签的上部背景色,与下部背景色不同时,标签背景色就有渐变效果 - - - - - 选中状态的标签的下部背景色,与上部背景色不同时,标签背景色就有渐变效果 - - - - - 标签激活时字体颜色 - - - - - 非选中状态的标签的字体颜色 - - - - - 非选中状态的标签的上部背景色 - - - - - 非选中状态的标签的下部背景色 - - - - - 标签外边框颜色 - - - - - 标签内边框颜色,这个颜色一般具有一定的透明度 - - - - - 是否显示标签边框 - - - - - 是否显示默认的新建标签按钮(NewTabBtn) - - - - - NewTabBtn与下边框的距离,这个值用来定位按钮的Y坐标 - - - - - 新建标签按钮与左边框的距离,这个值用来定位按钮的X坐标 - - - - - 新建标签按钮大小 - - - - - 按钮颜色集合 - - - - - 是否一直显示ListAllBtn,即使在没有标签被隐藏的情况下 - - - - - 《显示全部标签》按钮的位置 - - - - - 《显示全部标签》按钮与下边框的距离,这个值用来定位按钮的Y坐标 - - - - - 《显示全部标签》按钮与左边框的距离,这个值用来定位按钮的X坐标 - - - - - 《显示全部标签》按钮的颜色 - - - - - 《显示全部标签》按钮的大小 - - - - - 皮肤主题 - - - - - 设置百分比 - - - - - - - - - 引发 ValueChanged 事件 - - - - - - 引发 ThemeChanged 事件 - - - - - - 指示鼠标位于哪个区域 - - - - - 控件Value值发生变化后引发 - - - - - 控件绘制MainLine前引发, 可以设置Cancel参数来取消默认的绘制 - - - - - 控件绘制Button前引发 - - - - - 引发 ValueChanged 事件 - - - - - 引发 BeforePaintMainLine 事件 - - - - - 引发 BeforePaintButton 事件 - - - - - 将Value值加一个LargeChange量 - - - - - 将Value值减一个LargeChange量 - - - - - 将Value值加一个SmallChange量 - - - - - 将Value值减一个SmallChange量 - - - - - 提供产生各种路径的静态方法,比如圆角路径、关闭按钮上的x路径、+号路径 - - - - - 圆角样式 - - - - - 无 - - - - - 所有 - - - - - 上 - - - - - 下 - - - - - 左 - - - - - 右 - - - - - SimpleObject指的是只有一种状态(不像普通按钮一样有三种状态),并且其上的元素 - 布局比较简单的Object - - - - - - - - - - - - - - - - - - - - DevExpress风格皮肤 - - - - - DevExpress风格皮肤 - - - - - 新风格皮肤 - - - - - 新风格皮肤 - - - - - 基础皮肤 - - - - - VS2013风格皮肤 - - - - - this theme is just for chrome one quarter style - - - - - for diamond ring style only - - - - - Location of cursor hot spot returnet in WM_NCHITTEST. - - - - - On the screen background or on a dividing line between windows - (same as HTNOWHERE, except that the DefWindowProc function produces a system beep to indicate an error). - - - - - In a window currently covered by another window in the same thread - (the message will be sent to underlying windows in the same thread until one of them returns a code that is not HTTRANSPARENT). - - - - - On the screen background or on a dividing line between windows. - - - - In a client area. - - - In a title bar. - - - In a window menu or in a Close button in a child window. - - - In a size box (same as HTSIZE). - - - In a menu. - - - In a horizontal scroll bar. - - - In the vertical scroll bar. - - - In a Minimize button. - - - In a Maximize button. - - - In the left border of a resizable window - (the user can click the mouse to resize the window horizontally). - - - - In the right border of a resizable window - (the user can click the mouse to resize the window horizontally). - - - - In the upper-horizontal border of a window. - - - In the upper-left corner of a window border. - - - In the upper-right corner of a window border. - - - In the lower-horizontal border of a resizable window - (the user can click the mouse to resize the window vertically). - - - In the lower-left corner of a border of a resizable window - (the user can click the mouse to resize the window diagonally). - - - In the lower-right corner of a border of a resizable window - (the user can click the mouse to resize the window diagonally). - - - In the border of a window that does not have a sizing border. - - - In a Close button. - - - In a Help button. - - - - Contains the new coordinates of a window that has been moved or resized, that is, it is the proposed new window coordinates. - - - - - Contains the coordinates of the window before it was moved or resized. - - - - - Contains the coordinates of the window's client area before the window was moved or resized. - - - - - Pointer to a WINDOWPOS structure that contains the size and position values specified in the operation that moved or resized the window. - - - - - - - - - - 是否在这个按钮上按下了鼠标未释放 - - - - - 是否可见 - - - - - - - - - - 画两次可以加深颜色 - - - - - 用于在click事件中传回数据 - - - - - 获取或设置是否将绘制完全限制在指定的区域内 - - - - - - - - - - - - - - - - - 线条图 - - - 作者: Kingthy - 日期: 2007-09-11 - MSN: Kingthy@gmail.com - 转载请注明原作者,当你有更新修改时如果方便的希望能发一份给我.谢谢 - - - - - - - - - - - 画值 - - 画布 - X轴数据 - - - - 走势图 - - - 作者: Kingthy - 日期: 2007-09-11 - MSN: Kingthy@gmail.com - 转载请注明原作者,当你有更新修改时如果方便的希望能发一份给我.谢谢 - - - - - - - - - - 初始化参数 - - - - - 返回或设置X轴间隔 - - - - - 标题 - - - - - 返回图片的宽度 - - - - - 返回或设置图片的高度 - - - - - X轴的间距 - - - - - Y轴的间距 - - - - - 标题的颜色 - - - - - 标题的字体 - - - - - 背景颜色 - - - - - X轴的颜色 - - - - - Y轴的颜色 - - - - - 返回X轴数据的最大值(供给Painter调用) - - - - - 返回图片数据 - - - - - 画布 - - - - - 作图器 - - - - - 释放内容资源 - - - - - 获取X轴中的最大值 - - - - - - - 获取所有X轴列中的最大值 - - - - - - - 初始化图片 - - X轴的数据 - - - - - 画一条走势图 - - - - - - 画多条走势图 - - - - - - 作图器的基础类 - - - 作者: Kingthy - 日期: 2007-09-11 - MSN: Kingthy@gmail.com - 转载请注明原作者,当你有更新修改时如果方便的希望能发一份给我.谢谢 - - - - - - - - - - - 返回此作图器的相关链走势图 - - - - - 获取某值在Y轴上的位置 - - 当前点的值 - 点坐标 - - - - 画XY轴线 - - 画布 - X轴的数据 - - - - 画标题 - - - - - - 画走势线 - - 画布 - X轴数据 - - - - 方块图 - - - 作者: Kingthy - 日期: 2007-09-11 - MSN: Kingthy@gmail.com - 转载请注明原作者,当你有更新修改时如果方便的希望能发一份给我.谢谢 - - - - - - - - - - - 画值 - - 画布 - X轴数据 - - - - 走势图的X轴数据 - - - 作者: Kingthy - 日期: 2007-09-11 - MSN: Kingthy@gmail.com - 转载请注明原作者,当你有更新修改时如果方便的希望能发一份给我.谢谢 - - - - - - - - - - - - - - - - - - 标题 - - - - - 值 - - - - - 标题的颜色 - - - - - 标题的字体 - - - - - 值的颜色 - - - - - 值的字体 - - - - - 绘制颜色 - - - - - 值是否可见 - - - - - 克隆自身 - - - - - - 定义X轴的数据集合 - - - 作者: Kingthy - 日期: 2007-09-11 - MSN: Kingthy@gmail.com - 转载请注明原作者,当你有更新修改时如果方便的希望能发一份给我.谢谢 - - - - - - - - - - - - - - - - 添加一批数据 - - 轴的标题 - - - - 添加一批数据 - - 轴的标题 - 轴的值 - - - - 重置轴的值 - - 轴的值 - - - - 克隆数据 - - - - - - Indicates the behavior of a key when a cell "on the edge" is being edited. - and the normal behavior of that key would exceed the edge. For example, - for a key that normally moves one column to the left, the "edge" would be - the left most column, since the normal action of the key cannot be taken - (since there are no more columns to the left). - - - - - 按键将被忽略 - - - - - 按键将导致单元格编辑环绕到相对边缘的单元格。 - - - - - 按键将Wrap,但该列将更改为相应的相邻列。这只对正常操作为ChangeRow的键有意义。 - - - - - 按键将Wrap,但该行将更改为相应的相邻行。这只对正常操作为ChangeColumn的键有意义. - - - - - 该键将导致当前编辑操作结束。 - - - - - Indicates the normal behaviour of a key when used during a cell edit - operation. - - - - - The key press will be ignored - - - - - The key press will end the current edit and begin an edit - operation on the next editable cell to the left. - - - - - The key press will end the current edit and begin an edit - operation on the next editable cell to the right. - - - - - The key press will end the current edit and begin an edit - operation on the row above. - - - - - The key press will end the current edit and begin an edit - operation on the row below - - - - - The key press will cancel the current edit - - - - - The key press will finish the current edit operation - - - - - Custom verb that can be used for specialized actions. - - - - - Custom verb that can be used for specialized actions. - - - - - Custom verb that can be used for specialized actions. - - - - - Custom verb that can be used for specialized actions. - - - - - Custom verb that can be used for specialized actions. - - - - - Custom verb that can be used for specialized actions. - - - - - Custom verb that can be used for specialized actions. - - - - - Custom verb that can be used for specialized actions. - - - - - Custom verb that can be used for specialized actions. - - - - - Custom verb that can be used for specialized actions. - - - - - Instances of this class handle key presses during a cell edit operation. - - - - - 设置给定键的行为 - - - - - - - - 处理按键操作 - - - - True if the key was completely handled. - - - - Gets or sets the ObjectListView on which the current key is being handled. - This cannot be null. - - - - - Gets the row of the cell that is currently being edited - - - - - Gets the index of the column of the cell that is being edited - - - - - Gets or sets the map that remembers the normal behaviour of keys - - - - - Gets or sets the map that remembers the desired behaviour of keys - on edge cases. - - - - - Setup the default key mapping - - - - - Handle the end edit command - - - - - Handle the cancel edit command - - - - - Placeholder that subclasses can override to handle any custom verbs - - - - - - - - Handle a change row command - - - - - - - Handle a change column command - - - - - - - Start editing the indicated cell if that cell is not already being edited - - The row to edit - The cell within that row to edit - - - - Gets the adjacent item to the given item in the given direction. - If that item is disabled, continue in that direction until an enabled item is found. - - The row whose neighbour is sought - The direction of the adjacentness - An OLVListView adjacent to the given item, or null if there are no more enabled items in that direction. - - - - Gets the adjacent item to the given item in the given direction, wrapping if needed. - - The row whose neighbour is sought - The direction of the adjacentness - An OLVListView adjacent to the given item, or null if there are no more items in that direction. - - - - Gets a collection of columns that are editable in the order they are shown to the user - - - - - These items allow combo boxes to remember a value and its description. - - - - - - - - - - - - - - - - - Returns a string that represents the current object. - - - A string that represents the current object. - - 2 - - - - This editor shows and auto completes values from the given listview column. - - - - - Create an AutoCompleteCellEditor - - - - - - - This combo box is specialised to allow editing of an enum. - - - - - - - - - - - This editor simply shows and edits integer values. - - - - - - - - - - Gets or sets the value shown by this editor - - - - - This editor simply shows and edits unsigned integer values. - - This class can't be made public because unsigned int is not a - CLS-compliant type. If you want to use, just copy the code to this class - into your project and use it from there. - - - - This editor simply shows and edits boolean values. - - - - - - - - - - This editor simply shows and edits boolean values using a checkbox - - - - - Gets or sets the value shown by this editor - - - - - Gets or sets how the checkbox will be aligned - - - - - This editor simply shows and edits floating point values. - - You can intercept the CellEditStarting event if you want - to change the characteristics of the editor. For example, by increasing - the number of decimal places. - - - - - - - - - Gets or sets the value shown by this editor - - - - - A delegate that creates an editor for the given value - - The model from which that value came - The column for which the editor is being created - A representative value of the type to be edited. This value may not be the exact - value for the column/model combination. It could be simply representative of - the appropriate type of value. - A control which can edit the given value - - - - An editor registry gives a way to decide what cell editor should be used to edit - the value of a cell. Programmers can register non-standard types and the control that - should be used to edit instances of that type. - - - All ObjectListViews share the same editor registry. - - - - - Create an EditorRegistry - - - - - Register that values of 'type' should be edited by instances of 'controlType'. - - The type of value to be edited - The type of the Control that will edit values of 'type' - - ObjectListView.EditorRegistry.Register(typeof(Color), typeof(MySpecialColorEditor)); - - - - - Register the given delegate so that it is called to create editors - for values of the given type - - The type of value to be edited - The delegate that will create a control that can edit values of 'type' - - ObjectListView.EditorRegistry.Register(typeof(Color), CreateColorEditor); - ... - public Control CreateColorEditor(Object model, OLVColumn column, Object value) - { - return new MySpecialColorEditor(); - } - - - - - Register a delegate that will be called to create an editor for values - that have not been handled. - - The delegate that will create a editor for all other types - - - - Register a delegate that will be given a chance to create a control - before any other option is considered. - - The delegate that will create a control - - - - Remove the registered handler for the given type - - Does nothing if the given type doesn't exist - The type whose registration is to be removed - - - - Create and return an editor that is appropriate for the given value. - Return null if no appropriate editor can be found. - - The model involved - The column to be edited - The value to be edited. This value may not be the exact - value for the column/model combination. It could be simply representative of - the appropriate type of value. - A Control that can edit the given type of values - - - - Create and return an editor that will edit values of the given type - - A enum type - - - - A DataListView is a ListView that can be bound to a datasource (which would normally be a DataTable or DataView). - - - This listview keeps itself in sync with its source datatable by listening for change events. - The DataListView will automatically create columns to show all of the data source's columns/properties, if there is not already - a column showing that property. This allows you to define one or two columns in the designer and then have the others generated automatically. - If you don't want any column to be auto generated, set to false. - These generated columns will be only the simplest view of the world, and would look more interesting with a few delegates installed. - This listview will also automatically generate missing aspect getters to fetch the values from the data view. - Changing data sources is possible, but error prone. Before changing data sources, the programmer is responsible for modifying/resetting - the column collection to be valid for the new data source. - Internally, a CurrencyManager controls keeping the data source in-sync with other users of the data source (as per normal .NET - behavior). This means that the model objects in the DataListView are DataRowView objects. If you write your own AspectGetters/Setters, - they will be given DataRowView objects. - - - - - Make a DataListView - - - - - - - - - - - Gets or sets whether or not columns will be automatically generated to show the - columns when the DataSource is set. - - This must be set before the DataSource is set. It has no effect afterwards. - - - - Get or set the DataSource that will be displayed in this list view. - - The DataSource should implement either , , - or . Some common examples are the following types of objects: - - - - - - - - When binding to a list container (i.e. one that implements the - interface, such as ) - you must also set the property in order - to identify which particular list you would like to display. You - may also set the property even when - DataSource refers to a list, since can - also be used to navigate relations between lists. - When a DataSource is set, the control will create OLVColumns to show any - data source columns that are not already shown. - If the DataSource is changed, you will have to remove any previously - created columns, since they will be configured for the previous DataSource. - . - - - - - Gets or sets the name of the list or table in the data source for which the DataListView is displaying data. - - If the data source is not a DataSet or DataViewManager, this property has no effect - - - - Gets or sets the DataSourceAdaptor that does the bulk of the work needed - for data binding. - - - Adaptors cannot be shared between controls. Each DataListView needs its own adapter. - - - - - Add the given collection of model objects to this control. - - A collection of model objects - This is a no-op for data lists, since the data - is controlled by the DataSource. Manipulate the data source - rather than this view of the data source. - - - - Insert the given collection of objects before the given position - - Where to insert the objects - The objects to be inserted - This is a no-op for data lists, since the data - is controlled by the DataSource. Manipulate the data source - rather than this view of the data source. - - - - Remove the given collection of model objects from this control. - - This is a no-op for data lists, since the data - is controlled by the DataSource. Manipulate the data source - rather than this view of the data source. - - - - Change the Unfreeze behaviour - - - - - Handles parent binding context changes - - Unused EventArgs. - - - - A DataTreeListView is a TreeListView that calculates its hierarchy based on - information in the data source. - - - Like a , a DataTreeListView sources all its information - from a combination of and . - can be a DataTable, DataSet, - or anything that implements . - - - To function properly, the DataTreeListView requires: - - the table to have a column which holds a unique for the row. The name of this column must be set in . - the table to have a column which holds id of the hierarchical parent of the row. The name of this column must be set in . - a value which identifies which rows are the roots of the tree (). - - The hierarchy structure is determined finding all the rows where the parent key is equal to . These rows - become the root objects of the hierarchy. - - Like a TreeListView, the hierarchy must not contain cycles. Bad things will happen if the data is cyclic. - - - - - Gets or sets whether or not columns will be automatically generated to show the - columns when the DataSource is set. - - This must be set before the DataSource is set. It has no effect afterwards. - - - - Get or set the DataSource that will be displayed in this list view. - - The DataSource should implement either , , - or . Some common examples are the following types of objects: - - - - - - - - When binding to a list container (i.e. one that implements the - interface, such as ) - you must also set the property in order - to identify which particular list you would like to display. You - may also set the property even when - DataSource refers to a list, since can - also be used to navigate relations between lists. - - - - - Gets or sets the name of the list or table in the data source for which the DataListView is displaying data. - - If the data source is not a DataSet or DataViewManager, this property has no effect - - - - Gets or sets the name of the property/column that uniquely identifies each row. - - - - The value contained by this column must be unique across all rows - in the data source. Odd and unpredictable things will happen if two - rows have the same id. - - Null cannot be a valid key value. - - - - - Gets or sets the name of the property/column that contains the key of - the parent of a row. - - - - The test condition for deciding if one row is the parent of another is functionally - equivilent to this: - - Object.Equals(candidateParentRow[this.KeyAspectName], row[this.ParentKeyAspectName]) - - - Unlike key value, parent keys can be null but a null parent key can only be used - to identify root objects. - - - - - Gets or sets the value that identifies a row as a root object. - When the ParentKey of a row equals the RootKeyValue, that row will - be treated as root of the TreeListView. - - - - The test condition for deciding a root object is functionally - equivilent to this: - - Object.Equals(candidateRow[this.ParentKeyAspectName], this.RootKeyValue) - - - The RootKeyValue can be null. Actually, it can be any value that can - be compared for equality against a basic type. - If this is set to the wrong value (i.e. to a value that no row - has in the parent id column), the list will be empty. - - - - - Gets or sets the value that identifies a row as a root object. - . The RootKeyValue can be of any type, - but the IDE cannot sensibly represent a value of any type, - so this is a typed wrapper around that property. - - - If you want the root value to be something other than a string, - you will have set it yourself. - - - - - Gets or sets whether or not the key columns (id and parent id) should - be shown to the user. - - This must be set before the DataSource is set. It has no effect - afterwards. - - - - Gets or sets the DataSourceAdaptor that does the bulk of the work needed - for data binding. - - - - - An IDragSource controls how drag out from the ObjectListView will behave - - - - - A drag operation is beginning. Return the data object that will be used - for data transfer. Return null to prevent the drag from starting. The data - object will normally include all the selected objects. - - - The returned object is later passed to the GetAllowedEffect() and EndDrag() - methods. - - What ObjectListView is being dragged from. - Which mouse button is down? - What item was directly dragged by the user? There may be more than just this - item selected. - The data object that will be used for data transfer. This will often be a subclass - of DataObject, but does not need to be. - - - - What operations are possible for this drag? This controls the icon shown during the drag - - The data object returned by StartDrag() - A combination of DragDropEffects flags - - - - The drag operation is complete. Do whatever is necessary to complete the action. - - The data object returned by StartDrag() - The value returned from GetAllowedEffects() - - - - A do-nothing implementation of IDragSource that can be safely subclassed. - - - - - See IDragSource documentation - - - - - - - - - See IDragSource documentation - - - - - - - See IDragSource documentation - - - - - - - A reasonable implementation of IDragSource that provides normal - drag source functionality. It creates a data object that supports - inter-application dragging of text and HTML representation of - the dragged rows. It can optionally force a refresh of all dragged - rows when the drag is complete. - - Subclasses can override GetDataObject() to add new - data formats to the data transfer object. - - - - Construct a SimpleDragSource - - - - - Construct a SimpleDragSource that refreshes the dragged rows when - the drag is complete - - - - - - Gets or sets whether the dragged rows should be refreshed when the - drag operation is complete. - - - - - Create a DataObject when the user does a left mouse drag operation. - See IDragSource for further information. - - - - - - - - - Which operations are allowed in the operation? By default, all operations are supported. - - - All opertions are supported - - - - The drag operation is finished. Refreshe the dragged rows if so configured. - - - - - - - Create a data object that will be used to as the data object - for the drag operation. - - - Subclasses can override this method add new formats to the data object. - - The ObjectListView that is the source of the drag - A data object for the drag - - - - Objects that implement this interface can acts as the receiver for drop - operation for an ObjectListView. - - - - - Gets or sets the ObjectListView that is the drop sink - - - - - Draw any feedback that is appropriate to the current drop state. - - - Any drawing is done over the top of the ListView. This operation should disturb - the Graphic as little as possible. Specifically, do not erase the area into which - you draw. - - A Graphic for drawing - The contents bounds of the ListView (not including any header) - - - - The user has released the drop over this control - - - Implementators should set args.Effect to the appropriate DragDropEffects. This value is returned - to the originator of the drag. - - - - - - A drag has entered this control. - - Implementators should set args.Effect to the appropriate DragDropEffects. - - - - - Change the cursor to reflect the current drag operation. - - - - - - The drag has left the bounds of this control - - - - - The drag is moving over this control. - - This is where any drop target should be calculated. - Implementators should set args.Effect to the appropriate DragDropEffects. - - - - - - Should the drag be allowed to continue? - - - - - - This is a do-nothing implementation of IDropSink that is a useful - base class for more sophisticated implementations. - - - - - Gets or sets the ObjectListView that is the drop sink - - - - - Draw any feedback that is appropriate to the current drop state. - - - Any drawing is done over the top of the ListView. This operation should disturb - the Graphic as little as possible. Specifically, do not erase the area into which - you draw. - - A Graphic for drawing - The contents bounds of the ListView (not including any header) - - - - The user has released the drop over this control - - - Implementators should set args.Effect to the appropriate DragDropEffects. This value is returned - to the originator of the drag. - - - - - - A drag has entered this control. - - Implementators should set args.Effect to the appropriate DragDropEffects. - - - - - The drag has left the bounds of this control - - - - - The drag is moving over this control. - - This is where any drop target should be calculated. - Implementators should set args.Effect to the appropriate DragDropEffects. - - - - - - Change the cursor to reflect the current drag operation. - - You only need to override this if you want non-standard cursors. - The standard cursors are supplied automatically. - - - - - Should the drag be allowed to continue? - - - You only need to override this if you want the user to be able - to end the drop in some non-standard way, e.g. dragging to a - certain point even without releasing the mouse, or going outside - the bounds of the application. - - - - - - This is called when the mouse leaves the drop region and after the - drop has completed. - - - - - The enum indicates which target has been found for a drop operation - - - - - No applicable target has been found - - - - - The list itself is the target of the drop - - - - - An item is the target - - - - - Between two items (or above the top item or below the bottom item) - can be the target. This is not actually ever a target, only a value indicate - that it is valid to drop between items - - - - - Above an item is the target - - - - - Below an item is the target - - - - - A subitem is the target of the drop - - - - - On the right of an item is the target (not currently used) - - - - - On the left of an item is the target (not currently used) - - - - - This class represents a simple implementation of a drop sink. - - - Actually, it should be called CleverDropSink -- it's far from simple and can do quite a lot in its own right. - - - - - Make a new drop sink - - - - - Get or set the locations where a drop is allowed to occur (OR-ed together) - - - - - Gets or sets whether this sink allows model objects to be dragged from other lists. Defaults to true. - - - - - Gets or sets whether the ObjectListView should scroll when the user drags - something near to the top or bottom rows. Defaults to true. - - AutoScroll does not scroll horizontally. - - - - Gets the billboard overlay that will be used to display feedback - messages during a drag operation. - - Set this to null to stop the feedback. - - - - Get or set whether a drop can occur between items of the list - - - - - Get or set whether a drop can occur on the listview itself - - - - - Get or set whether a drop can occur on items in the list - - - - - Get or set whether a drop can occur on a subitem in the list - - - - - Gets or sets whether the drop sink should draw feedback onto the given list - during the drag operation. Defaults to true. - - If this is false, you will have to give the user feedback in some - other fashion, like cursor changes - - - - Get or set the index of the item that is the target of the drop - - - - - Get the item that is the target of the drop - - - - - Get or set the location of the target of the drop - - - - - Get or set the index of the subitem that is the target of the drop - - - - - Get or set the color that will be used to provide drop feedback - - - - - Get whether the alt key was down during this drop event - - - - - Get whether any modifier key was down during this drop event - - - - - Get whether the control key was down during this drop event - - - - - Get whether the left mouse button was down during this drop event - - - - - Get whether the right mouse button was down during this drop event - - - - - Get whether the right mouse button was down during this drop event - - - - - Get whether the shift key was down during this drop event - - - - - Get or set the state of the keys during this drop event - - - - - Gets or sets whether the drop sink will automatically use cursors - based on the drop effect. By default, this is true. If this is - set to false, you must set the Cursor yourself. - - - - - Triggered when the sink needs to know if a drop can occur. - - - Handlers should set Effect to indicate what is possible. - Handlers can change any of the DropTarget* setttings to change - the target of the drop. - - - - - Triggered when the drop is made. - - - - - Triggered when the sink needs to know if a drop can occur - AND the source is an ObjectListView - - - Handlers should set Effect to indicate what is possible. - Handlers can change any of the DropTarget* setttings to change - the target of the drop. - - - - - Triggered when the drop is made. - AND the source is an ObjectListView - - - - - Cleanup the drop sink when the mouse has left the control or - the drag has finished. - - - - - Draw any feedback that is appropriate to the current drop state. - - - Any drawing is done over the top of the ListView. This operation should disturb - the Graphic as little as possible. Specifically, do not erase the area into which - you draw. - - A Graphic for drawing - The contents bounds of the ListView (not including any header) - - - - The user has released the drop over this control - - - - - - A drag has entered this control. - - Implementators should set args.Effect to the appropriate DragDropEffects. - - - - - Change the cursor to reflect the current drag operation. - - - - - - The drag is moving over this control. - - - - - - Trigger the Dropped events - - - - - - Trigger CanDrop - - - - - - Trigger Dropped - - - - - - Trigger ModelCanDrop - - - - - - Trigger ModelDropped - - - - - - Handle the timer tick event, which is sent when the listview should - scroll - - - - - When the mouse is at the given point, what should the target of the drop be? - - This method should update the DropTarget* members of the given arg block - - The mouse point, in client co-ordinates - - - - What sort of action is possible when the mouse is at the given point? - - - - - - - - - - Based solely on the state of the modifier keys, what drop operation should - be used? - - The drop operation that matches the state of the keys - - - - Should the listview be made to scroll when the mouse is at the given point? - - - - - - Update the state of our sink to reflect the information that - may have been written into the drop event args. - - - - - - Draw the feedback that shows that the background is the target - - - - - - - Draw the feedback that shows that an item (or a subitem) is the target - - - - - DropTargetItem and DropTargetSubItemIndex tells what is the target - - - - - Draw the feedback that shows the drop will occur before target - - - - - - - Draw the feedback that shows the drop will occur after target - - - - - - - Return a GraphicPath that is round corner rectangle. - - - - - - - - Calculate the target rectangle when the given item (and possible subitem) - is the target of the drop. - - - - - - - - Draw a "between items" line at the given co-ordinates - - - - - - - - - - This drop sink allows items within the same list to be rearranged, - as well as allowing items to be dropped from other lists. - - - - This class can only be used on plain ObjectListViews and FastObjectListViews. - The other flavours have no way to implement the insert operation that is required. - - - This class does not work with grouping. - - - This class works when the OLV is sorted, but it is up to the programmer - to decide what rearranging such lists "means". Example: if the control is sorting - students by academic grade, and the user drags a "Fail" grade student up amonst the "A+" - students, it is the responsibility of the programmer to makes the appropriate changes - to the model and redraw/rebuild the control so that the users action makes sense. - - - Users of this class should listen for the CanDrop event to decide - if models from another OLV can be moved to OLV under this sink. - - - - - - Create a RearrangingDropSink - - - - - Create a RearrangingDropSink - - - - - - Trigger OnModelCanDrop - - - - - - Trigger OnModelDropped - - - - - - Do the work of processing the dropped items - - - - - - When a drop sink needs to know if something can be dropped, or - to notify that a drop has occured, it uses an instance of this class. - - - - - Create a OlvDropEventArgs - - - - - Get the original drag-drop event args - - - - - Get the data object that is being dragged - - - - - Get the drop sink that originated this event - - - - - Get or set the index of the item that is the target of the drop - - - - - Get or set the location of the target of the drop - - - - - Get or set the index of the subitem that is the target of the drop - - - - - Get the item that is the target of the drop - - - - - Get or set the drag effect that should be used for this operation - - - - - Get or set if this event was handled. No further processing will be done for a handled event. - - - - - Get or set the feedback message for this operation - - - If this is not null, it will be displayed as a feedback message - during the drag. - - - - - Get the ObjectListView that is being dropped on - - - - - Get the location of the mouse (in target ListView co-ords) - - - - - Get the drop action indicated solely by the state of the modifier keys - - - - - These events are triggered when the drag source is an ObjectListView. - - - - - Create a ModelDropEventArgs - - - - - Gets the model objects that are being dragged. - - - - - Gets the ObjectListView that is the source of the dragged objects. - - - - - Get the model object that is being dropped upon. - - This is only value for TargetLocation == Item - - - - Refresh all the objects involved in the operation - - - - - A data transfer object that knows how to transform a list of model - objects into a text and HTML representation. - - - - - Create a data object from the selected objects in the given ObjectListView - - The source of the data object - - - - Create a data object which operates on the given model objects - in the given ObjectListView - - The source of the data object - The model objects to be put into the data object - - - - Gets or sets whether hidden columns will also be included in the text - and HTML representation. If this is false, only visible columns will - be included. - - - - - Gets or sets whether column headers will also be included in the text - and HTML representation. - - - - - Gets the ObjectListView that is being used as the source of the data - - - - - Gets the model objects that are to be placed in the data object - - - - - Put a text and HTML representation of our model objects - into the data object. - - - - - Create an exporter for the data contained in this object - - - - - - Make a HTML representation of our model objects - - - - - Convert the fragment of HTML into the Clipboards HTML format. - - The HTML format is found here http://msdn2.microsoft.com/en-us/library/aa767917.aspx - - The HTML to put onto the clipboard. It must be valid HTML! - A string that can be put onto the clipboard and will be recognized as HTML - - - - A FastDataListView virtualizes the display of data from a DataSource. It operates on - DataSets and DataTables in the same way as a DataListView, but does so much more efficiently. - - - - A FastDataListView still has to load all its data from the DataSource. If you have SQL statement - that returns 1 million rows, all 1 million rows will still need to read from the database. - However, once the rows are loaded, the FastDataListView will only build rows as they are displayed. - - - - - - - - - - - - 获取或设置在设置DataSource时是否自动生成列以显示列。 - - 必须在设置DataSource之前设置此设置。之后就没有效果了。 - - - - 获取或设置将在此列表视图中显示的VirtualListDataSource。 - - VirtualListDataSource应实现 , , - 或 . 以下是一些常见的对象类型 - - - - - - - - 绑定到列表容器时 (即,实现 接口, 比如 ) - 您还必须实现 属性,以便标识要显示的特定列表。您也可以设置 属性, - 即使当VirtualListDataSource引用列表时也是如此, 因为 还可以用于导航列表之间的关系. - - - - - Gets or sets the name of the list or table in the data source for which the DataListView is displaying data. - - If the data source is not a DataSet or DataViewManager, this property has no effect - - - - Gets or sets the DataSourceAdaptor that does the bulk of the work needed - for data binding. - - - - - Create the DataSourceAdapter that this control will use. - - A DataSourceAdapter configured for this list - Subclasses should override this to create their - own specialized adapters - - - - Change the Unfreeze behaviour - - - - - A FastObjectListView trades function for speed. - - - On my mid-range laptop, this view builds a list of 10,000 objects in 0.1 seconds, - as opposed to a normal ObjectListView which takes 10-15 seconds. Lists of up to 50,000 items should be - able to be handled with sub-second response times even on low end machines. - - A FastObjectListView is implemented as a virtual list with many of the virtual modes limits (e.g. no sorting) - fixed through coding. There are some functions that simply cannot be provided. Specifically, a FastObjectListView cannot: - - use Tile view - show groups on XP - - - - - - - Make a FastObjectListView - - - - - Gets the collection of objects that survive any filtering that may be in place. - - - - - Get/set the collection of objects that this list will show - - - - The contents of the control will be updated immediately after setting this property. - - This method preserves selection, if possible. Use SetObjects() if - you do not want to preserve the selection. Preserving selection is the slowest part of this - code and performance is O(n) where n is the number of selected rows. - This method is not thread safe. - - - - - Move the given collection of objects to the given index. - - This operation only makes sense on non-grouped ObjectListViews. - - - - - - 删除任何排序并恢复到模型对象的给定顺序 - - To be really honest, Unsort() doesn't work on FastObjectListViews since - the original ordering of model objects is lost when Sort() is called. So this method - effectively just turns off sorting. - - - - 为FastObjectListView提供数据源 - - - This class isn't intended to be used directly, but it is left as a public - class just in case someone wants to subclass it. - - - - - Create a FastObjectListDataSource - - - - - - Get n'th object - - - - - - - How many items are in the data source - - - - - - Get the index of the given model - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Remove the given collection of models from this source. - - - - - - - - - - - - Update/replace the nth object with the given object - - - - - - - Apply the given filters to this data source. One or both may be null. - - - - - - - Gets the full list of objects being used for this fast list. - This list is unfiltered. - - - - - Gets the list of objects from ObjectList which survive any installed filters. - - - - - Rebuild the map that remembers which model object is displayed at which line - - - - - Build our filtered list from our full list. - - - - - Concrete implementation of the ICluster interface. - - - - - Create a cluster - - The key for the cluster - - - - Return a string representation of this cluster - - - - - - Gets or sets how many items belong to this cluster - - - - - Gets or sets the label that will be shown to the user to represent - this cluster - - - - - Gets or sets the actual data object that all members of this cluster - have commonly returned. - - - - - Return an indication of the ordering between this object and the given one - - - - - - - This class provides a useful base implemention of a clustering - strategy where the clusters are grouped around the value of a given column. - - - - - This field is the text that will be shown to the user when a cluster - key is null. It is exposed so it can be localized. - - - - - This field is the text that will be shown to the user when a cluster - key is empty (i.e. a string of zero length). It is exposed so it can be localized. - - - - - Gets or sets the format that will be used by default for clusters that only - contain 1 item. The format string must accept two placeholders: - - {0} is the cluster key converted to a string - - {1} is the number of items in the cluster (always 1 in this case) - - - - - Gets or sets the format that will be used by default for clusters that - contain 0 or two or more items. The format string must accept two placeholders: - - {0} is the cluster key converted to a string - - {1} is the number of items in the cluster - - - - - Create a clustering strategy - - - - - Gets or sets the column upon which this strategy is operating - - - - - Gets or sets the format that will be used when the cluster - contains only 1 item. The format string must accept two placeholders: - - {0} is the cluster key converted to a string - - {1} is the number of items in the cluster (always 1 in this case) - - If this is not set, the value from - ClusteringStrategy.DefaultDisplayLabelFormatSingular will be used - - - - Gets or sets the format that will be used when the cluster - contains 0 or two or more items. The format string must accept two placeholders: - - {0} is the cluster key converted to a string - - {1} is the number of items in the cluster - - If this is not set, the value from - ClusteringStrategy.DefaultDisplayLabelFormatPlural will be used - - - - Get the cluster key by which the given model will be partitioned by this strategy - - - - - - - Create a cluster to hold the given cluster key - - - - - - - Gets the display label that the given cluster should use - - - - - - - Create a filter that will include only model objects that - match one or more of the given values. - - - - - - - Create a label that combines the string representation of the cluster - key with a format string that holds an "X [N items in cluster]" type layout. - - - - - - - - This class calculates clusters from the groups that the column uses. - - - - This is the default strategy for all non-date, filterable columns. - - - This class does not strictly mimic the groups created by the given column. - In particular, if the programmer changes the default grouping technique - by listening for grouping events, this class will not mimic that behaviour. - - - - - - Get the cluster key by which the given model will be partitioned by this strategy - - - - - - - Gets the display label that the given cluster should use - - - - - - - This enum is used to indicate various portions of a datetime - - - - - Year - - - - - Month - - - - - Day of the month - - - - - Hour - - - - - Minute - - - - - Second - - - - - This class implements a strategy where the model objects are clustered - according to some portion of the datetime value in the configured column. - - To create a strategy that grouped people who were born in - the same month, you would create a strategy that extracted just - the month, and formatted it to show just the month's name. Like this: - - - someColumn.ClusteringStrategy = new DateTimeClusteringStrategy(DateTimePortion.Month, "MMMM"); - - - - - Create a strategy that clusters by month/year - - - - - Create a strategy that clusters around the given parts - - - - - - - Gets or sets the format string will will be used to create a user-presentable - version of the cluster key. - - The format should use the date/time format strings, as documented - in the Windows SDK. Both standard formats and custom format will work. - "D" - long date pattern - "MMMM, yyyy" - "January, 1999" - - - - Gets or sets the parts of the DateTime that will be extracted when - determining the clustering key for an object. - - - - - Get the cluster key by which the given model will be partitioned by this strategy - - - - - - - Gets the display label that the given cluster should use - - - - - - - Convert the given date into a user presentable string - - - - - - - Instances of this class know how to build a Filter menu. - It is responsible for clustering the values in the target column, - build a menu that shows those clusters, and then constructing - a filter that will enact the users choices. - - - Almost all of the methods in this class are declared as "virtual protected" - so that subclasses can provide alternative behaviours. - - - - - Gets or sets the string that labels the Apply button. - Exposed so it can be localized. - - - - - Gets or sets the string that labels the Clear All menu item. - Exposed so it can be localized. - - - - - Gets or sets the string that labels the Filtering menu as a whole.. - Exposed so it can be localized. - - - - - Gets or sets the string that represents Select All values. - If this is set to null or empty, no Select All option will be included. - Exposed so it can be localized. - - - - - Gets or sets the image that will be placed next to the Clear Filtering menu item - - - - - Gets or sets the image that will be placed next to all "Apply" menu items on the filtering menu - - - - - Gets or sets whether null should be considered as a valid data value. - If this is true (the default), then a cluster will null as a key will be allow. - If this is false, object that return a cluster key of null will ignored. - - - - - Gets or sets the maximum number of objects that the clustering strategy - will consider. This should be large enough to collect all unique clusters, - but small enough to finish in a reasonable time. - - The default value is 10,000. This should be perfectly - acceptable for almost all lists. - - - - Create a Filter menu on the given tool tip for the given column in the given ObjectListView. - - This is the main entry point into this class. - - - - The strip that should be shown to the user - - - - Create a collection of clusters that should be presented to the user - - - - - - - - - Order the given list of clusters in the manner in which they should be presented to the user. - - - - - - - Do the work of making a menu that shows the clusters to the users - - - - - - - - Wrap a protected section around the real HandleItemChecked method, so that if - that method tries to change a "checkedness" of an item, we don't get a recursive - stack error. Effectively, this ensure that HandleItemChecked is only called - in response to a user action. - - - - - - - Handle a user-generated ItemCheck event - - - - - - - Handle any checking/unchecking of the Select All option, and keep - its checkedness in sync with everything else that is checked. - - - - - - - - Clear all the filters that are applied to the given column - - The column from which filters are to be removed - - - - Apply the selected values from the given list as a filter on the given column - - A list in which the checked items should be used as filters - The column for which a filter should be generated - - - - Interface for model-by-model filtering - - - - - Should the given model be included when this filter is installed - - The model object to consider - Returns true if the model will be included by the filter - - - - Interface for whole list filtering - - - - - Return a subset of the given list of model objects as the new - contents of the ObjectListView - - The collection of model objects that the list will possibly display - The filtered collection that holds the model objects that will be displayed. - - - - Base class for model-by-model filters - - - - - Should the given model be included when this filter is installed - - The model object to consider - Returns true if the model will be included by the filter - - - - This filter calls a given Predicate to decide if a model object should be included - - - - - Create a filter based on the given predicate - - The function that will filter objects - - - - Gets or sets the predicate used to filter model objects - - - - - Should the given model object be included? - - - - - - - A CompositeFilter joins several other filters together. - If there are no filters, all model objects are included - - - - - Create an empty filter - - - - - Create a composite filter from the given list of filters - - A list of filters - - - - Gets or sets the filters used by this composite - - - - - Get the sub filters that are text match filters - - - - - Decide whether or not the given model should be included by the filter - - - True if the object is included by the filter - - - - Decide whether or not the given model should be included by the filter - - Filters is guaranteed to be non-empty when this method is called - The model object under consideration - True if the object is included by the filter - - - - A CompositeAllFilter joins several other filters together. - A model object must satisfy all filters to be included. - If there are no filters, all model objects are included - - - - - Create a filter - - - - - - Decide whether or not the given model should be included by the filter - - Filters is guaranteed to be non-empty when this method is called - The model object under consideration - True if the object is included by the filter - - - - A CompositeAllFilter joins several other filters together. - A model object must only satisfy one of the filters to be included. - If there are no filters, all model objects are included - - - - - Create a filter from the given filters - - - - - - Decide whether or not the given model should be included by the filter - - Filters is guaranteed to be non-empty when this method is called - The model object under consideration - True if the object is included by the filter - - - - Instances of this class extract a value from the model object - and compare that value to a list of fixed values. The model - object is included if the extracted value is in the list - - If there is no delegate installed or there are - no values to match, no model objects will be matched - - - - Create a filter that will use the given delegate to extract values - - - - - - Create a filter that will extract values using the given delegate - and compare them to the values in the given list. - - - - - - - Gets or sets the delegate that will be used to extract values - from model objects - - - - - Gets or sets the list of values that the value extracted from - the model object must match in order to be included. - - - - - Should the given model object be included? - - - - - - - Decides if the given property is a match for the values in the PossibleValues collection - - - - - - - Instances of this class match a property of a model objects against - a list of bit flags. The property should be an xor-ed collection - of bits flags. - - Both the property compared and the list of possible values - must be convertible to ulongs. - - - - Create an instance - - - - - - - Gets or sets the collection of values that will be matched. - These must be ulongs (or convertible to ulongs). - - - - - Decides if the given property is a match for the values in the PossibleValues collection - - - - - - - Base class for whole list filters - - - - - Return a subset of the given list of model objects as the new - contents of the ObjectListView - - The collection of model objects that the list will possibly display - The filtered collection that holds the model objects that will be displayed. - - - - Instance of this class implement delegate based whole list filtering - - - - - A delegate that filters on a whole list - - - - - - - Create a ListFilter - - - - - - Gets or sets the delegate that will filter the list - - - - - Do the actual work of filtering - - - - - - - Filter the list so only the last N entries are displayed - - - - - Create a no-op tail filter - - - - - Create a filter that includes on the last N model objects - - - - - - Gets or sets the number of model objects that will be - returned from the tail of the list - - - - - Return the last N subset of the model objects - - - - - - - Instances of this class cluster model objects on the basis of a - property that holds an xor-ed collection of bit flags. - - - - - Create a clustering strategy that operates on the flags of the given enum - - - - - - Create a clustering strategy around the given collections of flags and their display labels. - There must be the same number of elements in both collections. - - The list of flags. - - - - - Gets the value that will be xor-ed to test for the presence of a particular value. - - - - - Gets the labels that will be used when the corresponding Value is XOR present in the data. - - - - - Get the cluster key by which the given model will be partitioned by this strategy - - - - - - - Gets the display label that the given cluster should use - - - - - - - Create a filter that will include only model objects that - match one or more of the given values. - - - - - - - A cluster is a like collection of objects that can be usefully filtered - as whole using the filtering UI provided by the ObjectListView. - - - - - Gets or sets how many items belong to this cluster - - - - - Gets or sets the label that will be shown to the user to represent - this cluster - - - - - Gets or sets the actual data object that all members of this cluster - have commonly returned. - - - - - Implementation of this interface control the selecting of cluster keys - and how those clusters will be presented to the user - - - - - Gets or sets the column upon which this strategy will operate - - - - - Get the cluster key by which the given model will be partitioned by this strategy - - If the returned value is an IEnumerable, the given model is considered - to belong to multiple clusters - - - - - - Create a cluster to hold the given cluster key - - - - - - - Gets the display label that the given cluster should use - - - - - - - Create a filter that will include only model objects that - match one or more of the given values. - - - - - - - Instances of this class include only those rows of the listview - that match one or more given strings. - - This class can match strings by prefix, regex, or simple containment. - There are factory methods for each of these matching strategies. - - - - Create a text filter that will include rows where any cell matches - any of the given regex expressions. - - - - - Any string that is not a valid regex expression will be ignored. - - - - Create a text filter that includes rows where any cell begins with one of the given strings - - - - - - - - Create a text filter that includes rows where any cell contains any of the given strings. - - - - - - - - Create a TextFilter - - - - - - Create a TextFilter that finds the given string - - - - - - - Create a TextFilter that finds the given string using the given comparison - - - - - - - - Gets or sets which columns will be used for the comparisons? If this is null, all columns will be used - - - - - Gets or sets additional columns which will be used in the comparison. These will be used - in addition to either the Columns property or to all columns taken from the control. - - - - - Gets or sets the collection of strings that will be used for - contains matching. Setting this replaces all previous texts - of any kind. - - - - - Gets whether or not this filter has any search criteria - - - - - Gets or set the ObjectListView upon which this filter will work - - - You cannot really rebase a filter after it is created, so do not change this value. - It is included so that it can be set in an object initializer. - - - - - Gets or sets the collection of strings that will be used for - prefix matching. Setting this replaces all previous texts - of any kind. - - - - - Gets or sets the options that will be used when compiling the regular expression. - - - This is only used when doing Regex matching (obviously). - If this is not set specifically, the appropriate options are chosen to match the - StringComparison setting (culture invariant, case sensitive). - - - - - Gets or sets the collection of strings that will be used for - regex pattern matching. Setting this replaces all previous texts - of any kind. - - - - - Gets or sets how the filter will match text - - - - - Loop over the columns that are being considering by the filter - - - - - - Do the actual work of filtering - - - - - - - Find all the ways in which this filter matches the given string. - - This is used by the renderer to decide which bits of - the string should be highlighted - - A list of character ranges indicating the matched substrings - - - - Is the given column one of the columns being used by this filter? - - - - - - - Base class for the various types of string matching that TextMatchFilter provides - - - - - Gets how the filter will match text - - - - - Gets the text filter to which this component belongs - - - - - Gets or sets the text that will be matched - - - - - Find all the ways in which this filter matches the given string. - - - - This is used by the renderer to decide which bits of - the string should be highlighted. - - this.Text will not be null or empty when this is called. - - The text of the cell we want to search - A list of character ranges indicating the matched substrings - - - - Does the given text match the filter - - - this.Text will not be null or empty when this is called. - - The text of the cell we want to search - Return true if the given cellText matches our strategy - - - - This component provides text contains matching strategy. - - - - - Create a text contains strategy - - - - - - - Does the given text match the filter - - - this.Text will not be null or empty when this is called. - - The text of the cell we want to search - Return true if the given cellText matches our strategy - - - - Find all the ways in which this filter matches the given string. - - - - This is used by the renderer to decide which bits of - the string should be highlighted. - - this.Text will not be null or empty when this is called. - - The text of the cell we want to search - A list of character ranges indicating the matched substrings - - - - This component provides text begins with matching strategy. - - - - - Create a text begins strategy - - - - - - - Does the given text match the filter - - - this.Text will not be null or empty when this is called. - - The text of the cell we want to search - Return true if the given cellText matches our strategy - - - - Find all the ways in which this filter matches the given string. - - - - This is used by the renderer to decide which bits of - the string should be highlighted. - - this.Text will not be null or empty when this is called. - - The text of the cell we want to search - A list of character ranges indicating the matched substrings - - - - This component provides regex matching strategy. - - - - - Creates a regex strategy - - - - - - - Gets or sets the options that will be used when compiling the regular expression. - - - - - Gets or sets a compilex regular expression, based on our current Text and RegexOptions. - - - If Text fails to compile as a regular expression, this will return a Regex object - that will match all strings. - - - - - Gets whether or not our current regular expression is a valid regex - - - - - Does the given text match the filter - - - this.Text will not be null or empty when this is called. - - The text of the cell we want to search - Return true if the given cellText matches our strategy - - - - Find all the ways in which this filter matches the given string. - - - - This is used by the renderer to decide which bits of - the string should be highlighted. - - this.Text will not be null or empty when this is called. - - The text of the cell we want to search - A list of character ranges indicating the matched substrings - - - - This attribute is used to mark a property of a model - class that should be noticed by Generator class. - - - All the attributes of this class match their equivilent properties on OLVColumn. - - - - - Create a new OLVColumnAttribute - - - - - Create a new OLVColumnAttribute with the given title - - The title of the column - - - - - - - - - - - - - - - - - - - - - - - - - - - - - An array of IComparables that mark the cutoff points for values when - grouping on this column. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Properties marked with [OLVChildren] will be used as the children source in a TreeListView. - - - - - Properties marked with [OLVIgnore] will not have columns generated for them. - - - - - ColumnComparer is the workhorse for all comparison between two values of a particular column. - If the column has a specific comparer, use that to compare the values. Otherwise, do - a case insensitive string compare of the string representations of the values. - - This class inherits from both IComparer and its generic counterpart - so that it can be used on untyped and typed collections. - This is used by normal (non-virtual) ObjectListViews. Virtual lists use - ModelObjectComparer - - - - - Gets or sets the method that will be used to compare two strings. - The default is to compare on the current culture, case-insensitive - - - - - Create a ColumnComparer that will order the rows in a list view according - to the values in a given column - - The column whose values will be compared - The ordering for column values - - - - Create a ColumnComparer that will order the rows in a list view according - to the values in a given column, and by a secondary column if the primary - column is equal. - - The column whose values will be compared - The ordering for column values - The column whose values will be compared for secondary sorting - The ordering for secondary column values - - - - Compare two rows - - row1 - row2 - An ordering indication: -1, 0, 1 - - - - Compare two rows - - row1 - row2 - An ordering indication: -1, 0, 1 - - - - Compare the actual values to be used for sorting - - The aspect extracted from the first row - The aspect extracted from the second row - An ordering indication: -1, 0, 1 - - - - This comparer sort list view groups. OLVGroups have a "SortValue" property, - which is used if present. Otherwise, the titles of the groups will be compared. - - - - - Create a group comparer - - The ordering for column values - - - - Compare the two groups. OLVGroups have a "SortValue" property, - which is used if present. Otherwise, the titles of the groups will be compared. - - group1 - group2 - An ordering indication: -1, 0, 1 - - - - This comparer can be used to sort a collection of model objects by a given column - - - This is used by virtual ObjectListViews. Non-virtual lists use - ColumnComparer - - - - - Gets or sets the method that will be used to compare two strings. - The default is to compare on the current culture, case-insensitive - - - - - Create a model object comparer - - - - - - - Create a model object comparer with a secondary sorting column - - - - - - - - - Compare the two model objects - - - - - - - - Compare the actual values - - - - - - - - A helper class that translates DataSource events for an ObjectListView - - - - - Make a DataSourceAdapter - - - - - Finalize this object - - - - - Release all the resources used by this instance - - - - - Release all the resources used by this instance - - - - - Gets or sets whether or not columns will be automatically generated to show the - columns when the DataSource is set. - - This must be set before the DataSource is set. It has no effect afterwards. - - - - Get or set the DataSource that will be displayed in this list view. - - - - - Gets or sets the name of the list or table in the data source for which the DataListView is displaying data. - - If the data source is not a DataSet or DataViewManager, this property has no effect - - - - Gets the ObjectListView upon which this adaptor will operate - - - - - Gets or sets the currency manager which is handling our binding context - - - - - - - - - - - - - - - - - - - - - - - - - - - Our data source has changed. Figure out how to handle the new source - - - - - Our data source has changed. Figure out how to handle the new source - - - - - The data source for this control has changed. Reconfigure the control for the new source - - - - - Take the contents of the currently bound list and put them into the control - - - - - Create columns for the listview based on what properties are available in the data source - - - This method will create columns if there is not already a column displaying that property. - - - - - Decide if a new column should be added to the control to display - the given property - - - - - - - Configure the given column to show the given property. - The title and aspect name of the column are already filled in. - - - - - - - Generate aspect getters and putters for any columns that are missing them (and for which we have - enough information to actually generate a getter) - - - - - CurrencyManager ListChanged event handler. - Deals with fine-grained changes to list items. - - - It's actually difficult to deal with these changes in a fine-grained manner. - If our listview is grouped, then any change may make a new group appear or - an old group disappear. It is rarely enough to simply update the affected row. - - - - - - - Handle PropertyDescriptor* events - - - - - - Handle ItemMoved event - - - - - - Handle the ItemDeleted event - - - - - - Handle an ItemAdded event. - - - - - - Handle the Reset event - - - - - - Handle ItemChanged event. This is triggered when a single item - has changed, so just refresh that one item. - - - Even in this simple case, we should probably rebuild the list. - For example, the change could put the item into its own new group. - - - - The CurrencyManager calls this if the data source looks - different. We just reload everything. - - - - - CHECK: Do we need this if we are handle ListChanged metadata events? - - - - - Called by the CurrencyManager when the currently selected item - changes. We update the ListView selection so that we stay in sync - with any other controls bound to the same source. - - - - - - - Change the control's position (which is it's currently selected row) - to the nth row in the dataset - - The index of the row to be selected - - - - Handle the selection changing in our ListView. - We need to tell our currency manager about the new position. - - - - - - - Handle the frozenness of our ListView changing. - - - - - - - Handle a change to the BindingContext of our ListView. - - - - - - - These delegates are used to extract an aspect from a row object - - - - - These delegates are used to put a changed value back into a model object - - - - - These delegates can be used to convert an aspect value to a display string, - instead of using the default ToString() - - - - - These delegates are used to get the tooltip for a cell - - - - - These delegates are used to the state of the checkbox for a row object. - - - For reasons known only to someone in Microsoft, we can only set - a boolean on the ListViewItem to indicate it's "checked-ness", but when - we receive update events, we have to use a tristate CheckState. So we can - be told about an indeterminate state, but we can't set it ourselves. - - As of version 2.0, we can now return indeterminate state. - - - - - These delegates are used to get the state of the checkbox for a row object. - - - - - - - These delegates are used to put a changed check state back into a model object - - - - - These delegates are used to put a changed check state back into a model object - - - - - - - - These delegates are used to get the renderer for a particular cell - - - - - The callbacks for RightColumnClick events - - - - - This delegate will be used to own draw header column. - - - - - This delegate is called when a group has been created but not yet made - into a real ListViewGroup. The user can take this opportunity to fill - in lots of other details about the group. - - - - - These delegates are used to retrieve the object that is the key of the group to which the given row belongs. - - - - - These delegates are used to convert a group key into a title for the group - - - - - These delegates are used to get the tooltip for a column header - - - - - These delegates are used to fetch the image selector that should be used - to choose an image for this column. - - - - - These delegates are used to draw a cell - - - - - These delegates are used to fetch a row object for virtual lists - - - - - These delegates are used to format a listviewitem before it is added to the control. - - - - - These delegates can be used to return the array of texts that should be searched for text filtering - - - - - These delegates are used to sort the listview in some custom fashion - - - - - These delegates are used to order two strings. - x cannot be null. y can be null. - - - - - An ObjectListView is a much easier to use, and much more powerful, version of the ListView. - - - - An ObjectListView automatically populates a ListView control with information taken - from a given collection of objects. It can do this because each column is configured - to know which bit of the model object (the "aspect") it should be displaying. Columns similarly - understand how to sort the list based on their aspect, and how to construct groups - using their aspect. - - - Aspects are extracted by giving the name of a method to be called or a - property to be fetched. These names can be simple names or they can be dotted - to chain property access e.g. "Owner.Address.Postcode". - Aspects can also be extracted by installing a delegate. - - - An ObjectListView can show a "this list is empty" message when there is nothing to show in the list, - so that the user knows the control is supposed to be empty. - - - Right clicking on a column header should present a menu which can contain: - commands (sort, group, ungroup); filtering; and column selection. Whether these - parts of the menu appear is controlled by ShowCommandMenuOnRightClick, - ShowFilterMenuOnRightClick and SelectColumnsOnRightClick respectively. - - - The groups created by an ObjectListView can be configured to include other formatting - information, including a group icon, subtitle and task button. Using some undocumented - interfaces, these groups can even on virtual lists. - - - ObjectListView supports dragging rows to other places, including other application. - Special support is provide for drops from other ObjectListViews in the same application. - In many cases, an ObjectListView becomes a full drag source by setting to - true. Similarly, to accept drops, it is usually enough to set to true, - and then handle the and events (or the and - events, if you only want to handle drops from other ObjectListViews in your application). - - - For these classes to build correctly, the project must have references to these assemblies: - - - System - System.Data - System.Design - System.Drawing - System.Windows.Forms (obviously) - - - - - - How does a user indicate that they want to edit cells? - - - - - 列表将不支持编辑(同时F2按键无效) - - - - - 单击 单元格 将编辑值. - 选择该行,就像正常选择行一样。用户必须按F2键才能编辑主列。 - - - - - 双击子项或主列将编辑该单元格。 - F2键将编辑主列。 - - - - - 按F2键是编辑单元格的唯一方法。一旦主列被编辑, - 行中的其他单元格可以通过按Tab键进行编辑。 - - - - - 只需单击任意单元格即可编辑值,即使是主列也是如此。 - - - - - 这些值指定向用户显示列选择的方式 - - - - - 不会显示任何列选择 - - - - - 这些列将显示在主菜单中 - - - - - 这些列将显示在子菜单中 - - - - - 将显示一个模式对话框,允许用户选择列 - - - - - Triggered after a ObjectListView has been searched by the user typing into the list - - - - - Triggered after a ObjectListView has been sorted - - - - - Triggered before a ObjectListView is searched by the user typing into the list - - - Set Cancelled to true to prevent the searching from taking place. - Changing StringToFind or StartSearchFrom will change the subsequent search. - - - - - Triggered before a ObjectListView is sorted - - - Set Cancelled to true to prevent the sort from taking place. - Changing ColumnToSort or SortOrder will change the subsequent sort. - - - - - Triggered after a ObjectListView has created groups - - - - - Triggered before a ObjectListView begins to create groups - - - Set Groups to prevent the default group creation process - - - - - Triggered just before a ObjectListView creates groups - - - You can make changes to the groups, which have been created, before those - groups are created within the listview. - - - - - Triggered when a button in a cell is left clicked. - - - - - This event is triggered when the user moves a drag over an ObjectListView that - has a SimpleDropSink installed as the drop handler. - - - Handlers for this event should set the Effect argument and optionally the - InfoMsg property. They can also change any of the DropTarget* setttings to change - the target of the drop. - - - - - Triggered when a cell has finished being edited. - - - - - Triggered when a cell is about to finish being edited. - - If Cancel is already true, the user is cancelling the edit operation. - Set Cancel to true to prevent the value from the cell being written into the model. - You cannot prevent the editing from finishing within this event -- you need - the CellEditValidating event for that. - - - - Triggered when a cell is about to be edited. - - Set Cancel to true to prevent the cell being edited. - You can change the the Control to be something completely different. - - - - Triggered when a cell editor needs to be validated - - - If this event is cancelled, focus will remain on the cell editor. - - - - - Triggered when a cell is left clicked. - - - - - Triggered when the mouse is above a cell. - - - - - Triggered when a cell is right clicked. - - - - - This event is triggered when a cell needs a tool tip. - - - - - This event is triggered when a checkbox is checked/unchecked on a subitem - - - - - Triggered when a column header is right clicked. - - - - - This event is triggered when the user releases a drag over an ObjectListView that - has a SimpleDropSink installed as the drop handler. - - - - - This event is triggered when the control needs to filter its collection of objects. - - - - - This event is triggered when a cell needs to be formatted. - - - - - This event is triggered when the frozeness of the control changes. - - - - - This event is triggered when a row needs to be formatted. - - - - - This event is triggered when a group is about to collapse or expand. - This can be cancelled to prevent the expansion. - - - - - This event is triggered when a group changes state. - - - - - This event is triggered when a header checkbox is changing value - - - - - This event is triggered when a header needs a tool tip. - - - - - Triggered when the "hot" item changes - - - - - Triggered when a hyperlink cell is clicked. - - - - - Triggered when the task text of a group is clicked. - - - - - Is the value in the given cell a hyperlink. - - - - - Some new objects are about to be added to an ObjectListView. - - - - - The contents of the ObjectListView has changed. - - - - - The contents of the ObjectListView is about to change via a SetObjects call - - - Set Cancelled to true to prevent the contents of the list changing. This does not work with virtual lists. - - - - - Some objects are about to be removed from an ObjectListView. - - - - - This event is triggered when the user moves a drag over an ObjectListView that - has a SimpleDropSink installed as the drop handler, and when the source control - for the drag was an ObjectListView. - - - Handlers for this event should set the Effect argument and optionally the - InfoMsg property. They can also change any of the DropTarget* setttings to change - the target of the drop. - - - - - This event is triggered when the user releases a drag over an ObjectListView that - has a SimpleDropSink installed as the drop handler and when the source control - for the drag was an ObjectListView. - - - - - This event is triggered once per user action that changes the selection state - of one or more rows. - - - - - This event is triggered when the contents of the ObjectListView has scrolled. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Tell the world when a cell is about to be edited. - - - - - Tell the world when a cell is about to finish being edited. - - - - - Tell the world when a cell is about to finish being edited. - - - - - Tell the world when a cell has finished being edited. - - - - - 创建一个 ObjectListView - - - - - Dispose of any resources this instance has been using - - - - - - 获取鼠标左键是否在此时按下。 - - - - - 获取该程序是否在Vista或更高版本上运行 - - - - - 获取该程序是否在Win7或更高版本上运行 - - - - - Gets or sets how what smoothing mode will be applied to graphic operations. - - - - - Gets or sets how should text be renderered. - - - - - 获取或设置当组Key为Null时将用于标题组的字符串。将其公开以使其可以本地化。 - - - - - Convert the given enumerable into an ArrayList as efficiently as possible - - The source collection - If true, this method will always create a new - collection. - An ArrayList with the same contents as the given collection. - - When we move to .NET 3.5, we can use LINQ and not need this method. - - - - - Return the count of items in the given enumerable - - - - When we move to .NET 3.5, we can use LINQ and not need this method. - - - - Return whether or not the given enumerable is empty. A string is regarded as - an empty collection. - - - True if the given collection is null or empty - - When we move to .NET 3.5, we can use LINQ and not need this method. - - - - - Gets or sets whether all ObjectListViews will silently ignore missing aspect errors. - - - - By default, if an ObjectListView is asked to display an aspect - (i.e. a field/property/method) - that does not exist from a model, it displays an error message in that cell, since that - condition is normally a programming error. There are some use cases where - this is not an error -- in those cases, set this to true and ObjectListView will - simply display an empty cell. - - Be warned: if you set this to true, it can be very difficult to track down - typing mistakes or name changes in AspectNames. - - - - - Gets or sets whether the control will draw a rectangle in each cell showing the cell padding. - - - - This can help with debugging display problems from cell padding. - - As with all cell padding, this setting only takes effect when the control is owner drawn. - - - - - Gets the style that will be used by default to format disabled rows - - - - - Gets the style that will be used by default to format hot rows - - - - - Gets or sets an model filter that is combined with any column filtering that the end-user specifies. - - This is different from the ModelFilter property, since setting that will replace - any column filtering, whereas setting this will combine this filter with the column filtering - - - - Get or set all the columns that this control knows about. - Only those columns where IsVisible is true will be seen by the user. - - - - If you want to add new columns programmatically, add them to - AllColumns and then call RebuildColumns(). Normally, you do not have to - deal with this property directly. Just use the IDE. - - If you do add or remove columns from the AllColumns collection, - you have to call RebuildColumns() to make those changes take effect. - - - - - 获取或设置每隔一行的背景色 - - - - - 获取已设置的交替行背景色或默认颜色 - - - - - 此属性强制ObjectListView始终按给定列对项进行分组。 - - - - - 如果AlwaysGroupByColumn不为空,则此属性将用于确定如何对这些组进行排序。 - 如果此属性的值为SortOrder.None,则排序顺序将根据用户上次单击的标题切换。 - - - - - Give access to the image list that is actually being used by the control - - - Normally, it is preferable to use SmallImageList. Only use this property - if you know exactly what you are doing. - - - - - 获取或设置编辑单元格的方式 - - Columns can also be marked as editable. - - - - 编辑单元格时,是否应该使用整个单元格(减去复选框或图像使用的任何空间)? - 默认值为 true. - - - This is always treated as true when the control is NOT owner drawn. - - When this is false and the control is owner drawn, - ObjectListView will try to calculate the width of the cell's - actual contents, and then size the editing control to be just the right width. If this is true, - the whole width of the cell will be used, regardless of the cell's contents. - - Each column can have a different value for property. This value from the control is only - used when a column is not specified one way or another. - Regardless of this setting, developers can specify the exact size of the editing control - by listening for the CellEditStarting event. - - - - - Gets or sets the engine that will handle key presses during a cell edit operation. - Settings this to null will reset it to default value. - - - - - 获取当前用于编辑单元格的控件。 - - This will obviously be null if no cell is being edited. - - - - 获取或设置编辑控件左边缘或右边缘的单元格时Tab键的行为。 - 如果为False(默认值),则按Tab键将换行到同一行的另一侧。 - 如果为True,编辑最右边的单元格时按Tab键将前进到下一行, - 编辑最左边的单元格时按Shift-Tab组合键将更改为上一行。 - - - - - 获取或设置编辑单元格时Enter键的行为。 - 如果为False(默认值),则按Enter键将简单地完成编辑操作。 - 如果为True,则Enter将完成编辑操作,并在当前单元格下方的单元格上启动新的编辑操作,在位于底部单元格时换行到下一行的顶部。 - - - - - 获取显示单元格提示的工具提示控件 - - - - - 获取或设置该项的每个单元格周围将留空的像素数。单元格内容在考虑填充后对齐。 - - - Each value of the given rectangle will be treated as an inset from - the corresponding side. The width of the rectangle is the padding for the - right cell edge. The height of the rectangle is the padding for the bottom - cell edge. - - - So, this.olv1.CellPadding = new Rectangle(1, 2, 3, 4); will leave one pixel - of space to the left of the cell, 2 pixels at the top, 3 pixels of space - on the right edge, and 4 pixels of space at the bottom of each cell. - - - This setting only takes effect when the control is owner drawn. - - This setting only affects the contents of the cell. The background is - not affected. - If you set this to a foolish value, your control will appear to be empty. - - - - - 获取或设置默认情况下单元格垂直对齐的方式。 - - This setting only takes effect when the control is owner drawn. It will only be noticable - when RowHeight has been set such that there is some vertical space in each row. - - - - Should this list show checkboxes? - - - - - 返回选中行的模型对象;如果未选中行或选中多行,则返回NULL - - - - - Get or set the collection of model objects that are checked. - When setting this property, any row whose model object isn't - in the given collection will be unchecked. Setting to null is - equivilent to unchecking all. - - - - This property returns a simple collection. Changes made to the returned - collection do NOT affect the list. This is different to the behaviour of - CheckedIndicies collection. - - - .NET's CheckedItems property is not helpful. It is just a short-hand for - iterating through the list looking for items that are checked. - - - The performance of the get method is O(n), where n is the number of items - in the control. The performance of the set method is - O(n + m) where m is the number of objects being checked. Be careful on long lists. - - - - - - 获取或设置可枚举对象中的选中对象。 - - - Useful for checking all objects in the list. - - - this.olv1.CheckedObjectsEnumerable = this.olv1.Objects; - - - - - Gets Columns for this list. We hide the original so we can associate - a specialised editor with it. - - - - - 获取/设置当列表切换到TileView(平铺视图)时应使用的列的列表。 - - - - - 按向用户显示的顺序返回可见列 - - - - - 获取显示列表的控件区域,减去任何标题控件 - - - - - 获取或设置当用户按Ctrl+C组合键时是否应将选定行复制到剪贴板 - - - - - 获取或设置按Ctrl+C键复制到剪贴板功能是否应使用安装的DragSource创建放置到剪贴板上的数据对象。 - - This is normally what is desired, unless a custom DragSource is installed - that does some very specialized drag-drop behaviour. - - - - Gets the list of decorations that will be drawn the ListView - - - - Do not modify the contents of this list directly. Use the AddDecoration() and RemoveDecoration() methods. - - - A decoration scrolls with the list contents. An overlay is fixed in place. - - - - - - 所有者绘制时,此渲染器将绘制未指定特定渲染器的列 - - 如果尝试将其设置为NULL,则它将恢复为HighlightTextRenende - - - - 获取用于绘制给定单元格的渲染器。 - - The row model for the row - The column to be drawn - The renderer used for drawing a cell. Must not return null. - - - - 获取或设置将应用于禁用项的样式。 - - If this is not set explicitly, will be used. - - - - 获取或设置已禁用的模型对象的列表。无法选择或激活已禁用的对象。 - - - - - 判断此给定模型对象是否已禁用 - - - - - - - 禁用给定的模型对象。禁用的对象无法选择或激活。 - - Must not be null - - - - 禁用所有给定的模型对象 - - - - - - 启用给定的模型对象,以便可以再次选择并激活它。 - - Must not be null - - - - 启用所有给定的模型对象 - - - - - - 忽略所有禁用的对象。这不会触发重绘或重建 - - - - - Gets or sets the object that controls how drags start from this control - - - - - Gets or sets the object that controls how drops are accepted and processed - by this ListView. - - - - If the given sink is an instance of SimpleDropSink, then events from the drop sink - will be automatically forwarded to the ObjectListView (which means that handlers - for those event can be configured within the IDE). - - If this is set to null, the control will not accept drops. - - - - - This registry decides what control should be used to edit what cells, based - on the type of the value in the cell. - - - All instances of ObjectListView share the same editor registry. - - - - 获取或设置在此列表视图中没有项时应显示的文本。 - - If the EmptyListMsgOverlay has been changed to something other than a TextOverlay, - this property does nothing - - - - 获取或设置绘制列表空消息时应使用的字体 - - If the EmptyListMsgOverlay has been changed to something other than a TextOverlay, - this property does nothing - - - - 返回“列表为空”消息的字体或合理的默认值 - - - - - Gets or sets the overlay responsible for drawing the List Empty msg. - - - - - 获取在筛选中幸存下来的对象的集合。 - - - - This collection is the result of filtering the current list of objects. - It is not a snapshot of the filtered list that was last used to build the control. - - - Normal warnings apply when using this with virtual lists. It will work, but it - may take a while. - - - - - - 获取或设置将用于生成筛选器菜单的策略对象 - - 如果为NULL,则不会生成筛选器菜单。 - - - - 获取或设置具有键盘焦点的行 - - - - Setting an object to be focused does *not* select it. If you want to select and focus a row, - use . - - - This property is not generally used and is only useful in specialized situations. - - - - - - 隐藏Groups集合,使其在“属性”网格中不可见。 - - - - - 获取或设置分组使用的ImageList - - 如果未设置此选项,则分组标题将不会显示任何图像。 - - - - 获取在组为空或包含多个项目时应如何设置组标签的格式 - - - 给定的格式字符串必须有两个占位符: - - {0} - 原来的组标题 - {1} - 组中的项目数 - - - "[{0} [{1} 项]" - - - - 返回this.GroupWithItemCountFormat或合理的默认值 - - - - - 获取在组仅包含单个项目时应如何设置组标签的格式 - - - 给定的格式字符串必须有两个占位符: - - {0} - 原来的组标题 - {1} - 组中的项目数 (总是1) - - - "[{0} [{1} 项]" - - - - 获取GroupWithItemCountSingularFormat或合理的默认值 - - - - - 获取或设置此ObjectListView中的组是否应可折叠。 - - - 此特性只支持Vista或之后的系统. - - - - - 获取当前列表是否存在当列表为空时显示的文本 - - - - - 获取是否有要绘制的叠加层 - - - - - 获取ListView的列头控件 - - - - - 获取或设置列标题文本的绘制字体 - - 单个列可以通过其HeaderFormatStyle属性重写此设置。 - - - - 获取或设置将用于绘制列表视图的列标题的样式 - - - - 仅当HeaderUsesThemes为false时才使用此选项。 - - - 单个列可以通过其HeaderFormatStyle属性重写此设置。 - - - - - - 获取或设置标题的最大高度。-1表示没有最大值。 - - - - - 获取或设置标题的最小高度。-1表示没有最小值。 - - - - - 获取或设置是否严格按照操作系统的主题绘制标题。 - - - - 如果设置为true,则列头将完全由系统呈现,不需要ObjectListViews的任何特殊处理。 - 页眉中将没有图像、没有过滤器指示符、没有文字换行、没有页眉样式、没有复选框。 - - 如果将其设置为False,ObjectListView将以其认为最好的方式呈现标题。 - 如果不需要特殊功能,则ObjectListView会将渲染委托给操作系统。 - 否则,ObjectListView将根据配置设置绘制标题。 - - - 没有主题的效果会因操作系统不同而不同。至少,分类指示器不会是标准的。 - - - - - - 获取或设置列头标题中的文本是否自动换行。 - - - 将在单词之间应用换行符。过长的单词仍将被省略。 - - 与所有使列头看起来不同的设置一样,HeaderUsesThemes必须设置为false,否则操作系统将负责绘制列头,并且不允许自动换行文本。 - - - - - - 获取显示列标题提示的工具提示 - - - - - 获取鼠标当前所在行的索引。 - - - - - 获取鼠标当前所在列的索引 - - - - - 获取鼠标当前所在的项/子项的一部分 - - - - - Gets an extended indication of the part of item/subitem/group that the mouse is currently over - - - - - 获取鼠标所在的组。 - - - - - 处于“热”状态的项的索引,即在光标下方。-1表示没有项目。 - - - - - 获取和设置对游标下的行应用哪种格式 - - - - 这仅在UseHotItem为true时生效。 - - 如果样式具有叠加层,则必须对其进行设置。*之前* 将其分配给此属性。之后添加它将被忽略。 - - - - - 获取已安装的热点项样式或合理的默认值。 - - - - - 获取和设置应将哪种格式应用于超链接 - - - - - 获取和设置所选行的背景应该使用什么颜色 - - - - - 返回应用于选定行的背景颜色或合理的默认值 - - - - - 获取和设置所选行的字体应该使用什么颜色 - - - - - 返回应用于选定行的字体颜色或合理的默认值 - - - - - 使用 SelectedBackColor 代替 - - - - - 使用 SelectedBackColorOrDefault 代替 - - - - - 使用 SelectedForeColor 代替 - - - - - 使用 SelectedForeColorOrDefault 代替 - - - - - 使用 UnfocusedSelectedBackColor 代替 - - - - - 使用 UnfocusedSelectedBackColorOrDefault 代替 - - - - - 使用 UnfocusedSelectedForeColor 代替 - - - - - 使用 UnfocusedSelectedForeColorOrDefault 代替 - - - - - 获取或设置是否应将隐藏列包括在复制或拖动到其他应用程序的行的文本表示形式中。 - 如果为False(默认值),则仅包括可见列。 - - - - - 获取或设置复制行时,列标题是否在文本中。 - 如果为False(默认值),在文本中将不会显示列标题。 - - - - - 如果当前正在进行单元格编辑操作,则返回TRUE - - - - - 如果在开发环境中使用ObjectListView,则返回true。 - - - - - 获取当前列表是否正在筛选其内容 - - - - - 当用户在列表中键入内容时,是否应该搜索当前排序列中的值以查找匹配项? - 如果为False,则无论排序列是什么,都将始终使用主列。 - - When this is true, the behavior is like that of ITunes. - - - - 获取或设置此控件是否将使用SimpleDropSink接收拖动 - - - - 此设置将替换任何以前的DropSink。 - - - 将其设置为true后,SimpleDropSink仍需要配置为说明它何时可以接受拖动, - 以及在拖动某些内容时应该执行什么操作。需要执行这些操作使此属性几乎毫无用处 :( - - - - - - 获取或设置此控件是否将使用SimpleDragSource来启动拖动 - - 此设置将替换之前的任何DragSource - - - - 隐藏Items集合,使其在“属性”网格中不可见。 - - - - - 当列表中的项目处于非详细视图中时,此渲染器会绘制项目。在详细信息视图中,负责个体列的呈现器。 - - - - - 获取或设置最后一次排序的列 - - 这是PrimarySortColumn的别名 - - - - 获取或设置最后一次排序的方向 - - 这是 PrimarySortOrder的别名 - - - - 获取或设置应用于整个对象列表的筛选器。 - - - 列表将立即更新以反映此筛选器。 - - - - - 获取或设置应用于列表中每个模型对象的筛选器 - - - 您可能需要考虑使用 而不是此属性, - 因为AdditionalFilter在运行时与列筛选相结合。 - 设置此属性只是替换用户可能已给出的任何列筛选器。 - - The list is updated immediately to reflect this filter. - - - - - - Gets the hit test info last time the mouse was moved. - - Useful for hot item processing. - - - - 获取或设置列表显示的组列表。 - - - 此属性与.NET Groups属性的工作方式不同,应将其视为只读属性。 - 对列表所做的更改不会反映在ListView本身中。 - 在此列表中添加或删除组是没有意义的,这样的修改不会起到任何作用。 - 要执行此类操作,必须侦听BeforeCreatingGroups或AboutToCreateGroups事件, - 并更改这些事件中的组列表。 - - - - - 获取或设置折叠的OLVGroups的集合。 - - - - - Gets or sets whether the user wants to owner draw the header control - themselves. If this is false (the default), ObjectListView will use - custom drawing to render the header, if needed. - - - If you listen for the DrawColumnHeader event, you need to set this to true, - otherwise your event handler will not be called. - - - - - 获取/设置此列表将显示的对象集合 - - - - 设置此属性后,控件的内容将立即更新。 - - 如果可能,此方法将保留所选内容。使用 if - 如果您不想保留所选内容,请执行以下操作。 - 保留选择是该代码中最慢的部分,性能为O(N),其中n是选定的行数。 - 此方法不是线程安全的。 - 该属性确实适用于虚拟列表:设置是没有问题的,但如果您尝试获取它, - 并且列表有1000万个对象,则可能需要一些时间才能返回。 - 此集合未经过筛选。使用 只访问那些在任何已安装的筛选器中幸存下来的对象。 - - - - - 获取当前控件所有对象组成的列表 - - - - - 获取创建群集时将考虑的对象集合。 - (用于生成类似Excel的列筛选器) - - - - - 获取或设置将在ListView顶部绘制的图像 - - - - - 获取或设置将在ListView顶部绘制的文本 - - - - - 获取或设置所有覆盖图的透明度。0表示完全透明,255表示完全不透明。 - - - 这已经过时了,请在每个覆盖上使用Transparency。 - - - - - 获取将在ListView顶部绘制的覆盖列表 - - - You can add new overlays and remove overlays that you have added, but - don't mess with the overlays that you didn't create. - - - - - Gets or sets whether the ObjectListView will be owner drawn. Defaults to true. - - - - When this is true, all of ObjectListView's neat features are available. - - We have to reimplement this property, even though we just call the base - property, in order to change the [DefaultValue] to true. - - - - - - 获取或设置主复选框是否在列表重新生成和筛选操作中保持其值。 - - - - 此属性仅在未显式设置CheckStateGetter/Putter时才有用。 - 如果您使用CheckStateGetter/Putter,那么这些方法已经持久化了行的检查性。 - - 此默认值为true。如果为False,则在重新生成或筛选列表时,复选框将丢失其值。 - 如果在虚拟列表中将其设置为false,则必须安装CheckStateGetter/Putters。 - - - - - 获取或设置记住模型对象的复选框状态的字典 - - 当PersistentCheckBoxs值为TRUE时,此选项用于虚拟列表. - - - - 获取或设置最后一次排序的列 - - - - - 获取或设置最后一次排序的方向 - - - - - 获取或设置不可编辑复选框是否绘制为禁用。默认是false。 - - - 这仅在所有者描述模式(owner drawn mode)下有效。 - - - - - 以像素为单位指定控件中每行的高度。 - - 列表视图中的行高通常由字体大小和小图像列表大小决定。 - 此设置允许覆盖该计算(原因是:您仍然不能将行高设置为小于控件中使用的字体的行高)。 - 将其设置为-1表示使用正常计算方法。 - 此功能是体验功能!如果您使用此功能,您的程序可能会发生意想不到的事情。 - - - - - 获取每行有多少像素高 - - - - - 获取此控件的每页上显示多少行 - - - - - 获取/设置将用于解析排序时相等的比较的列(第二排序列)。 - - 此设置没有用户界面。它必须以编程方式设置。 - - - - 获取或设置当使用Second darySortColumn时,它将以什么顺序比较结果 - - - - - 获取或设置当用户按Ctrl+A组合键时是否应选择所有行 - - - - - 获取或设置当用户右键单击列标题时,是否应该显示一个菜单,允许用户选择视图中将显示哪些列 - - 这只是SelectColumnsOnRightClickBehaviour的兼容性包装属性. - - - - 获取或设置当右键单击标题时用户如何能够选择列 - - - - - 当列选择菜单打开时,是否应在选择项目后保持打开状态?保持打开状态允许用户一次打开或关闭多个列。 - - SelectColumnsOnRightClickBehaviour设置为InlineMenu时才有效。当行为设置为SubMenu菜单时,该选项不起作用。 - - - - 获取或设置选定列 - - - - 如果TintSortColumn为true,则排序列将自动成为选定列。 - - - 色调的颜色由SelectedColumnTint控制。 - - - - - - Gets or sets the decoration that will be drawn on all selected rows - - - - - 获取或设置应该使用什么颜色来给选定的列着色 - - - 色调颜色必须是Alpha可混合的,因此如果给定的颜色是纯色(即Alpha=255),则会将其更改为具有合理的Alpha值。 - - - - - 获取或设置当前选定行的索引。 - 获取索引时,如果没有选择任何行,或者选择了多个行,则返回-1。 - - - - - 获取或设置当前选定的ListViewItem。如果未选择任何行,或者选择了多个行,则返回NULL。 - - - - - 如果只选择了一行,则从当前选定的行获取模型对象。 - 如果未选择任何行,或选择了多个行,则返回NULL。 - 设置时,这将选择显示给定模型对象的行,并将焦点放在该行上,取消选择所有其他行。 - - - - - 从当前选定的行中获取模型对象。 - 如果未选中任何行,则返回的列表为空。 - 设置此值时,请选择显示给定模型对象的行,取消选择所有其他行。 - - - - - 获取或设置当用户右键单击列标题时,是否应该显示一个菜单,允许他们选择要在列表视图上执行的常见任务 - - - - - 获取或设置当右键单击标题控件时,此ObjectListView是否像筛选菜单一样显示表格 - - - - - 获取或设置是否应按组显示其项目 - - - - - 列表视图是否应该在列标题中显示位图以显示排序方向 - - - The only reason for not wanting to have sort indicators is that, on pre-XP versions of - Windows, having sort indicators required the ListView to have a small image list, and - as soon as you give a ListView a SmallImageList, the text of column 0 is bumped 16 - pixels to the right, even if you never used an image. - - - - - 列表视图是否应该显示子项上的图像 - - - 虚拟列表必须是所有者绘制的,才能在子项上显示图像 - - - - - 此属性控制分组标签是否显示该分组项目数量 - - - 后缀的格式由GroupWithItemCountFormat/GroupWithItemCountSingularFormat属性控制 - - - - - 获取或设置控件是在所有视图中显示列标题(True),还是仅在详细信息视图中显示列标题(False) - - - - 此属性工作不正常。JPP 2010/04/06。 - 如果它是在创建控件之前设置的,则可以正常工作。 - 但是,如果在创建控件后将其关闭,则控件将丢失其复选框(奇怪!) - - - 要在创建控件后更改此设置,事情会很复杂。 - 如果它是关闭的,而我们想要打开它,我们必须更改视图,标题就会出现。 - 如果它当前处于打开状态,而我们想要将其关闭,则必须更改视图并重新创建控制柄。 - 重新创建句柄是一个问题,因为它会使我们的复选框样式消失。 - - - 该属性不能工作在 Win XP 系统. - - - - - 重写SmallImageList属性,以便我们可以正确地隐藏其操作。 - - 如果使用RowHeight属性指定行高,则必须在设置/更改RowHeight之前完全初始化SmallImageList。 - 如果在设置行高之后将新图像添加到图像列表,则必须再次将图像列表分配给控件。像这样简单的事情会奏效的: - listView1.SmallImageList = listView1.SmallImageList; - - - - - 返回小图像列表中图像的大小或合理的默认值 - - - - - 当列表视图分组时,项是否应该按主列排序?如果为False,则项目将按分组时的同一列进行排序。 - - - - - 当列表视图分组时,一个组的末尾和下一个组的开头之间应该有多少像素 - - - - - 排序列是否应该显示轻微的色调? - - - - - 获取或设置是否使用三态复选框? - - - 如果为True,用户可以选择第三种状态(通常是不确定的)。 - 否则,用户在选中和取消选中之间交替单击。 - 当此设置为False时,CheckStateGetter仍可以返回不确定。 - - - - - 获取或设置列表顶部项目的索引 - - - - 此属性仅在列表视图处于详细信息视图中且不显示组时才起作用。 - - - 显示组时不起作用的原因是,当启用组时,无论滚动位置如何, - Windows msg LVM_GETTOPINDEX总是返回0。 - - - - - - 获取或设置将鼠标移到标题上是否会触发CellOver事件。 - 默认为true。 - - - 将鼠标移动到标题上之前不会触发CellOver事件,因为Header被视为单独的控件。 - 如果此行为更改导致您的应用程序出现问题,请将其设置为False。 - 如果您想知道鼠标何时在标题上移动,请将此属性设置为true(默认值)。 - - - - - 通过拖动分隔线调整列的大小时,是否应在每次鼠标移动时调整填充空格的列的大小? - 如果为False,则释放鼠标时将更新填充栏。 - - - - 如果空间填充列位于正在调整大小的列的左侧,这看起来会很奇怪:该列的右边缘将被拖动,但由于空间填充列正在收缩,其左边缘将会移动。 - - 这是合乎逻辑的行为--只是看起来不对。 - - - 考虑到上述行为,如果空间填充列不是最右边的列,最好关闭该属性。 - - - - - 当控件没有焦点时,应该使用什么颜色作为选定行的背景 - - - - - 当控件没有焦点或合理的默认值时,返回应用于选定行的背景的颜色 - - - - - 当控件没有焦点时,应该使用什么颜色作为选定行的字体颜色。 - - - - - 当控件没有焦点或合理的默认值时,返回应用于选定行的字体颜色 - - - - - 获取或设置列表是否每隔一行提供不同的背景色?默认值为false。 - - 交替行的颜色由AlternateRowBackColor提供。 - 在.NET中,列表视图在非整行选择模式下有一个“功能”,在这种模式下,所选行不会使用正确的背景色绘制。 - - - - 是否应该为控件中的每个单元格调用FormatCell事件? - - - 在许多情况下,不执行单元格级格式设置。 - 如果除非需要,ObjectListView不会为每个单元格触发Format Cell事件,则它的运行速度会稍快一些。 - 因此,默认情况下,它不会为每个单元格引发事件。 - - ObjectListView*确实*在每次重新生成行时引发FormatRow事件。各行可以决定是否对行中的每个单元格引发FormatCell事件。 - - - 无论此设置如何,只有当ObjectListView处于详细视图中时才会引发FormatCell事件。 - - - - - 所选行是否应使用非标准前景色和背景色绘制? - - V2.9不再需要此属性 - - - - 获取或设置此ObjectListView是否将使用与Vista资源管理器相同的热项和选择机制。 - - - - 此属性有许多缺陷: - - 这仅适用于Vista及更高版本 - 它不能很好地与AlternateRowBackColors配合使用。 - 它不能很好地与HotItemStyles配合使用。 - 如果FullRowSelect为false,这看起来有点傻。 - 当列表是所有者绘制的时,它根本不起作用(因为所有的绘制都是由渲染器完成的)。 - 因此,它不能与TreeListView一起工作,因为它们“必须”是所有者绘制的。你仍然可以设置它,但它不会生效。 - - 但如果你一定要看起来像Vista/Win7,这是你的权限。如果这项设置搞砸了其他事情,请不要抱怨。 - - - 当此属性设置为True时,ObjectListView将不是所有者描述的。 - 这将禁用ObjectListView的许多漂亮的基于绘图的功能。 - - - - - - 获取或设置列表是否应启用筛选 - - - - - 获取或设置列表是否应将指示符放入列的标题中,以表明它正在筛选该列 - - 如果将其设置为true,HeaderUsesThemes将自动设置为false,因为我们只能在不使用主题标题时绘制筛选器指示器。 - - - - 鼠标下方的控件(复选框或按钮)是否应该被绘制为“Hot” - - - 如果为False,则当鼠标悬停在控件上时,控件的绘制方式不会有所不同。 - - 如果为False,且UseHotItem和UseHyperLinks为False,则ObjectListView可以跳过鼠标移动的某些处理。这使得鼠标移动处理几乎不使用CPU。 - - - - - - 光标下的项是否应以特殊方式设置格式? - - - - - 获取或设置此列表视图是否应在单元格中显示超链接。 - - - - - 此控件是否应显示覆盖(Overlays) - - 覆盖(Overlays)在默认情况下是启用的,只有在它们在您的开发环境中造成问题时才需要禁用。 - - - - 是否应将此控件配置为在子项上显示复选框? - - 如果将其设置为True,则将为该控件提供一个SmallImageList(如果它还没有一个SmallImageList)。 - 此外,如果它是一个虚拟列表,它将被设置为所有者描述的,因为虚拟列表不能在没有所有者描述的情况下绘制复选框。 - - - - 获取或设置ObjectListView是否将使用类似Vista的半透明选择机制。 - - - - 与UseExplorerTheme不同的是,这个类似Vista的方案可以在XP上运行,并且既适用于所有者描述的列表,也适用于非所有者描述的列表。 - - - 这将替换任何已安装的SelectedRowDecory。 - - - 如果您不喜欢用于选择的颜色,请忽略此属性, - 只需创建您自己的RowBorderDecory并将其分配给SelectedRowDecory, - 就像此属性设置器所做的那样。 - - - - - - 获取或设置ObjectListView是否将使用类似于Vista的半透明热行突出显示机制。 - - - - 设置此项将替换任何已安装的HotItemStyle。 - - - 如果您不喜欢热项目使用的颜色,请忽略此属性, - 只需创建您自己的HotItemStyle,填充所需的值, - 并将其分配给HotItemStyle属性,就像此属性设置器所做的那样。 - - - - - - 获取/设置此列表视图正在使用的视图样式 - - 切换到平铺(Tile)或详细信息(Details)视图会安装适合该视图的列。令人困惑的是,在平铺视图中,每列都显示为一行信息。 - - - - 此委托仅将对象的检查性作为布尔值获取。 - - 如果您永远不想担心不确定状态(这是相当常见的),请使用此选项。 - - 这是CheckStateGetter属性的便捷包装。 - - - - - - This delegate sets the checkedness of an object as a boolean only. It must return - true or false indicating if the object was checked or not. - - Use this if you never want to worry about the - Indeterminate state (which is fairly common). - - This is a convenience wrapper around the CheckStatePutter property. - - - - - - 获取此列表视图是否能够显示组 - - - - - 获取或设置ObjectListView是否可以依赖正在引发的Application.Idle事件。 - - 在某些主机环境中(例如,在VisualStudio和Office中作为扩展运行时),从不引发Application.Idle事件。 - 如果不会引发Idle事件,则将其设置为False,ObjectListView将自行引发这些事件。 - - - - - This delegate fetches the renderer for a particular cell. - - - - If this returns null (or is not installed), the renderer for the column will be used. - If the column renderer is null, then will be used. - - - This is called every time any cell is drawn. It must be efficient! - - - - - - This delegate is called when the list wants to show a tooltip for a particular cell. - The delegate should return the text to display, or null to use the default behavior - (which is to show the full text of truncated cell values). - - - Displaying the full text of truncated cell values only work for FullRowSelect listviews. - This is MS's behavior, not mine. Don't complain to me :) - - - - - 保存是否选中模型的属性(或字段)的名称。 - - - 该属性是可修改的。它必须具有bool(或bool?)返回类型。如果TriStateCheckBooks为真)。 - 设置此属性将替换任何已安装的CheckStateGetter或CheckStatePutter。 - 相反,稍后设置CheckStateGetter或CheckStatePutter属性将优先于此属性的行为。 - - - - - 只要ObjectListView需要知道与给定模型对象关联的行的检查状态,就会调用此委托。 - - - .NET has no support for indeterminate values, but as of v2.0, this class allows - indeterminate values. - - - - - This delegate will be called whenever the user tries to change the check state of a row. - The delegate should return the state that was actually set, which may be different - to the state given. - - - - - 此委托可用于以自定义方式对表进行排序。 - - - - 委托必须在ObjectListView上安装ListViewItemSorter。 - 安装ItemSorter会执行对ListViewItems进行排序的实际工作。 - 有关ItemSorter必须执行的操作的示例,请参见代码中的ColumnCompeller。 - - - 请勿在VirtualObjectListView上安装CustomSorter。改为重写IVirtualListDataSource的SortObjects()方法。 - - - - - - This delegate is called when the list wants to show a tooltip for a particular header. - The delegate should return the text to display, or null to use the default behavior - (which is to not show any tooltip). - - - Installing a HeaderToolTipGetter takes precedence over any text in OLVColumn.ToolTipText. - - - - - This delegate can be used to format a OLVListItem before it is added to the control. - - - The model object for the row can be found through the RowObject property of the OLVListItem object. - All subitems normally have the same style as list item, so setting the forecolor on one - subitem changes the forecolor of all subitems. - To allow subitems to have different attributes, do this: - myListViewItem.UseItemStyleForSubItems = false;. - - If UseAlternatingBackColors is true, the backcolor of the listitem will be calculated - by the control and cannot be controlled by the RowFormatter delegate. - In general, trying to use a RowFormatter - when UseAlternatingBackColors is true does not work well. - As it says in the summary, this is called before the item is added to the control. - Many properties of the OLVListItem itself are not available at that point, including: - Index, Selected, Focused, Bounds, Checked, DisplayIndex. - - - - - 将给定的模型对象添加到此控件。 - - 要显示的模型对象 - See AddObjects() for more details - - - - 将给定的模型对象集合添加到此控件。 - - 要显示的模型对象集合 - - 如果排序处于活动状态(即,如果PrimarySortColumn不为空),则添加的对象将出现在其正确的排序位置。否则,它们将出现在列表的末尾。 - 不执行任何检查以查看是否有任何对象已在ListView中。 - 空对象将被静默忽略。 - - - - - 将列的大小调整到页眉宽度和数据的最大值。 - - - - - 设置任何自动初始化的列宽(宽度为0或-1的列将分别调整为其内容或标题的宽度)。 - - - 显然,这只会起作用一次。一旦运行,列宽将更改为其他值(不是0或-1),因此第二次运行时不会执行任何操作。 - 若要强制所有列更改其大小,请使用 。 - - - - - 根据最后一个排序列或第一列(如果没有最后一个排序列)将视图项组织到组中 - - - - - 根据给定列将视图项组织成组 - - - - 如果AlwaysGroupByColumn属性不为Null,则列表视图项将按该列组织,并且将忽略‘Column’参数。 - - 此方法触发排序事件:BeforeSorting和AfterSorting。 - - 其值应用于排序的列。 - - - - - 根据给定列将视图项组织成组 - - 将使用哪一列进行分组 - 组将使用什么顺序 - 其值应用于排序的列。不能为空 - 列中值的排序顺序 - 当‘column’中的值相等时,请使用此列提供的值 - 次级值将如何排序 - 此方法不会触发排序事件。使用BuildGroups()执行此操作 - - - - 收集并返回影响组创建的所有变量 - - - - - - Make a list of groups that should be shown according to the given parameters - - - The list of groups to be created - This should not change the state of the control. It is possible that the - groups created will not be used. They may simply be discarded. - - - - 生成/重新生成列表中的所有列表视图项,尽可能多地保留状态 - - - - - 生成/重新生成列表中的所有列表视图项 - - If this is true, the control will try to preserve the selection, - focused item, and the scroll position (see Remarks) - - - - Use this method in situations were the contents of the list is basically the same - as previously. - - - - - - 清除此列表可能一直在使用的所有缓存信息 - - - - - Apply all required extended styles to our control. - - - - Whenever .NET code sets an extended style, it erases all other extended styles - that it doesn't use. So, we have to explicit reapply the styles that we have - added. - - - Normally, we would override CreateParms property and update - the ExStyle member, but ListView seems to ignore all ExStyles that - it doesn't already know about. Worse, when we set the LVS_EX_HEADERINALLVIEWS - value, bad things happen (the control crashes!). - - - - - - Give the listview a reasonable size of its tiles, based on the number of lines of - information that each tile is going to display. - - - - - Rebuild this list for the given view - - - - - - 移除所有对象(线程安全) - - This method can safely be called from background threads. - - - - 重置已访问其URL的内存 - - - - - 将选定行的文本和HTML表示复制到剪贴板上。 - - Be careful when using this with virtual lists. If the user has selected - 10,000,000 rows, this method will faithfully try to copy all of them to the clipboard. - From the user's point of view, your program will appear to have hung. - - - - 将给定对象的文本和HTML表示复制到剪贴板上。 - - - - - 将所有对象的文本和HTML表示复制到剪贴板上。 - - - - - 返回给定对象的html表示形式 - - - - - 取消选择列表视图中的所有行 - - - - - 返回紧跟在给定项后面的ListViewItem。 - 如果给定项为空,则返回列表中的第一个项。 - 如果给定项是最后一项,则返回NULL。 - - The item that is before the item that is returned, or null - A ListViewItem - - - - 按向用户显示的顺序返回最后一项。 - 如果控件未分组,则显示顺序与排序的列表顺序相同。 - 但如果列表是分组的,则显示顺序不同。 - - - - - - 按向用户显示的顺序返回第n项(从0开始)。 - 如果控件未分组,则显示顺序与排序的列表顺序相同。 - 但如果列表是分组的,则显示顺序不同。 - - - - - - - 返回给定listviewitem索引的显示索引。 - 如果控件未分组,则显示顺序与排序的列表顺序相同。 - 但如果列表是分组的,则显示顺序不同。 - - - - - - - 返回紧接在给定项之前出现的ListViewItem。 - 如果给定项为空,则返回列表中的最后一项。 - 如果给定项是第一项,则返回NULL。 - - The item that is before the item that is returned - A ListViewItem - - - - 在给定位置之前插入给定的对象集合 - - Where to insert the objects - The objects to be inserted - - - This operation only makes sense of non-sorted, non-grouped - lists, since any subsequent sort/group operation will rearrange - the list. - - This method only works on ObjectListViews and FastObjectListViews. - - - - - 如果选择了表示给定模型的行,则返回TRUE - - The model object to look for - Is the row selected - - - - 给定的URL是否已被访问 - - The string to be consider - Has it been visited - - - - 按给定的值增量滚动ListView。 - - Horizontal delta - Vertical delta - - - - Return a point that represents the current horizontal and vertical scroll positions - - - - - 记住给定的URL已被访问 - - The url to be remembered - This does not cause the control be redrawn - - - - 将给定的对象集合移动到给定的索引。 - - 此操作仅对未分组的ObjectListViews有意义。 - - - - - - 计算在给定点下的项目是什么? - - - - - - - - 使用Windows控件的SUBITEMHITTEST消息执行点击测试。 - 这提供了标准ListView.HitTest()不提供的有关组点击的信息。 - - - - - - - - What is under the given point? This takes the various parts of a cell into accout, including - any custom parts that a custom renderer might use - - - - An information block about what is under the point - - - - Perform a hit test when the control is not owner drawn - - - - - - - - Perform a hit test when the control is owner drawn. This hands off responsibility - to the renderer. - - - - - - - - Pause (or unpause) all animations in the list - - true to pause, false to unpause - - - - Rebuild the columns based upon its current view and column visibility settings - - - - - 从ListView中删除给定的模型对象 - - The model to be removed - See RemoveObjects() for more details - This method is thread-safe. - - - - - 从控件中移除所有给定对象。 - - Collection of objects to be removed - - Nulls and model objects that are not in the ListView are silently ignored. - This method is thread-safe. - - - - - 选择列表视图中的所有行 - - - - - 在列表视图的右下角设置要固定的给定图像。 - 当列表视图滚动时,此图像不会滚动。 - - - - 此方法使用ListView的原生功能显示背景图像。 - 它有几个限制: - - - 它在owner drawn模式下不能很好地工作。在owner drawn绘制模式下, - 每个单元格都会绘制自身,包括覆盖背景图像的背景。 - 启用网格线时看起来不是很好,因为网格线是在图像上绘制的。 - 它在XP上完全不起作用。 - 显然,当启用交替行背景色时,效果不佳。 - - - 如果你能忍受这些限制,原生水印就相当不错了。 - 它们是真实的背景,而不是像OverlayImage使用的半透明覆盖。 - 与覆盖相比,它们也有明显的优势,因为即使在MDI应用程序中,它们也可以正常工作。 - - 设置此选项将清除所有背景图像。 - - The image to be drawn. If null, any existing image will be removed. - - - - 将给定的图像设置为ListView的背景,以便它在列表中以给定的百分比偏移量显示。 - - - 这具有与 中所述的相同限制. - 在使用该方法之前,请确保了解这些限制。 - 这非常类似于 属性, - 但标准Backround Image不能正确处理具有透明区域的图像--它将透明区域呈现为黑色。这种方法没有这个问题。 - 设置此选项将清除所有背景水印。 - - The image to be drawn. If null, any existing image will be removed. - The horizontal percentage where the image will be placed. 0 is absolute left, 100 is absolute right. - The vertical percentage where the image will be placed. - - - - 将给定图像设置为ListView的平铺背景。 - - - 这具有与 相同的限制. - 在使用该方法之前,请确保了解这些限制。 - - 要绘制的图像。如果为null,则将删除所有现有图像。 - - - - 设置将在此列表视图中显示的对象集合。 - - 可以从后台线程安全地调用此方法。 - 该列表将立即更新 - The objects to be displayed - - - - 设置将在此列表视图中显示的对象集合。 - - 可以从后台线程安全地调用此方法. - 该列表将立即更新 - The objects to be displayed - 是否应尽可能保留列表的状态。 - - - - 将给定的模型对象更新到ListView中。 - 如果该模型尚不存在,则会添加该模型。 - - The model to be updated - - - See for more details - - 此方法是线程安全的。 - 此方法将导致重新排序列表。 - 此方法仅适用于ObjectListViews和FastObjectListViews。 - - - - - 更新与给定对象相等的预先存在的模型。 - 如果控件中不存在任何模型,则会添加它们。 - - Collection of objects to be updated/added - - 此方法将导致重新排序列表。 - null值将被静默忽略。 - 此方法是线程安全的。 - 此方法仅适用于ObjectListViews和FastObjectListViews。 - - - - - 更改当前模型对象上对INotifyPropertyChanged事件的任何订阅, - 以便我们不再侦听旧模型上的事件,而侦听给定集合上的事件。 - - This does nothing if UseNotifyPropertyChanged is false. - - - - - 获取或设置ObjectListView是否应订阅它给定的模型对象上的INotifyPropertyChanged事件。 - - - - 这应该在调用SetObjects()之前设置。如果将其设置为False,ObjectListView将取消订阅所有当前模型对象。 - - 如果在虚拟列表上将其设置为true,ObjectListView将遍历列表中尝试订阅更改通知的所有对象。 - 如果您的虚拟列表中有10,000,000个项目,这可能需要一些时间。 - - - - - Subscribe to INotifyPropertyChanges on the given collection of objects. - - - - - - Unsubscribe from INotifyPropertyChanges on the given collection of objects. - If the given collection is null, unsubscribe from all current subscriptions - - - - - - Return a byte array that represents the current state of the ObjectListView, such - that the state can be restored by RestoreState() - - - The state of an ObjectListView includes the attributes that the user can modify: - - current view (i.e. Details, Tile, Large Icon...) - sort column and direction - column order - column widths - column visibility - - - - It does not include selection or the scroll position. - - - A byte array representing the state of the ObjectListView - - - - Restore the state of the control from the given string, which must have been - produced by SaveState() - - A byte array returned from SaveState() - Returns true if the state was restored - - - - Instances of this class are used to store the state of an ObjectListView. - - - - - The application is idle. Trigger a SelectionChanged event. - - - - - - - The application is idle. Handle the column resizing event. - - - - - - - Handle the BeginScroll listview notification - - - True if the event was completely handled - - - - Handle the EndScroll listview notification - - - True if the event was completely handled - - - - Handle the LinkClick listview notification - - - True if the event was completely handled - - - - The cell tooltip control wants information about the tool tip that it should show. - - - - - - - Allow the HeaderControl to call back into HandleHeaderToolTipShowing without making that method public - - - - - - - The header tooltip control wants information about the tool tip that it should show. - - - - - - - Event handler for the column click event - - - - - Override the basic message pump for this control - - - - - - Handle the search for item m if possible. - - The m to be processed - bool to indicate if the msg has been handled - - - - The user wants to see the context menu. - - The windows m - A bool indicating if this m has been handled - - We want to ignore context menu requests that are triggered by right clicks on the header - - - - - Handle the Custom draw series of notifications - - The message - True if the message has been handled - - - - Handle the underlying control being destroyed - - - - - - - Handle the search for item m if possible. - - The m to be processed - bool to indicate if the msg has been handled - - - - Find the first row after the given start in which the text value in the - comparison column begins with the given text. The comparison column is column 0, - unless IsSearchOnSortColumn is true, in which case the current sort column is used. - - The text to be prefix matched - The index of the first row to consider - Which direction should be searched? - The index of the first row that matched, or -1 - The text comparison is a case-insensitive, prefix match. The search will - search the every row until a match is found, wrapping at the end if needed. - - - - Find the first row in the given range of rows that prefix matches the string value of the given column. - - - - - - The index of the matched row, or -1 - - - - Handle the Group Info series of notifications - - The message - True if the message has been handled - - - - Handle a key down message - - - True if the msg has been handled - - - - Toggle the checkedness of the selected rows - - - - Actually, this doesn't actually toggle all rows. It toggles the first row, and - all other rows get the check state of that first row. This is actually a much - more useful behaviour. - - - If no rows are selected, this method does nothing. - - - - - - Catch the Left Button down event. - - The m to be processed - bool to indicate if the msg has been handled - - - - Handle a left mouse down at the given hit test location - - Subclasses can override this to do something unique - - True if the message has been handled - - - - Catch the Left Button up event. - - The m to be processed - bool to indicate if the msg has been handled - - - - Trigger a GroupExpandCollapse event and return true if the action was cancelled - - - - - - - Catch the Right Button down event. - - The m to be processed - bool to indicate if the msg has been handled - - - - Handle a left mouse down at the given hit test location - - Subclasses can override this to do something unique - - True if the message has been handled - - - - Catch the Left Button double click event. - - The m to be processed - bool to indicate if the msg has been handled - - - - Handle a mouse double click at the given hit test location - - Subclasses can override this to do something unique - - True if the message has been handled - - - - Catch the right Button double click event. - - The m to be processed - bool to indicate if the msg has been handled - - - - Handle a right mouse double click at the given hit test location - - Subclasses can override this to do something unique - - True if the message has been handled - - - - Catch the MouseMove event. - - The m to be processed - bool to indicate if the msg has been handled - - - - Handle notifications that have been reflected back from the parent window - - The m to be processed - bool to indicate if the msg has been handled - - - - In the notification messages, we handle attempts to change the width of our columns - - The m to be processed - bool to indicate if the msg has been handled - - - - Create a ToolTipControl to manage the tooltip control used by the listview control - - - - - Update the handle used by our cell tooltip to be the tooltip used by - the underlying Windows listview control. - - - - - Handle the WM_PAINT event - - - Return true if the msg has been handled and nothing further should be done - - - - Perform any steps needed before painting the control - - - - - Perform any steps needed after painting the control - - - - - Handle the window position changing. - - The m to be processed - bool to indicate if the msg has been handled - - - - The user has right clicked on the column headers. Do whatever is required - - Return true if this event has been handle - - - - Show a menu that is appropriate when the given column header is clicked. - - The index of the header that was clicked. This - can be -1, indicating that the header was clicked outside of a column - Where should the menu be shown - True if a menu was displayed - - - - Create the menu that should be displayed when the user right clicks - on the given column header. - - Index of the column that was right clicked. - This can be negative, which indicates a click outside of any header. - The toolstrip that should be displayed - - - - The user has right clicked on the column headers. Do whatever is required - - Return true if this event has been handle - - - - Show a popup menu at the given point which will allow the user to choose which columns - are visible on this listview - - Where should the menu be placed - - - - Show a popup menu at the given point which will allow the user to choose which columns - are visible on this listview - - - Where should the menu be placed - - - - 获取或设置要用于升序排序命令的文本 - - - - - 获取或设置要用于降序排序命令的文本 - - - - - 获取或设置要用于分组命令的文本 - - - - - 获取或设置要用于锁定分组命令的文本 - - - - - 获取或设置要用于不锁定分组命令的文本 - - - - - 获取或设置要用于关闭分组命令的文本 - - - - - 获取或设置要用于不排序命令的文本 - - - - - 获取或设置要用于列描述的文本 - - - - - 获取或设置要用于选择列描述的文本 - - - - - Gets or sets the image that will be place next to the Sort Ascending command - - - - - Gets or sets the image that will be placed next to the Sort Descending command - - - - - Append the column selection menu items to the given menu strip. - - The menu to which the items will be added. - - Return the menu to which the items were added - - - - Append the column selection menu items to the given menu strip. - - The menu to which the items will be added. - Return the menu to which the items were added - - - - Create the menu items that will allow columns to be choosen and add them to the - given collection - - - - - - Create a Filtering menu - - - - - - - - Override the OnColumnReordered method to do what we want - - - - - - When the column widths are changing, resize the space filling columns - - - - - - - When the column widths change, resize the space filling columns - - - - - - - When the size of the control changes, we have to resize our space filling columns. - - - - - - - Resize our space filling columns so they fill any unoccupied width in the control - - - - - Resize our space filling columns so they fill any unoccupied width in the control - - - - - Check all rows - - - - - Check the checkbox in the given column header - - If the given columns header check box is linked to the cell check boxes, - then checkboxes in all cells will also be checked. - - - - - Mark the checkbox in the given column header as having an indeterminate value - - - - - - Mark the given object as indeterminate check state - - The model object to be marked indeterminate - - - - Mark the given object as checked in the list - - The model object to be checked - - - - Mark the given objects as checked in the list - - The model object to be checked - - - - Put a check into the check box at the given cell - - - - - - - Put an indeterminate check into the check box at the given cell - - - - - - - Return true of the given object is checked - - The model object whose checkedness is returned - Is the given object checked? - If the given object is not in the list, this method returns false. - - - - Return true of the given object is indeterminately checked - - The model object whose checkedness is returned - Is the given object indeterminately checked? - If the given object is not in the list, this method returns false. - - - - Is there a check at the check box at the given cell - - - - - - - Get the checkedness of an object from the model. Returning null means the - model does not know and the value from the control will be used. - - - - - - - Record the change of checkstate for the given object in the model. - This does not update the UI -- only the model - - - - The check state that was recorded and that should be used to update - the control. - - - - Change the check state of the given object to be the given state. - - - If the given model object isn't in the list, we still try to remember - its state, in case it is referenced in the future. - - - True if the checkedness of the model changed - - - - Toggle the checkedness of the given object. A checked object becomes - unchecked; an unchecked or indeterminate object becomes checked. - If the list has tristate checkboxes, the order is: - unchecked -> checked -> indeterminate -> unchecked ... - - The model object to be checked - - - - Toggle the checkbox in the header of the given column - - Obviously, this is only useful if the column actually has a header checkbox. - - - - - Toggle the check at the check box of the given cell - - - - - - - Uncheck all rows - - - - - Mark the given object as unchecked in the list - - The model object to be unchecked - - - - Mark the given objects as unchecked in the list - - The model object to be checked - - - - Uncheck the checkbox in the given column header - - - - - - Uncheck the check at the given cell - - - - - - - 返回给定索引处的列 - - Index of the column to be returned - An OLVColumn - - - - 返回给定标题处的列,如果有多个符合要求的标题,则默认只返回第一个 - - 要返回的列的名称 - An OLVColumn - - - - 返回给定视图可见的列的集合。只有Tile和Details有列;所有其他视图都有0列。 - - 正在为哪个视图计算列? - A list of columns - - - - 返回列表中的项目数 - - 列表中的项目数 - 如果安装了筛选器,这将返回与筛选器匹配的项目数。 - - - - 返回给定索引处的项 - - Index of the item to be returned - An OLVListItem - - - - 返回给定索引处的模型对象 - - Index of the model object to be returned - A model object - - - - 找出在给定的坐标下的行和列 - X 坐标 - Y 坐标 - 给定点下的列项 - 在给定坐标点下的行项。可以为null。 - - - - 返回给定索引/列的子项 - - Index of the item to be returned - Index of the subitem to be returned - An OLVListSubItem - - - - 滚动列表视图,使给定组位于顶部。 - - The group to be revealed - - 如果该组可见,如果可能,列表仍将滚动以将该组移至顶部。 - - 这只在列表显示分组时才有效(显然)。 - 这在虚拟列表上不起作用,因为虚拟列表不使用ListViewGroups进行分组。使用 代替. - - - - - 使给定的模型对象可见 - - The model object to be revealed - - - - 返回选定行的模型对象,如果没有选择或有多个选择,则返回null - - Model object or null - - - - 返回选定行的模型对象,如果没有选择,则返回空集合 - - ArrayList - - - - 返回选中行的模型对象;如果未选中行或选中多行,则返回NULL - - Model object or null - 使用 CheckedObject 属性代替本方法 - - - - 获取选中的模型对象的集合。 - - 使用 CheckedObjects 属性代替本方法 - - - - 在列表视图中查找给定的模型对象并返回其索引 - - The model object to be found - The index of the object. -1 means the object was not present - - - - Rebuild the given ListViewItem with the data from its associated model. - - This method does not resort or regroup the view. It simply updates - the displayed data of the given item - - - - Rebuild the data on the row that is showing the given object. - - - - This method does not resort or regroup the view. - - - The given object is *not* used as the source of data for the rebuild. - It is only used to locate the matching model in the collection, - then that matching model is used as the data source. This distinction is - only important in model classes that have overridden the Equals() method. - - - If you want the given model object to replace the pre-existing model, - use . - - - - - - Update the rows that are showing the given objects - - - This method does not resort or regroup the view. - This method can safely be called from background threads. - - - - - 更新选定的行 - - This method does not resort or regroup the view. - - - - 除任何当前选择外,还选择显示给定模型对象的行。 - - The object to be selected - Use the property to deselect all other rows - - - - 除任何当前选择外,还选择显示给定模型对象的行。 - - The object to be selected - 对象是否也应该被聚焦 - Use the property to deselect all other rows - - - - 选择显示任意给定模型对象的行。取消选择所有其他行。 - - A collection of model objects - - - - 获取或设置是否冻结列表视图。当列表视图被冻结时,它不会自我更新。 - - Frozen属性与Freeze()/UnFreeze()方法类似, - 不同之处在于将Frozen属性设置为False会立即解冻控件, - 而不管有多少未完成的Freeze()调用。 - objectListView1.Frozen = false; // unfreeze the control now! - - - - - 冻结列表视图,使其不再自我更新。 - - Freeze()/Unfreeze() calls nest correctly - - - - 解冻列表视图。如果此调用是最外层的unFreeze(),则将重新构建listview的内容。 - - Freeze()/Unfreeze() calls nest correctly - - - - 在冻结列表视图时执行所需的实际工作 - - - - - 解冻列表视图时执行所需的实际工作 - - - - - 如果选择事件当前挂起,则返回TRUE。在挂起选择事件时,不会引发SelectedIndexChanged或SelectionChanged事件。 - - - - - Suspend selection events until a matching ResumeSelectionEvents() - is called. - - Calls to this method nest correctly. Every call to SuspendSelectionEvents() - must have a matching ResumeSelectionEvents(). - - - - Resume raising selection events. - - - - - Returns a disposable that will disable selection events - during a using() block. - - - - - - Implementation only class that suspends and resumes selection - events on instance creation and disposal. - - - - - 按最后一个排序列和顺序对项目进行排序 - - - - - 按给定列中的值和上次排序顺序对列表视图中的项进行排序 - - 其值将用于排序的列的名称 - - - - 按给定列中的值和上次排序顺序对列表视图中的项进行排序 - - 其值将用于排序的列的索引 - - - - 按给定列中的值和上次排序顺序对列表视图中的项进行排序 - - 其值将用于排序的列 - - - - 按给定列中的值和上次排序顺序对列表视图中的项进行排序 - - The column whose values will be used for the sorting. - If null, the first column will be used. - The ordering to be used for sorting. If this is None, - this.Sorting and then SortOrder.Ascending will be used - If ShowGroups is true, the rows will be grouped by the given column. - If AlwaysGroupsByColumn is not null, the rows will be grouped by that column, - and the rows within each group will be sorted by the given column. - - - - Put a sort indicator next to the text of the sort column - - - - - Put a sort indicator next to the text of the given given column - - The column to be marked - The sort order in effect on that column - - - - The name of the image used when a column is sorted ascending - - This image is only used on pre-XP systems. System images are used for XP and later - - - - The name of the image used when a column is sorted descending - - This image is only used on pre-XP systems. System images are used for XP and later - - - - If the sort indicator images don't already exist, this method will make and install them - - - - - Remove any sorting and revert to the given order of the model objects - - - - - Do the actual work of creating the given list of groups - - - - - - For some reason, UseItemStyleForSubItems doesn't work for the colors - when owner drawing the list, so we have to specifically give each subitem - the desired colors - - The item whose subitems are to be corrected - Cells drawn via BaseRenderer don't need this, but it is needed - when an owner drawn cell uses DrawDefault=true - - - - Fill in the given OLVListItem with values of the given row - - the OLVListItem that is to be stuff with values - the model object from which values will be taken - - - - Make sure the ListView has the extended style that says to display subitem images. - - This method must be called after any .NET call that update the extended styles - since they seem to erase this setting. - - - - Convert the given image selector to an index into our image list. - Return -1 if that's not possible - - - Index of the image in the imageList, or -1 - - - - Return the tooltip that should be shown when the mouse is hovered over the given column - - The column index whose tool tip is to be fetched - A string or null if no tool tip is to be shown - - - - 返回当鼠标悬停在给定单元格上时应显示的工具提示 - - The column index whose tool tip is to be fetched - The row index whose tool tip is to be fetched - A string or null if no tool tip is to be shown - - - - 返回显示给定模型对象的OLVListItem - - The modelObject whose item is to be found - The OLVListItem that displays the model, or null - This method has O(n) performance. - - - - Do the work required after the items in a listview have been created - - - - - Do the work required after one item in a listview have been created - - - - - 准备列表视图以显示交替的行背景色 - - We cannot rely on lvi.Index in this method. - In a straight list, lvi.Index is the display index, and can be used to determine - whether the row should be colored. But when organised by groups, lvi.Index is not - useable because it still refers to the position in the overall list, not the display order. - - - - - Setup all subitem images on all rows - - - - - 告诉基础列表控件针对子项显示哪些图像 - - the index at which the item occurs - the item whose subitems are to be set - - - - Tell the underlying list control which images to show against the subitems - - the index at which the item occurs - the item whose subitems are to be set - will existing images be cleared if no new image is provided? - - - - Set the subitem image natively - - - - - - - - - Take ownership of the 'objects' collection. This separats our collection from the source. - - - - This method - separates the 'objects' instance variable from its source, so that any AddObject/RemoveObject - calls will modify our collection and not the original colleciton. - - - This method has the intentional side-effect of converting our list of objects to an ArrayList. - - - - - - 触发给定项目的FormatRow和可能的FormatCell事件 - - - - - - - - 触发给定项目的FormatCell事件 - - - - - - - - Make the list forget everything -- all rows and all columns - - Use if you want to remove just the rows. - - - - Update our externally visible image list so it holds the same images as our shadow list, but sized correctly - - - - - Return a copy of the given source image list, where each image has been resized to be height x height in size. - If source is null, an empty image list of the given size is returned - - Height and width of the new images - Height and width of the new images - Source of the images (can be null) - A new image list - - - - Return a bitmap of the given height x height, which shows the given image, centred. - - Height and width of new bitmap - Height and width of new bitmap - Image to be centred - The background color - A new bitmap - - - - Initialize the state image list with the required checkbox images - - - - - The name of the image used when a check box is checked - - - - - The name of the image used when a check box is unchecked - - - - - The name of the image used when a check box is Indeterminate - - - - - Setup this control so it can display check boxes on subitems - (or primary checkboxes in virtual mode) - - This gives the ListView a small image list, if it doesn't already have one. - - - - Make sure the small image list for this control has checkbox images - (used for sub-item checkboxes). - - - - This gives the ListView a small image list, if it doesn't already have one. - - - ObjectListView has to manage checkboxes on subitems separate from the checkboxes on each row. - The underlying ListView knows about the per-row checkboxes, and to make them work, OLV has to - correctly configure the StateImageList. However, the ListView cannot do checkboxes in subitems, - so ObjectListView has to handle them in a differnt fashion. So, per-row checkboxes are controlled - by images in the StateImageList, but per-cell checkboxes are handled by images in the SmallImageList. - - - - - - Owner draw the column header - - - - - - Owner draw the item - - - - - - Owner draw a single subitem - - - - - - We need the click count in the mouse up event, but that is always 1. - So we have to remember the click count from the preceding mouse down event. - - - - - - When the mouse leaves the control, remove any hot item highlighting - - - - - - When the mouse moves, we might need to change the hot item. - - - - - - Check to see if we need to start editing a cell - - - - - - Tell the world that a hyperlink was clicked and if the event isn't handled, - do the default processing. - - - - - - Do the default processing for a hyperlink clicked event, which - is to try and open the url. - - - - - - The user right clicked on the control - - - - - - This method is called every time a row is selected or deselected. This can be - a pain if the user shift-clicks 100 rows. We override this method so we can - trigger one event for any number of select/deselects that come from one user action - - - - - - Called when the handle of the underlying control is created - - - - - - This method is called after the control has been fully created. - - - - - Should we start editing the cell in response to the given mouse button event? - - - - - - - Handle a key press on this control. We specifically look for F2 which edits the primary column, - or a Tab character during an edit operation, which tries to start editing on the next (or previous) cell. - - - - - - - Start an editing operation on the first editable column of the given model. - - - - - If the model doesn't exist, or there are no editable columns, this method - will do nothing. - - This will start an edit operation regardless of CellActivationMode. - - - - - - Begin an edit operation on the given cell. - - This performs various sanity checks and passes off the real work to StartCellEdit(). - The row to be edited - The index of the cell to be edited - - - - Really start an edit operation on a given cell. The parameters are assumed to be sane. - - The row to be edited - The index of the cell to be edited - - - - Calculate the bounds of the edit control for the given item/column - - - - - - - - - Calculate the bounds of the edit control for the given item/column, when the listview - is being owner drawn. - - - - - - A rectangle that is the bounds of the cell editor - - - - Calculate the bounds of the edit control for the given item/column, when the listview - is not being owner drawn. - - - - - - A rectangle that is the bounds of the cell editor - - - - Try to give the given value to the provided control. Fall back to assigning a string - if the value assignment fails. - - A control - The value to be given to the control - The string to be given if the value doesn't work - - - - Setup the given control to be a cell editor - - - - - Return the value that the given control is showing - - - - - - - Called when the cell editor could be about to lose focus. Time to commit the change - - - - - - - Return the bounds of the given cell - - The row to be edited - The index of the cell to be edited - A Rectangle - - - - Return the bounds of the given cell only until the edge of the current text - - The row to be edited - The index of the cell to be edited - A Rectangle - - - - Calculate the visible bounds of the given column. The column's bottom edge is - either the bottom of the last row or the bottom of the control. - - The bounds of the control itself - The column - A Rectangle - This returns an empty rectnage if the control isn't in Details mode, - OR has doesn't have any rows, OR if the given column is hidden. - - - - Return a control that can be used to edit the value of the given cell. - - The row to be edited - The index of the cell to be edited - A Control to edit the given cell - - - - Get the first non-null value of the given column. - At most 1000 rows will be considered. - - - The first non-null value, or null if no non-null values were found - - - - Return a TextBox that can be used as a default cell editor. - - What column does the cell belong to? - - - - - Configure the given text box to autocomplete unique values - from the given column. At most 1000 rows will be considered. - - The textbox to configure - The column used to calculate values - - - - Configure the given text box to autocomplete unique values - from the given column. At most 1000 rows will be considered. - - The textbox to configure - The column used to calculate values - Consider only this many rows - - - - Stop editing a cell and throw away any changes. - - - - - If a cell edit is in progress, finish the edit. - - Returns false if the finishing process was cancelled - (i.e. the cell editor is still on screen) - This method does not guarantee that the editing will finish. The validation - process can cause the finishing to be aborted. Developers should check the return value - or use IsCellEditing property after calling this method to see if the user is still - editing a cell. - - - - If a cell edit is in progress, finish the edit. - - Returns false if the finishing process was cancelled - (i.e. the cell editor is still on screen) - This method does not guarantee that the editing will finish. The validation - process can cause the finishing to be aborted. Developers should check the return value - or use IsCellEditing property after calling this method to see if the user is still - editing a cell. - True if it is likely that another cell is going to be - edited immediately after this cell finishes editing - - - - Finish the cell edit operation, writing changed data back to the model object - - This method does not trigger a Validating event, so it always finishes - the cell edit. - - - - Finish the cell edit operation, writing changed data back to the model object - - This method does not trigger a Validating event, so it always finishes - the cell edit. - True if it is likely that another cell is going to be - edited immediately after this cell finishes editing - - - - Remove all trace of any existing cell edit operation - - True if it is likely that another cell is going to be - edited immediately after this cell finishes editing - True if the cell editor should be disposed - - - - Force the hot item to be recalculated - - - - - Force the hot item to be recalculated - - - - - The mouse has moved to the given pt. See if the hot item needs to be updated - - Where is the mouse? - This is the main entry point for hot item handling - - - - The mouse has moved to the given pt. See if the hot item needs to be updated - - - This is the main entry point for hot item handling - - - - Update the given row using the current hot item information - - - - - - Update the given row using the given hot item information - - - - - - - - - Apply a style to the given row - - - - - - - Apply a style to a cell - - - - - - - - Remove hot item styling from the given row - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Add the given decoration to those on this list and make it appear - - The decoration - - A decoration scrolls with the listview. An overlay stays fixed in place. - - - - - Add the given overlay to those on this list and make it appear - - The overlay - - - - Draw all the decorations - - A Graphics - The items that were redrawn and whose decorations should also be redrawn - - - - Is the given decoration shown on this list - - The overlay - - - - Is the given overlay shown on this list? - - The overlay - - - - Hide any overlays. - - - This is only a temporary hiding -- the overlays will be shown - the next time the ObjectListView redraws. - - - - - Create and configure the empty list msg overlay - - - - - Initialize the standard image and text overlays - - - - - Make sure that any overlays are visible. - - - - - Refresh the display of the overlays - - - - - Refresh the display of just one overlays - - - - - Remove the given decoration from this list - - The decoration to remove - - - - Remove the given overlay to those on this list - - The overlay - - - - 创建一个筛选器,该筛选器将执行当前安装在可见列上的所有筛选。 - - - - - Do the actual work of filtering - - - - - - - - - 删除所有列筛选。 - - - - - 根据每列中定义的值筛选更新此ObjectListView的筛选 - - - - - When some setting related to filtering changes, this method is called. - - - - - 使用当前安装的模型过滤器更新所有渲染器 - - - - - 获取给定模型的复选框状态。 - - The model - 模型的复选框状态。默认为未选中。 - - - - 设置给定模型对象的复选框状态 - - The model to be remembered - The model's checkedness - The state given to the method - - - - 忽略任何持久复选框状态 - - - - - The callbacks for CellEditing events - - this - We could replace this with EventHandler<CellEditEventArgs> but that would break all - cell editing event code from v1.x. - - - - - A TreeListView combines an expandable tree structure with list view columns. - - - To support tree operations, two delegates must be provided: - - - - CanExpandGetter - - - This delegate must accept a model object and return a boolean indicating - if that model should be expandable. - - - - - ChildrenGetter - - - This delegate must accept a model object and return an IEnumerable of model - objects that will be displayed as children of the parent model. This delegate will only be called - for a model object if the CanExpandGetter has already returned true for that model. - - - - - ParentGetter - - - This delegate must accept a model object and return the parent model. - This delegate will only be called when HierarchicalCheckboxes is true OR when Reveal() is called. - - - - - The top level branches of the tree are set via the Roots property. SetObjects(), AddObjects() - and RemoveObjects() are interpreted as operations on this collection of roots. - - - To add new children to an existing branch, make changes to your model objects and then - call RefreshObject() on the parent. - - The tree must be a directed acyclic graph -- no cycles are allowed. Put more mundanely, - each model object must appear only once in the tree. If the same model object appears in two - places in the tree, the control will become confused. - - - - - This event is triggered when user input requests the expansion of a list item. - - - - - This event is triggered when user input requests the collapse of a list item. - - - - - This event is triggered after the expansion of a list item due to user input. - - - - - This event is triggered after the collapse of a list item due to user input. - - - - - Trigger the expanding event - - - - - - Trigger the collapsing event - - - - - - Trigger the expanded event - - - - - - Trigger the collapsed event - - - - - - This class handles drawing the tree structure of the primary column. - - - - - Create a TreeRenderer - - - - - Should the renderer draw glyphs at the expansion points? - - The expansion points will still function to expand/collapse even if this is false. - - - - Should the renderer draw lines connecting siblings? - - - - - Return the pen that will be used to draw the lines between branches - - - - - Should the renderer draw triangles as the expansion glyphs? - - - This looks best with ShowLines = false - - - - - Return the branch that the renderer is currently drawing. - - - - - Return the TreeListView for which the renderer is being used. - - - - - How many pixels will be reserved for each level of indentation? - - - - - The real work of drawing the tree is done in this method - - - - - - - Draw the expansion indicator - - - - - - - - Gets whether or not we should render using styles - - - - - Draw the expansion indicator using styles - - - - - - - - Is the mouse over a checkbox in this cell? - - - - - Draw the expansion indicator without using styles - - - - - - - - Draw the lines of the tree - - - - - - - - - - Do the hit test - - - - - - - - - Calculate the edit rect - - - - - - - - - - - Make a default TreeListView - - - - - This is the delegate that will be used to decide if a model object can be expanded. - - - - This is called *often* -- on every mouse move when required. It must be fast. - Don't do database lookups, linear searches, or pi calculations. Just return the - value of a property. - - - When this delegate is called, the TreeListView is not in a stable state. Don't make - calls back into the control. - - - - - - Gets whether or not this listview is capable of showing groups - - - - - This is the delegate that will be used to fetch the children of a model object - - - - This delegate will only be called if the CanExpand delegate has - returned true for the model object. - - - When this delegate is called, the TreeListView is not in a stable state. Don't do anything - that will result in calls being made back into the control. - - - - - - This is the delegate that will be used to fetch the parent of a model object - - The parent of the given model, or null if the model doesn't exist or - if the model is a root - - - - Get or set the collection of model objects that are checked. - When setting this property, any row whose model object isn't - in the given collection will be unchecked. Setting to null is - equivalent to unchecking all. - - - - This property returns a simple collection. Changes made to the returned - collection do NOT affect the list. This is different to the behaviour of - CheckedIndicies collection. - - - When getting CheckedObjects, the performance of this method is O(n) where n is the number of checked objects. - When setting CheckedObjects, the performance of this method is O(n) where n is the number of checked objects plus - the number of objects to be checked. - - - If the ListView is not currently showing CheckBoxes, this property does nothing. It does - not remember any check box settings made. - - - - - - Gets or sets the model objects that are expanded. - - - This can be used to expand model objects before they are seen. - - Setting this does *not* force the control to rebuild - its display. You need to call RebuildAll(true). - - - - - - Gets or sets the filter that is applied to our whole list of objects. - TreeListViews do not currently support whole list filters. - - - - - Gets or sets whether this tree list view will display hierarchical checkboxes. - Hierarchical checkboxes is when a parent's "checkedness" is calculated from - the "checkedness" of its children. If all children are checked, the parent - will be checked. If all children are unchecked, the parent will also be unchecked. - If some children are checked and others are not, the parent will be indeterminate. - - - Hierarchical checkboxes don't work with either CheckStateGetters or CheckedAspectName - (which is basically the same thing). This is because it is too expensive to build the - initial state of the control if these are installed, since the control would have to walk - *every* branch recursively since a single bottom level leaf could change the checkedness - of the top root. - - - - - Gets or sets the collection of root objects of the tree - - - - - Gets the collection of objects that will be considered when creating clusters - (which are used to generate Excel-like column filters) - - - - - After expanding a branch, should the TreeListView attempts to show as much of the - revealed descendents as possible. - - - - - The model objects that form the top level branches of the tree. - - Setting this does NOT reset the state of the control. - In particular, it does not collapse branches. - - - - Make sure that at least one column is displaying a tree. - If no columns is showing the tree, make column 0 do it. - - - - - Gets or sets the renderer that will be used to draw the tree structure. - Setting this to null resets the renderer to default. - - If a column is currently rendering the tree, the renderer - for that column will be replaced. If no column is rendering the tree, - column 0 will be given this renderer. - - - - This is the delegate that will be used to create the underlying Tree structure - that the TreeListView uses to manage the information about the tree. - - - The factory must not return null. - - Most users of TreeListView will never have to use this delegate. - - - - - - Should a wait cursor be shown when a branch is being expanded? - - When this is true, the wait cursor will be shown whilst the children of the - branch are being fetched. If the children of the branch have already been cached, - the cursor will not change. - - - - Gets the model that is used to manage the tree structure - - - Don't mess with this property unless you really know what you are doing. - If you don't already know what it's for, you don't need it. - - - - Return true if the branch at the given model is expanded - - - - - - - Collapse the subtree underneath the given model - - - - - - Collapse all subtrees within this control - - - - - Remove all items from this list - - This method can safely be called from background threads. - - - - Collapse all roots and forget everything we know about all models - - - - - Expand the subtree underneath the given model object - - - - - - Expand all the branches within this tree recursively. - - Be careful: this method could take a long time for large trees. - - - - Completely rebuild the tree structure - - If true, the control will try to preserve selection and expansion - - - - Completely rebuild the tree structure - - If not null, this list of objects will be selected after the tree is rebuilt - If not null, this collection of objects will be expanded after the tree is rebuilt - If not null, this collection of objects will be checked after the tree is rebuilt - - - - Unroll all the ancestors of the given model and make sure it is then visible. - - This works best when a ParentGetter is installed. - The object to be revealed - If true, the model will be selected and focused after being revealed - True if the object was found and revealed. False if it was not found. - - - - Update the rows that are showing the given objects - - - - - Change the check state of the given object to be the given state. - - - If the given model object isn't in the list, we still try to remember - its state, in case it is referenced in the future. - - - True if the checkedness of the model changed - - - - Toggle the expanded state of the branch at the given model object - - - - - - Return whether or not the given model can expand. - - - The given model must have already been seen in the tree - - - - Return the model object that is the parent of the given model object. - - - - The given model must have already been seen in the tree. - - - - Return the collection of model objects that are the children of the - given model as they exist in the tree at the moment. - - - - - This method returns the collection of children as the tree knows them. If the given - model has never been presented to the user (e.g. it belongs to a parent that has - never been expanded), then this method will return an empty collection. - - Because of this, if you want to traverse the whole tree, this is not the method to use. - It's better to traverse the your data model directly. - - - If the given model has not already been seen in the tree or - if it is not expandable, an empty collection will be returned. - - - - - - Delegates of this type are use to decide if the given model object can be expanded - - The model under consideration - Can the given model be expanded? - - - - Delegates of this type are used to fetch the children of the given model object - - The parent whose children should be fetched - An enumerable over the children - - - - Delegates of this type are used to fetch the parent of the given model object. - - The child whose parent should be fetched - The parent of the child or null if the child is a root - - - - Delegates of this type are used to create a new underlying Tree structure. - - The view for which the Tree is being created - A subclass of Tree - - - - Handle a left button down event - - - - - - - Create a OLVListItem for given row index - - The index of the row that is needed - An OLVListItem - This differs from the base method by also setting up the IndentCount property. - - - - Reinitialize the Tree structure - - - - - Recalculate the state of the checkboxes of all the items in the given list - and their ancestors. - - This only makes sense when HierarchicalCheckboxes is true. - - - - - Recalculate the hierarchy state of the given item and its ancestors - - This only makes sense when HierarchicalCheckboxes is true. - - - - - Yield the unique ancestors of the given collection of objects. - The order of the ancestors is guaranteed to be deeper objects first. - Roots will always be last. - - - Unique ancestors of the given objects - - - - Return all the ancestors of the given model - - - - This uses ParentGetter if possible. - - If the given model is a root OR if the model doesn't exist, the collection will be empty - - The model whose ancestors should be calculated - Return a collection of ancestors of the given model. - - - - The application is idle and a SelectionChanged event has been scheduled - - - - - - - Decide if the given key event should be handled as a normal key input to the control? - - - - - - - Handle focus being lost, including making sure that the whole control is redrawn. - - - - - - Handle the keyboard input to mimic a TreeView. - - - Was the key press handled? - - - - A Tree object represents a tree structure data model that supports both - tree and flat list operations as well as fast access to branches. - - If you create a subclass of Tree, you must install it in the TreeListView - via the TreeFactory delegate. - - - - Create a Tree - - - - - - This is the delegate that will be used to decide if a model object can be expanded. - - - - - This is the delegate that will be used to fetch the children of a model object - - This delegate will only be called if the CanExpand delegate has - returned true for the model object. - - - - Get or return the top level model objects in the tree - - - - - What tree view is this Tree the model for? - - - - - Collapse the subtree underneath the given model - - The model to be collapsed. If the model isn't in the tree, - or if it is already collapsed, the command does nothing. - The index of the model in flat list version of the tree - - - - Collapse all branches in this tree - - Nothing useful - - - - Expand the subtree underneath the given model object - - The model to be expanded. - The index of the model in flat list version of the tree - - If the model isn't in the tree, - if it cannot be expanded or if it is already expanded, the command does nothing. - - - - - Expand all branches in this tree - - Return the index of the first branch that was expanded - - - - Return the Branch object that represents the given model in the tree - - The model whose branches is to be returned - The branch that represents the given model, or null if the model - isn't in the tree. - - - - Return the number of visible descendents that are below the given model. - - The model whose descendent count is to be returned - The number of visible descendents. 0 if the model doesn't exist or is collapsed - - - - Rebuild the children of the given model, refreshing any cached information held about the given object - - - The index of the model in flat list version of the tree - - - - Is the given model expanded? - - - - - - - Remember whether or not the given model was expanded - - - - - - - Insert the children of the given branch into the given position - - The branch whose children should be inserted - The index where the children should be inserted - - - - Rebuild our flat internal list of objects. - - - - - Rebuild our reverse index that maps an object to its location - in the filteredObjectList array. - - - - - - Create a new branch within this tree - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Sort the tree on the given column and in the given order - - - - - - - - - - - - - Add the given collection of objects to the roots of this tree - - - - - - - - - - - - - Remove all of the given objects from the roots of the tree. - Any objects that is not already in the roots collection is ignored. - - - - - - Set the roots of this tree to be the given collection - - - - - - Update/replace the nth object with the given object - - - - - - - - - - - - - - Is this list currently being filtered? - - - - - Should the given model be included in this control? - - The model to consider - True if it will be included - - - - - - - - - - - - - - A Branch represents a sub-tree within a tree - - - - - Indicators for branches - - - - - FirstBranch of tree - - - - - LastChild of parent - - - - - OnlyBranch of tree - - - - - Create a Branch - - - - - - - - Get the ancestor branches of this branch, with the 'oldest' ancestor first. - - - - - Can this branch be expanded? - - - - - Gets or sets our children - - - - - Get/set the model objects that are beneath this branch - - - - - Gets a list of all the branches that survive filtering - - - - - Gets or set whether this branch is expanded - - - - - Return true if this branch is the first branch of the entire tree - - - - - Return true if this branch is the last child of its parent - - - - - Return true if this branch is the only top level branch - - - - - Gets the depth level of this branch - - - - - Gets or sets which model is represented by this branch - - - - - Return the number of descendents of this branch that are currently visible - - - - - - Gets or sets our parent branch - - - - - Gets or sets our overall tree - - - - - Is this branch currently visible? A branch is visible - if it has no parent (i.e. it's a root), or its parent - is visible and expanded. - - - - - Clear any cached information that this branch is holding - - - - - Collapse this branch - - - - - Expand this branch - - - - - Expand this branch recursively - - - - - Collapse all branches in this tree - - Nothing useful - - - - Fetch the children of this branch. - - This should only be called when CanExpand is true. - - - - Collapse the visible descendents of this branch into list of model objects - - - - - - Flatten this branch's visible descendents onto the given list. - - - The branch itself is not included in the list. - - - - Force a refresh of all children recursively - - - - - Sort the sub-branches and their descendents so they are ordered according - to the given comparer. - - The comparer that orders the branches - - - - This class sorts branches according to how their respective model objects are sorted - - - - - Create a BranchComparer - - - - - - Order the two branches - - - - - - - - Let the world know that a cell edit operation is beginning or ending - - - - - Create an event args - - - - - - - - - - Change this to true to cancel the cell editing operation. - - - During the CellEditStarting event, setting this to true will prevent the cell from being edited. - During the CellEditFinishing event, if this value is already true, this indicates that the user has - cancelled the edit operation and that the handler should perform cleanup only. Setting this to true, - will prevent the ObjectListView from trying to write the new value into the model object. - - - - - During the CellEditStarting event, this can be modified to be the control that you want - to edit the value. You must fully configure the control before returning from the event, - including its bounds and the value it is showing. - During the CellEditFinishing event, you can use this to get the value that the user - entered and commit that value to the model. Changing the control during the finishing - event has no effect. - - - - - The column of the cell that is going to be or has been edited. - - - - - The model object of the row of the cell that is going to be or has been edited. - - - - - The listview item of the cell that is going to be or has been edited. - - - - - The data value of the cell as it stands in the control. - - Only validate during Validating and Finishing events. - - - - The index of the cell that is going to be or has been edited. - - - - - The data value of the cell before the edit operation began. - - - - - The bounds of the cell that is going to be or has been edited. - - - - - Gets or sets whether the control used for editing should be auto matically disposed - when the cell edit operation finishes. Defaults to true - - If the control is expensive to create, you might want to cache it and reuse for - for various cells. If so, you don't want ObjectListView to dispose of the control automatically - - - - Event blocks for events that can be cancelled - - - - - Has this event been cancelled by the event handler? - - - - - BeforeSorting - - - - - Create BeforeSortingEventArgs - - - - - - - - - Create BeforeSortingEventArgs - - - - - - - - - - - Did the event handler already do the sorting for us? - - - - - What column will be used for grouping - - - - - How will groups be ordered - - - - - What column will be used for sorting - - - - - What order will be used for sorting. None means no sorting. - - - - - What column will be used for secondary sorting? - - - - - What order will be used for secondary sorting? - - - - - Sorting has just occurred. - - - - - Create a AfterSortingEventArgs - - - - - - - - - - - Create a AfterSortingEventArgs - - - - - - What column was used for grouping? - - - - - What ordering was used for grouping? - - - - - What column was used for sorting? - - - - - What ordering was used for sorting? - - - - - What column was used for secondary sorting? - - - - - What order was used for secondary sorting? - - - - - This event is triggered when the contents of a list have changed - and we want the world to have a chance to filter the list. - - - - - Create a FilterEventArgs - - - - - - Gets or sets what objects are being filtered - - - - - Gets or sets what objects survived the filtering - - - - - This event is triggered after the items in the list have been changed, - either through SetObjects, AddObjects or RemoveObjects. - - - - - Create a ItemsChangedEventArgs - - - - - Constructor for this event when used by a virtual list - - - - - - - Gets how many items were in the list before it changed - - - - - Gets how many objects are in the list after the change. - - - - - This event is triggered by AddObjects before any change has been made to the list. - - - - - Create an ItemsAddingEventArgs - - - - - - Create an ItemsAddingEventArgs - - - - - - - Gets or sets where the collection is going to be inserted. - - - - - Gets or sets the objects to be added to the list - - - - - This event is triggered by SetObjects before any change has been made to the list. - - - When used with a virtual list, OldObjects will always be null. - - - - - Create ItemsChangingEventArgs - - - - - - - Gets the objects that were in the list before it change. - For virtual lists, this will always be null. - - - - - Gets or sets the objects that will be in the list after it changes. - - - - - This event is triggered by RemoveObjects before any change has been made to the list. - - - - - Create an ItemsRemovingEventArgs - - - - - - Gets or sets the objects that will be removed - - - - - Triggered after the user types into a list - - - - - Create an AfterSearchingEventArgs - - - - - - - Gets the string that was actually searched for - - - - - Gets or sets whether an the event handler already handled this event - - - - - Gets the index of the row that was selected by the search. - -1 means that no row was matched - - - - - Triggered when the user types into a list - - - - - Create BeforeSearchingEventArgs - - - - - - - Gets or sets the string that will be found by the search routine - - Modifying this value does not modify the memory of what the user has typed. - When the user next presses a character, the search string will revert to what - the user has actually typed. - - - - Gets or sets the index of the first row that will be considered to matching. - - - - - The parameter block when telling the world about a cell based event - - - - - Gets the ObjectListView that is the source of the event - - - - - Gets the model object under the cell - - This is null for events triggered by the header. - - - - Gets the row index of the cell - - This is -1 for events triggered by the header. - - - - Gets the column index of the cell - - This is -1 when the view is not in details view. - - - - Gets the column of the cell - - This is null when the view is not in details view. - - - - Gets the location of the mouse at the time of the event - - - - - Gets the state of the modifier keys at the time of the event - - - - - Gets the item of the cell - - - - - Gets the subitem of the cell - - This is null when the view is not in details view and - for event triggered by the header - - - - Gets the HitTest object that determined which cell was hit - - - - - Gets or set if this event completelely handled. If it was, no further processing - will be done for it. - - - - - Tells the world that a cell was clicked - - - - - Gets or sets the number of clicks associated with this event - - - - - Tells the world that a cell was right clicked - - - - - Gets or sets the menu that should be displayed as a result of this event. - - The menu will be positioned at Location, so changing that property changes - where the menu will be displayed. - - - - Tell the world that the mouse is over a given cell - - - - - Tells the world that the frozen-ness of the ObjectListView has changed. - - - - - Make a FreezeEventArgs - - - - - - How frozen is the control? 0 means that the control is unfrozen, - more than 0 indicates froze. - - - - - The parameter block when telling the world that a tool tip is about to be shown. - - - - - Gets the tooltip control that is triggering the tooltip event - - - - - Gets or sets the text should be shown on the tooltip for this event - - Setting this to empty or null prevents any tooltip from showing - - - - In what direction should the text for this tooltip be drawn? - - - - - Should the tooltip for this event been shown in bubble style? - - This doesn't work reliable under Vista - - - - What color should be used for the background of the tooltip - - Setting this does nothing under Vista - - - - What color should be used for the foreground of the tooltip - - Setting this does nothing under Vista - - - - What string should be used as the title for the tooltip for this event? - - - - - Which standard icon should be used for the tooltip for this event - - - - - How many milliseconds should the tooltip remain before it automatically - disappears. - - - - - What font should be used to draw the text of the tooltip? - - - - - Common information to all hyperlink events - - - - - Gets the ObjectListView that is the source of the event - - - - - Gets the model object under the cell - - - - - Gets the row index of the cell - - - - - Gets the column index of the cell - - This is -1 when the view is not in details view. - - - - Gets the column of the cell - - This is null when the view is not in details view. - - - - Gets the item of the cell - - - - - Gets the subitem of the cell - - This is null when the view is not in details view - - - - Gets the ObjectListView that is the source of the event - - - - - Gets or set if this event completelely handled. If it was, no further processing - will be done for it. - - - - - - - - - - Gets the ObjectListView that is the source of the event - - - - - Gets the model object under the cell - - - - - Gets the column of the cell - - This is null when the view is not in details view. - - - - Gets the text of the cell - - - - - Gets or sets whether or not this cell is a hyperlink. - Defaults to true for enabled rows and false for disabled rows. - - - - - Gets or sets the url that should be invoked when this cell is clicked. - - Setting this to None or String.Empty means that this cell is not a hyperlink - - - - - - - - Gets the ObjectListView that is the source of the event - - - - - Gets the item of the cell - - - - - Gets the model object under the cell - - - - - Gets the row index of the cell - - - - - Gets the display index of the row - - - - - Should events be triggered for each cell in this row? - - - - - Parameter block for FormatCellEvent - - - - - Gets the column index of the cell - - This is -1 when the view is not in details view. - - - - Gets the column of the cell - - This is null when the view is not in details view. - - - - Gets the subitem of the cell - - This is null when the view is not in details view - - - - Gets the model value that is being displayed by the cell. - - This is null when the view is not in details view - - - - The event args when a hyperlink is clicked - - - - - Gets the url that was associated with this cell. - - - - - The event args when the check box in a column header is changing - - - - - Get the column whose checkbox is changing - - - - - Get or set the new state that should be used by the column - - - - - The event args when the hot item changed - - - - - Gets or set if this event completelely handled. If it was, no further processing - will be done for it. - - - - - Gets the part of the cell that the mouse is over - - - - - Gets an extended indication of the part of item/subitem/group that the mouse is currently over - - - - - Gets the index of the column that the mouse is over - - In non-details view, this will always be 0. - - - - Gets the index of the row that the mouse is over - - - - - Gets the group that the mouse is over - - - - - Gets the part of the cell that the mouse used to be over - - - - - Gets an extended indication of the part of item/subitem/group that the mouse used to be over - - - - - Gets the index of the column that the mouse used to be over - - - - - Gets the index of the row that the mouse used to be over - - - - - Gets the group that the mouse used to be over - - - - - Returns a string that represents the current object. - - - A string that represents the current object. - - 2 - - - - Let the world know that a checkbox on a subitem is changing - - - - - Create a new event block - - - - - - - - - - The column of the cell that is having its checkbox changed. - - - - - The model object of the row of the cell that is having its checkbox changed. - - - - - The listview item of the cell that is having its checkbox changed. - - - - - The current check state of the cell. - - - - - The proposed new check state of the cell. - - - - - The index of the cell that is going to be or has been edited. - - - - - This event argument block is used when groups are created for a list. - - - - - Create a CreateGroupsEventArgs - - - - - - Gets the settings that control the creation of groups - - - - - Gets or sets the groups that should be used - - - - - Has this event been cancelled by the event handler? - - - - - This event argument block is used when the text of a group task is clicked - - - - - Create a GroupTaskClickedEventArgs - - - - - - Gets which group was clicked - - - - - This event argument block is used when a group is about to expand or collapse - - - - - Create a GroupExpandingCollapsingEventArgs - - - - - - Gets which group is expanding/collapsing - - - - - Gets whether this event is going to expand the group. - If this is false, the group must be collapsing. - - - - - This event argument block is used when the state of group has changed (collapsed, selected) - - - - - Create a GroupStateChangedEventArgs - - - - - - - - Gets whether the group was collapsed by this event - - - - - Gets whether the group was focused by this event - - - - - Gets whether the group was selected by this event - - - - - Gets whether the group was uncollapsed by this event - - - - - Gets whether the group was unfocused by this event - - - - - Gets whether the group was unselected by this event - - - - - Gets which group had its state changed - - - - - Gets the previous state of the group - - - - - Gets the new state of the group - - - - - This event argument block is used when a branch of a tree is about to be expanded - - - - - Create a new event args - - - - - - - Gets the model that is about to expand. If null, all branches are going to be expanded. - - - - - Gets the OLVListItem that is about to be expanded - - - - - This event argument block is used when a branch of a tree has just been expanded - - - - - Create a new event args - - - - - - - Gets the model that is was expanded. If null, all branches were expanded. - - - - - Gets the OLVListItem that was expanded - - - - - This event argument block is used when a branch of a tree is about to be collapsed - - - - - Create a new event args - - - - - - - Gets the model that is about to collapse. If this is null, all models are going to collapse. - - - - - Gets the OLVListItem that is about to be collapsed. Can be null - - - - - This event argument block is used when a branch of a tree has just been collapsed - - - - - Create a new event args - - - - - - - Gets the model that is was collapsed. If null, all branches were collapsed - - - - - Gets the OLVListItem that was collapsed - - - - - This class contains all the settings used when groups are created - - - - - Create a GroupingParameters - - - - - - - - - - - - - - - Gets or sets the ObjectListView being grouped - - - - - Gets or sets the column used to create groups - - - - - In what order will the groups themselves be sorted? - - - - - If this is set, this comparer will be used to order the groups - - - - - If this is set, this comparer will be used to order items within each group - - - - - Gets or sets the column that will be the primary sort - - - - - Gets or sets the ordering for the primary sort - - - - - Gets or sets the column used for secondary sorting - - - - - Gets or sets the ordering for the secondary sort - - - - - Gets or sets the title format used for groups with zero or more than one element - - - - - Gets or sets the title format used for groups with only one element - - - - - Gets or sets whether the items should be sorted by the primary column - - - - - These values indicate what is the state of the group. These values - are taken directly from the SDK and many are not used by ObjectListView. - - - - - Normal - - - - - Collapsed - - - - - Hidden - - - - - NoHeader - - - - - Can be collapsed - - - - - Has focus - - - - - Is Selected - - - - - Is subsetted - - - - - Subset link has focus - - - - - All styles - - - - - This mask indicates which members of a LVGROUP have valid data. These values - are taken directly from the SDK and many are not used by ObjectListView. - - - - - No mask - - - - - Group has header - - - - - Group has footer - - - - - Group has state - - - - - - - - - - - - - - - pszSubtitle is valid - - - - - pszTask is valid - - - - - pszDescriptionTop is valid - - - - - pszDescriptionBottom is valid - - - - - iTitleImage is valid - - - - - iExtendedImage is valid - - - - - iFirstItem and cItems are valid - - - - - pszSubsetTitle is valid - - - - - readonly, cItems holds count of items in visible subset, iFirstItem is valid - - - - - This mask indicates which members of a GROUPMETRICS structure are valid - - - - - - - - - - - - - - - - - - - - - - - - - Instances of this class enhance the capabilities of a normal ListViewGroup, - enabling the functionality that was released in v6 of the common controls. - - - - In this implementation (2009-09), these objects are essentially passive. - Setting properties does not automatically change the associated group in - the listview. Collapsed and Collapsible are two exceptions to this and - give immediate results. - - - This really should be a subclass of ListViewGroup, but that class is - sealed (why is that?). So this class provides the same interface as a - ListViewGroup, plus many other new properties. - - - - - - Create an OLVGroup - - - - - 按指定标题创建分组 - - 分组标题 - - - - Gets or sets the bottom description of the group - - - Descriptions only appear when group is centered and there is a title image - - - - - Gets or sets whether or not this group is collapsed - - - - - Gets or sets whether or not this group can be collapsed - - - - - Gets or sets some representation of the contents of this group - - This is user defined (like Tag) - - - - Gets whether this group has been created. - - - - - Gets or sets the int or string that will select the extended image to be shown against the title - - - - - Gets or sets the footer of the group - - - - - Gets the internal id of our associated ListViewGroup. - - - - - Gets or sets the header of the group - - - - - Gets or sets the horizontal alignment of the group header - - - - - Gets or sets the internally created id of the group - - - - - Gets or sets ListViewItems that are members of this group - - Listener of the BeforeCreatingGroups event can populate this collection. - It is only used on non-virtual lists. - - - - Gets or sets the key that was used to partition objects into this group - - This is user defined (like Tag) - - - - Gets the ObjectListView that this group belongs to - - If this is null, the group has not yet been created. - - - - Gets or sets the name of the group - - As of 2009-09-01, this property is not used. - - - - Gets or sets whether this group is focused - - - - - Gets or sets whether this group is selected - - - - - Gets or sets the text that will show that this group is subsetted - - - As of WinSDK v7.0, subsetting of group is officially unimplemented. - We can get around this using undocumented interfaces and may do so. - - - - - Gets or set the subtitleof the task - - - - - Gets or sets the value by which this group will be sorted. - - - - - Gets or sets the state of the group - - - - - Gets or sets which bits of State are valid - - - - - Gets or sets whether this group is showing only a subset of its elements - - - As of WinSDK v7.0, this property officially does nothing. - - - - - Gets or sets the user-defined data attached to this group - - - - - Gets or sets the task of this group - - This task is the clickable text that appears on the right margin - of the group header. - - - - Gets or sets the int or string that will select the image to be shown against the title - - - - - Gets or sets the top description of the group - - - Descriptions only appear when group is centered and there is a title image - - - - - Gets or sets the number of items that are within this group. - - This should only be used for virtual groups. - - - - Gets or sets the ListViewGroup that is shadowed by this group. - - For virtual groups, this will always be null. - - - - Calculate the index into the group image list of the given image selector - - - - - - - Convert this object to a string representation - - - - - - Insert a native group into the underlying Windows control, - *without* using a ListViewGroup - - - This is used when creating virtual groups - - - - Insert a native group into the underlying control via a ListViewGroup - - - - - - Change the members of the group to match the current contents of Items, - using a ListViewGroup - - - - - Create a native LVGROUP structure that matches this group - - - - - Get the current state of this group from the underlying control - - - - - Get the current state of this group from the underlying control - - - - - An instance of Munger gets a value from or puts a value into a target object. The property - to be peeked (or poked) is determined from a string. The peeking or poking is done using reflection. - - - Name of the aspect to be peeked can be a field, property or parameterless method. The name of an - aspect to poke can be a field, writable property or single parameter method. - - Aspect names can be dotted to chain a series of references. - - Order.Customer.HomeAddress.State - - - - - Create a do nothing Munger - - - - - Create a Munger that works on the given aspect name - - The name of the - - - - A helper method to put the given value into the given aspect of the given object. - - This method catches and silently ignores any errors that occur - while modifying the target object - The object to be modified - The name of the property/field to be modified - The value to be assigned - Did the modification work? - - - - Gets or sets whether Mungers will silently ignore missing aspect errors. - - - - By default, if a Munger is asked to fetch a field/property/method - that does not exist from a model, it returns an error message, since that - condition is normally a programming error. There are some use cases where - this is not an error, and the munger should simply keep quiet. - - By default this is true during release builds. - - - - - The name of the aspect that is to be peeked or poked. - - - - This name can be a field, property or parameter-less method. - - - The name can be dotted, which chains references. If any link in the chain returns - null, the entire chain is considered to return null. - - - "DateOfBirth" - "Owner.HomeAddress.Postcode" - - - - Extract the value indicated by our AspectName from the given target. - - If the aspect name is null or empty, this will return null. - The object that will be peeked - The value read from the target - - - - Extract the value indicated by our AspectName from the given target, raising exceptions - if the munger fails. - - If the aspect name is null or empty, this will return null. - The object that will be peeked - The value read from the target - - - - Poke the given value into the given target indicated by our AspectName. - - - - If the AspectName is a dotted path, all the selectors bar the last - are used to find the object that should be updated, and the last - selector is used as the property to update on that object. - - - So, if 'target' is a Person and the AspectName is "HomeAddress.Postcode", - this method will first fetch "HomeAddress" property, and then try to set the - "Postcode" property on the home address object. - - - The object that will be poked - The value that will be poked into the target - bool indicating whether the put worked - - - - Gets the list of SimpleMungers that match our AspectName - - - - - Convert a possibly dotted AspectName into a list of SimpleMungers - - - - - - - Evaluate the given chain of SimpleMungers against an initial target. - - - - - - - - A SimpleMunger deals with a single property/field/method on its target. - - - Munger uses a chain of these resolve a dotted aspect name. - - - - - Create a SimpleMunger - - - - - - The name of the aspect that is to be peeked or poked. - - - - This name can be a field, property or method. - When using a method to get a value, the method must be parameter-less. - When using a method to set a value, the method must accept 1 parameter. - - - It cannot be a dotted name. - - - - - - Get a value from the given target - - - - - - - Poke the given value into the given target indicated by our AspectName. - - The object that will be poked - The value that will be poked into the target - bool indicating if the put worked - - - - These exceptions are raised when a munger finds something it cannot process - - - - - Create a MungerException - - - - - - - - Get the munger that raised the exception - - - - - Gets the target that threw the exception - - - - - Wrapper for all native method calls on ListView controls - - - - - Put an image under the ListView. - - - - The ListView must have its handle created before calling this. - - - This doesn't work very well. Specifically, it doesn't play well with owner drawn, - and grid lines are drawn over it. - - - - The image to be used as the background. If this is null, any existing background image will be cleared. - If this is true, the image is pinned to the bottom right and does not scroll. The other parameters are ignored - If this is true, the image will be tiled to fill the whole control background. The offset parameters will be ignored. - If both watermark and tiled are false, this indicates the horizontal percentage where the image will be placed. 0 is absolute left, 100 is absolute right. - If both watermark and tiled are false, this indicates the vertical percentage where the image will be placed. - - - - - Flags controlling how the Image List item is - drawn - - - - - Draw item normally. - - - - - Draw item transparently. - - - - - Draw item blended with 25% of the specified foreground colour - or the Highlight colour if no foreground colour specified. - - - - - Draw item blended with 50% of the specified foreground colour - or the Highlight colour if no foreground colour specified. - - - - - Draw the icon's mask - - - - - Draw the icon image without using the mask - - - - - Draw the icon using the ROP specified. - - - - - Preserves the alpha channel in dest. XP only. - - - - - Scale the image to cx, cy instead of clipping it. XP only. - - - - - Scale the image to the current DPI of the display. XP only. - - - - - Enumeration containing XP ImageList Draw State options - - - - - The image state is not modified. - - - - - Adds a glow effect to the icon, which causes the icon to appear to glow - with a given color around the edges. (Note: does not appear to be implemented) - - - - - Adds a drop shadow effect to the icon. (Note: does not appear to be implemented) - - - - - Saturates the icon by increasing each color component - of the RGB triplet for each pixel in the icon. (Note: only ever appears to result in a completely unsaturated icon) - - - - - Alpha blends the icon. Alpha blending controls the transparency - level of an icon, according to the value of its alpha channel. - (Note: does not appear to be implemented). - - - - - Draws an image using the specified flags and state on XP systems. - - The image list from which an item will be drawn - Device context to draw to - Index of image to draw - X Position to draw at - Y Position to draw at - Drawing flags - Width to draw - Height to draw - State flags - - - - Make sure the ListView has the extended style that says to display subitem images. - - This method must be called after any .NET call that update the extended styles - since they seem to erase this setting. - The listview to send a m to - - - - Change the virtual list size of the given ListView (which must be in virtual mode) - - This will not change the scroll position - The listview to send a message to - How many rows should the list have? - - - - Make sure the ListView has the extended style that says to display subitem images. - - This method must be called after any .NET call that update the extended styles - since they seem to erase this setting. - The listview to send a m to - - - - - - Calculates the number of items that can fit vertically in the visible area of a list-view (which - must be in details or list view. - - The listView - Number of visible items per page - - - - For the given item and subitem, make it display the given image - - The listview to send a m to - row number (0 based) - subitem (0 is the item itself) - index into the image list - - - - Setup the given column of the listview to show the given image to the right of the text. - If the image index is -1, any previous image is cleared - - The listview to send a m to - Index of the column to modifiy - - Index into the small image list - - - - Does this version of the operating system have builtin sort indicators? - - Are there builtin sort indicators - XP and later have these - - - - Return the bounds of the update region on the given control. - - The BeginPaint() system call validates the update region, effectively wiping out this information. - So this call has to be made before the BeginPaint() call. - The control whose update region is be calculated - A rectangle - - - - Validate an area of the given control. A validated area will not be repainted at the next redraw. - - The control to be validated - The area of the control to be validated - - - - Select all rows on the given listview - - The listview whose items are to be selected - - - - Deselect all rows on the given listview - - The listview whose items are to be deselected - - - - Deselect a single row - - - - - - - Set the item state on the given item - - The listview whose item's state is to be changed - The index of the item to be changed - Which bits of the value are to be set? - The value to be set - - - - Scroll the given listview by the given deltas - - - - - true if the scroll succeeded - - - - Return the handle to the header control on the given list - - The listview whose header control is to be returned - The handle to the header control - - - - Return the edges of the given column. - - - - A Point holding the left and right co-ords of the column. - -1 means that the sides could not be retrieved. - - - - Return the edges of the given column. - - - - A Point holding the left and right co-ords of the column. - -1 means that the sides could not be retrieved. - - - - Return the index of the column of the header that is under the given point. - Return -1 if no column is under the pt - - The list we are interested in - The client co-ords - The index of the column under the point, or -1 if no column header is under that point - - - - Return the index of the divider under the given point. Return -1 if no divider is under the pt - - The list we are interested in - The client co-ords - The index of the divider under the point, or -1 if no divider is under that point - - - - Get the scroll position of the given scroll bar - - - - - - - - Change the z-order to the window 'toBeMoved' so it appear directly on top of 'reference' - - - - - - - - Make the given control/window a topmost window - - - - - - - Change the size of the window without affecting any other attributes - - - - - - - - - Show the given window without activating it - - The window to show - - - - Mark the given column as being selected. - - - The OLVColumn or null to clear - - This method works, but it prevents subitems in the given column from having - back colors. - - - - - A simple-minded implementation of a Dictionary that can handle null as a key. - - The type of the dictionary key - The type of the values to be stored - This is not a full implementation and is only meant to handle - collecting groups by their keys, since groups can have null as a key value. - - - - OLVListItems are specialized ListViewItems that know which row object they came from, - and the row index at which they are displayed, even when in group view mode. They - also know the image they should draw against themselves - - - - - Create a OLVListItem for the given row object - - - - - Create a OLVListItem for the given row object, represented by the given string and image - - - - - Gets the bounding rectangle of the item, including all subitems - - - - - Gets or sets how many pixels will be left blank around each cell of this item - - This setting only takes effect when the control is owner drawn. - - - - Gets or sets how the cells of this item will be vertically aligned - - This setting only takes effect when the control is owner drawn. - - - - Gets or sets the checkedness of this item. - - - Virtual lists don't handle checkboxes well, so we have to intercept attempts to change them - through the items, and change them into something that will work. - Unfortunately, this won't work if this property is set through the base class, since - the property is not declared as virtual. - - - - - Enable tri-state checkbox. - - .NET's Checked property was not built to handle tri-state checkboxes, - and will return True for both Checked and Indeterminate states. - - - - Gets if this item has any decorations set for it. - - - - - Gets or sets the decoration that will be drawn over this item - - Setting this replaces all other decorations - - - - Gets the collection of decorations that will be drawn over this item - - - - - Gets whether or not this row can be selected and activated - - - - - Gets whether any cell on this item is showing a hyperlink - - - - - Get or set the image that should be shown against this item - - This can be an Image, a string or an int. A string or an int will - be used as an index into the small image list. - - - - Gets or sets the the model object that is source of the data for this list item. - - - - - Gets or sets the color that will be used for this row's background when it is selected and - the control is focused. - - - To work reliably, this property must be set during a FormatRow event. - - If this is not set, the normal selection BackColor will be used. - - - - - - Gets or sets the color that will be used for this row's foreground when it is selected and - the control is focused. - - - To work reliably, this property must be set during a FormatRow event. - - If this is not set, the normal selection ForeColor will be used. - - - - - - Return the sub item at the given index - - Index of the subitem to be returned - An OLVListSubItem - - - - Return bounds of the given subitem - - This correctly calculates the bounds even for column 0. - - - - A ListViewSubItem that knows which image should be drawn against it. - - - - - Create a OLVListSubItem - - - - - Create a OLVListSubItem that shows the given string and image - - - - - Gets or sets how many pixels will be left blank around this cell - - This setting only takes effect when the control is owner drawn. - - - - Gets or sets how this cell will be vertically aligned - - This setting only takes effect when the control is owner drawn. - - - - Gets or sets the model value is being displayed by this subitem. - - - - - Gets if this subitem has any decorations set for it. - - - - - Gets or sets the decoration that will be drawn over this item - - Setting this replaces all other decorations - - - - Gets the collection of decorations that will be drawn over this item - - - - - Get or set the image that should be shown against this item - - This can be an Image, a string or an int. A string or an int will - be used as an index into the small image list. - - - - Gets or sets the url that should be invoked when this subitem is clicked - - - - - Gets or sets whether this cell is selected - - - - - Return the state of the animatation of the image on this subitem. - Null means there is either no image, or it is not an animation - - - - - An indication of where a hit was within ObjectListView cell - - - - - Nowhere - - - - - On the text - - - - - On the image - - - - - On the checkbox - - - - - On the expand button (TreeListView) - - - - - in a button (cell must have ButtonRenderer) - - - - - in the cell but not in any more specific location - - - - - UserDefined location1 (used for custom renderers) - - - - - On the expand/collapse widget of the group - - - - - Somewhere on a group - - - - - Somewhere in a column header - - - - - Somewhere in a column header checkbox - - - - - Somewhere in a header divider - - - - - A collection of ListViewHitTest constants - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Instances of this class encapsulate the information gathered during a OlvHitTest() - operation. - - Custom renderers can use HitTestLocation.UserDefined and the UserData - object to store more specific locations for use during event handlers. - - - - Create a OlvListViewHitTestInfo - - - - - Create a OlvListViewHitTestInfo when the header was hit - - - - - Where is the hit location? - - - - - Where is the hit location? - - - - - Which group was hit? - - - - - Custom renderers can use this information to supply more details about the hit location - - - - - Gets the item that was hit - - - - - Gets the subitem that was hit - - - - - Gets the part of the subitem that was hit - - - - - Gets the ObjectListView that was tested - - - - - Gets the model object that was hit - - - - - Gets the index of the row under the hit point or -1 - - - - - Gets the index of the column under the hit point - - - - - Gets the index of the header divider - - - - - Gets the column that was hit - - - - - Returns a string that represents the current object. - - - A string that represents the current object. - - 2 - - - - A TreeDataSourceAdapter knows how to build a tree structure from a binding list. - - To build a tree - - - - Create a data source adaptor that knows how to build a tree structure - - - - - - Gets or sets the name of the property/column that uniquely identifies each row. - - - - The value contained by this column must be unique across all rows - in the data source. Odd and unpredictable things will happen if two - rows have the same id. - - Null cannot be a valid key value. - - - - - Gets or sets the name of the property/column that contains the key of - the parent of a row. - - - - The test condition for deciding if one row is the parent of another is functionally - equivilent to this: - - Object.Equals(candidateParentRow[this.KeyAspectName], row[this.ParentKeyAspectName]) - - - Unlike key value, parent keys can be null but a null parent key can only be used - to identify root objects. - - - - - Gets or sets the value that identifies a row as a root object. - When the ParentKey of a row equals the RootKeyValue, that row will - be treated as root of the TreeListView. - - - - The test condition for deciding a root object is functionally - equivilent to this: - - Object.Equals(candidateRow[this.ParentKeyAspectName], this.RootKeyValue) - - - The RootKeyValue can be null. - - - - - Gets or sets whether or not the key columns (id and parent id) should - be shown to the user. - - This must be set before the DataSource is set. It has no effect - afterwards. - - - - Gets the DataTreeListView that is being managed - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A IVirtualGroups is the interface that a virtual list must implement to support virtual groups - - - - - Return the list of groups that should be shown according to the given parameters - - - - - - - Return the index of the item that appears at the given position within the given group. - - - - - - - - Return the index of the group to which the given item belongs - - - - - - - Return the index at which the given item is shown in the given group - - - - - - - - A hint that the given range of items are going to be required - - - - - - - - - This is a safe, do nothing implementation of a grouping strategy - - - - - Return the list of groups that should be shown according to the given parameters - - - - - - - Return the index of the item that appears at the given position within the given group. - - - - - - - - Return the index of the group to which the given item belongs - - - - - - - Return the index at which the given item is shown in the given group - - - - - - - - A hint that the given range of items are going to be required - - - - - - - - - Provides grouping functionality to a FastObjectListView - - - - - Create groups for FastListView - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This is the COM interface that a ListView must be given in order for groups in virtual lists to work. - - - This interface is NOT documented by MS. It was found on Greg Chapell's site. This means that there is - no guarantee that it will work on future versions of Windows, nor continue to work on current ones. - - - - - Not sure what this does - - - - - - - Not sure what this does - - - - - - - Get the index of the item that occurs at the n'th position of the indicated group. - - Index of the group - Index within the group - Index of the item within the whole list - - - - Get the index of the group to which the given item belongs - - Index of the item within the whole list - Which occurences of the item is wanted - Index of the group - - - - Get the number of groups that contain the given item - - Index of the item within the whole list - How many groups does it occur within - - - - A hint to prepare any cache for the given range of requests - - - - - - - A default implementation of the IOwnerDataCallback interface - - - - - A VirtualListDataSource is a complete manner to provide functionality to a virtual list. - An object that implements this interface provides a VirtualObjectListView with all the - information it needs to be fully functional. - - Implementors must provide functioning implementations of at least GetObjectCount() - and GetNthObject(), otherwise nothing will appear in the list. - - - - Return the object that should be displayed at the n'th row. - - The index of the row whose object is to be returned. - The model object at the n'th row, or null if the fetching was unsuccessful. - - - - Return the number of rows that should be visible in the virtual list - - The number of rows the list view should have. - - - - Get the index of the row that is showing the given model object - - The model object sought - The index of the row showing the model, or -1 if the object could not be found. - - - - The ListView is about to request the given range of items. Do - whatever caching seems appropriate. - - - - - - - Find the first row that "matches" the given text in the given range. - - The text typed by the user - Start searching from this index. This may be greater than the 'to' parameter, - in which case the search should descend - Do not search beyond this index. This may be less than the 'from' parameter. - The column that should be considered when looking for a match. - Return the index of row that was matched, or -1 if no match was found - - - - Sort the model objects in the data source. - - - - - - - Add the given collection of model objects to this control. - - A collection of model objects - - - - Insert the given collection of model objects to this control at the position - - Index where the collection will be added - A collection of model objects - - - - Remove all of the given objects from the control - - Collection of objects to be removed - - - - Set the collection of objects that this control will show. - - - - - - Update/replace the nth object with the given object - - - - - - - This extension allow virtual lists to filter their contents - - - - - All subsequent retrievals on this data source should be filtered - through the given filters. null means no filtering of that kind. - - - - - - - A do-nothing implementation of the VirtualListDataSource interface. - - - - - Creates an AbstractVirtualListDataSource - - - - - - The list view that this data source is giving information to. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Update/replace the nth object with the given object - - - - - - - This is a useful default implementation of SearchText method, intended to be called - by implementors of IVirtualListDataSource. - - - - - - - - - - - - - - - - - - This class mimics the behavior of VirtualObjectListView v1.x. - - - - - Creates a VirtualListVersion1DataSource - - - - - - How will the n'th object of the data source be fetched? - - - - - - - - - - - - - - - - - - - - - - Designer for and its subclasses. - - - - This designer removes properties and events that are available on ListView but that are not - useful on ObjectListView. - - - We can't inherit from System.Windows.Forms.Design.ListViewDesigner, since it is marked internal. - So, this class uses reflection to create a ListViewDesigner and then forwards messages to that designer. - - - - - - Initializes the designer with the specified component. - - The to associate the designer with. This component must always be an instance of, or derive from, . - - - - Initializes a newly created component. - - A name/value dictionary of default values to apply to properties. May be null if no default values are specified. - - - - Releases the unmanaged resources used by the and optionally releases the managed resources. - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Removes the duplicate DockingActionList added by this designer to the . - - - adds an internal DockingActionList : 'Dock/Undock in Parent Container'. - But the default designer has already added that action list. So we need to remove one. - - - - - Adjusts the set of properties the component exposes through a . - - An containing the properties for the class of the component. - - - - Allows a designer to add to the set of events that it exposes through a . - - The events for the class of the component. - - - - Allows a designer to change or remove items from the set of attributes that it exposes through a . - - The attributes for the class of the component. - - - - Allows a designer to change or remove items from the set of events that it exposes through a . - - The events for the class of the component. - - - - Gets the design-time action lists supported by the component associated with the designer. - - - The design-time action lists supported by the component associated with the designer. - - - - - Gets the collection of components associated with the component managed by the designer. - - - The components that are associated with the component managed by the designer. - - - - - Indicates whether a mouse click at the specified point should be handled by the control. - - - true if a click at the specified point is to be handled by the control; otherwise, false. - - A indicating the position at which the mouse was clicked, in screen coordinates. - - - - Processes Windows messages and optionally routes them to the control. - - The to process. - - - - This class modifies a ListViewActionList, by removing the "Edit Items" and "Edit Groups" actions. - - - - That class is internal, so we cannot simply subclass it, which would be simplier. - - - Action lists use reflection to determine if that action can be executed, so we not - only have to modify the returned collection of actions, but we have to implement - the properties and commands that the returned actions use. - - - - - This class works in conjunction with the OLVColumns property to allow OLVColumns - to be added to the ObjectListView. - - - - - Create a OLVColumnCollectionEditor - - - - - - What type of object does this editor create? - - - - - - Edit a given value - - - - - - - - - What text should be shown in the list for the given object? - - - - - - - Control how the overlay is presented in the IDE - - - - - An OLVColumn knows which aspect of an object it should present. - - - The column knows how to: - - extract its aspect from the row object - convert an aspect to a string - calculate the image for the row object - extract a group "key" from the row object - convert a group "key" into a title for the group - - For sorting to work correctly, aspects from the same column - must be of the same type, that is, the same aspect cannot sometimes - return strings and other times integers. - - - - - How should the button be sized? - - - - - 每个单元格都将具有相同大小的按钮,如ButtonSize属性所示 - - - - - 每个单元格都将绘制一个填充单元格的按钮,该按钮由ButtonPadding插入 - - - - - 将调整每个按钮的大小以包含文本内容 - - - - - Create an OLVColumn - - - - - Initialize a column to have the given title, and show the given aspect - - The title of the column - The aspect to be shown in the column - - - - 此委托将用于提取要在此列中显示的值。 - - - 如果设置, AspectName属性将被忽略. - - - - - 请记住,如果当前列的AspectGetter是内部生成的,依旧可以随意重新生成 - - - - - 应调用以获取要在此列中显示的值的属性或方法的名称。 - 仅当未指定ValueGetterDelegate时才使用此选项。 - - 此名称可以用来表示对属性或无参数方法的链引用。 - "DateOfBirth" - "Owner.HomeAddress.Postcode" - - - - 此委托将用于将编辑后的值放回模型对象中。 - - - 如果IsEdable==false,则不执行任何操作。 - - - - - 用于将要在此列中显示的Aspect转换为字符串的委托。 - - 如果设置了此值,AspectToStringFormat将被忽略。 - - - - 将Aspect转换成字符串的格式文本 - - - 此字符串作为第一个参数传递给String.Format()方法。 - 仅当尚未设置AspectToStringConverter时才使用此选项。 - "{0:C}" 表示转换数字到货币 - - - - 获取或设置单元格编辑器是否应使用自动完成 - - - - - 获取或设置单元格编辑器是否应使用自动完成 - - - - - 获取用户操作是否可以隐藏此列 - - 这会同时考虑Hideable属性以及此列是否为列表视图的主列(列0)。 - - - - 编辑单元格时,是否应该使用整个单元格(减去复选框或图像使用的任何空间)? - - - 如果控件不是所有者绘制(owner drawn)的,则始终将其视为true。 - - 如果该值为False(默认值)并且控件是所有者绘制(owner drawn)的, - ObjectListView将尝试计算单元格实际内容的宽度,然后将编辑控件的大小调整为恰到好处的宽度。 - 如果为真,则无论单元格的内容如何,都将使用单元格的整个宽度。 - - 如果未在列上设置此属性,则将使用控件中的值 - - 仅当控件处于详细信息视图中时才使用此值。 - 无论此设置如何,开发人员都可以通过侦听CellEditStarting事件来指定编辑控件的确切大小。 - - - - - 获取编辑此列中的单元格时是否应使用整个单元格 - - 这将计算当前有效值,该值可能与CellEditUseWholeCell不同 - - - - 获取或设置此列中此单元格周围将留空的像素数 - - 此设置仅在控件为所有者绘制(owner drawn)时生效。 - - - - 获取或设置此列中的单元格垂直对齐的方式。 - - - - 此设置仅在控件为所有者绘制(owner drawn)时生效。 - - - 如果未设置,将使用控件本身的值。 - - - - - - 获取或设置此列是否显示复选框。 - - - 在第0列上设置此选项不起作用。列0复选框由ObjectListView本身的CheckBox属性控制。 - - - - - Gets or sets the clustering strategy used for this column. - - - - The clustering strategy is used to build a Filtering menu for this item. - If this is null, a useful default will be chosen. - - - To disable filtering on this colummn, set UseFiltering to false. - - - Cluster strategies belong to a particular column. The same instance - cannot be shared between multiple columns. - - - - - - 获取或设置是否启用此列中的按钮(如果此列是按钮),即使该行本身被禁用 - - - - - 此列是否应该调整大小以填充列表视图中的空闲空间? - - - - 如果希望两列(或更多列)平均共享可用空间,请将此属性设置为True。 - 如果希望此列具有更大或更小的可用空间份额,则必须显式设置FreeSpaceProportion属性。 - - - 空间填充列仍然由MinimumWidth和MaximumWidth属性控制。 - - /// - - - - 控件中未占用的水平空间应分配给此列的比例是多少? - - - - 在某些情况下,如果列(通常是最右边的列)可以随着列表视图的扩展而扩展, - 这样就可以在不必水平滚动的情况下尽可能多地看到列(您永远不应该让用户必须水平滚动任何内容!)。 - - - 调整空间填充列的大小以占据列表视图的未占用宽度的一部分(未占用宽度是一旦所有非填充列都被赋予其空间后剩余的宽度)。 - 此属性指示将分配给此列的未占用空间的相对比例。此属性的实际值并不重要,重要的是它的值相对于其他列中的值。 - 例子: - - - 如果只有一个空间填充列,则无论FreeSpaceProportion中的值如何,都将为其提供所有可用空间。 - - - 如果有两个或多个空间填充列,并且它们的FreeSpaceProportion值都相同,则它们将平等地共享空闲空间。 - - - 如果FreeSpaceProportion有三个值为3、2和1的空间填充列,则第一列将占用一半的空闲空间,第二列将占用三分之一的空闲空间,第三列将占用六分之一的空闲空间。 - - - - - - - - 获取或设置在单击此列的标题时是否对此列值重新生成组。 - - - 此设置仅在ShowGroups为true时使用。 - - 如果为False,则单击标题不会重建组。 - - 如果为false,则仍会激发BeforeCreatingGroups事件,这些事件可用于根据具体情况进行分组或提供反馈。 - - - - - 当组已创建但尚未成为真正的ListViewGroup时,将调用此委托。用户可以利用此机会填写有关该组的许多其他详细信息。 - - - - - 调用此委托以获取对象,该对象是给定行所属的组的键。 - - - - - 调用此委托将组键转换为该组的标题。 - - - - - 当列表视图按此列分组并且组标题有项目计数时,应如何设置标签的格式 - - - 给定的格式字符串支持以下两个占位符: - - {0} - 原组标题 - {1} - 该组项目数 - - - "{0} [{1} items]" - - - - 获取this.GroupWithItemCountFormat或默认值 - - - 如果未设置GroupWithItemCountFormat,则如果可能,将从ObjectListView中获取其值。 - - - - - 当列表视图按此列分组并且组标题有项目计数时,如果组中只有一个项目,标签应该如何格式化 - - - 给定的格式字符串支持以下两个占位符: - - {0} - 原组标题 - {1} - 该组项目数 (始终为1) - - - "{0} [{1} item]" - - - - 获取this.GroupWithItemCountSingularFormat或默认值 - - - 如果未设置此值,将使用列表视图中的值 - - - - - 获取是否应在列标题中使用筛选器指示符绘制此列。 - - - - - 获取或设置将用于所有者绘制标题列的委托。 - - - - - 获取或设置将用于绘制此列标题的样式 - - 仅当拥有的ObjectListView将HeaderUsesThemes设置为False时才使用此选项。 - - - - 获取或设置绘制此列的标题时使用的字体 - - 您可能应该使用HeaderFormatStyle而不是此属性 - 这仅在HeaderUsesThemes为false时使用。 - - - - 获取或设置绘制此列标题文本的颜色 - - 您可能应该使用HeaderFormatStyle而不是此属性 - 这仅在HeaderUsesThemes为false时使用。 - - - - 获取或设置将在列标题中显示的图像键 - - 这仅在HeaderUsesThemes为false时使用 - - - - 获取或设置Header文本的对齐方式 - - - - - 返回Header的文本对齐方式。这将是显式设置的,或者将遵循列中文本的对齐方式 - - - - - 获取转换为StringAlignment的Header对齐方式 - - - - - 获取此列的标题中是否有图像 - - - - - 获取或设置此Header是否在Header中放置复选框 - - - - - 获取或设置此Header是否在Header中放置三态复选框 - - - - - 获取或设置此列Header中复选框的选中状态 - - - - - 获取或设置选中/取消选中标题复选框的值是否会导致将此列中所有单元格的复选框设置为相同的选中/取消选中。 - 默认值为true. - - - - 当单元格的复选框状态改变时,该函数不会与自动更新标题的功能相反。 - - - 此属性在TreeListView上的行为最好描述为未定义,应该避免。 - - - 此操作(检查/取消检查所有行)的性能为O(n),其中n是行数。它将在大型虚拟列表上工作,但可能需要一些时间。 - - - - - - 获取或设置是否禁用标题中的复选框 - - - 单击禁用的复选框不会更改其值,但会引发HeaderCheckBoxChanging事件,使程序员有机会执行适当的操作。 - - - - 获取或设置用户是否可以隐藏此列。 - - - 无论此设置如何,列0永远不能隐藏。 - - - - - 获取或设置此列中的文本值是否类似于超链接 - - - - - 这是属性的名称,将调用该属性来获取应该在此列中显示的图像的图像选择器。 - 它可以返回int、String、Image或NULL。 - - - 如果ImageGetter不为空,则忽略此项。 - 该属性可以使用以下返回值来标识图像: - - null或-1 --表示无图像 - int -- Int值将用作图像列表的索引 - String -- 字符串值将用作图像列表的关键字 - Image -- 将直接绘制图像(仅在OwnerDrawn模式下) - - - - - - 调用此委托以获取应该在此列中显示的图像的图像选择器。它可以返回int、String、Image或NULL。 - - - 该属性可以使用以下返回值来标识图像: - - null或-1 --表示无图像 - int -- Int值将用作图像列表的索引 - String -- 字符串值将用作图像列表的关键字 - Image -- 将直接绘制图像(仅在OwnerDrawn模式下) - - - - - - 获取或设置此列是否在其单元格中绘制按钮 - - - - 如果将其设置为true,则列的呈现器将成为ColumnButtonRenender(如果尚未成为ColumnButtonRenender)。如果设置为False,则将丢弃以前的任何按钮渲染器 - - 如果单元格的Aspect为Null或空,则不会在单元格中绘制任何内容。 - - - - Create a ColumnButtonRenderer to draw buttons in this column - - - - - - Fill in details to our ColumnButtonRenderer based on the properties set on the column - - - - - 获取或设置按钮可以占用的最大宽度。 - -1 表示不限制最大宽度 - - 仅当SizingMode为TextBound时才生效 - - - - 获取或设置当SizingMode为TextBound时单元格周围的额外空间 - - - - - 获取或设置SizingMode为FixedBound时按钮的大小 - - 如果未设置,将使用单元格的边界 - - - - 获取或设置此列显示按钮时如何调整每个按钮的大小 - - - - - 此列中显示的值是否可以编辑 - - 此默认值为false,因为控制列表视图的可编辑性的主要方法是列表视图本身。 - 列表视图可编辑后,所有列也可编辑,除非程序员显式将它们标记为不可编辑 - - - - 是否是固定宽度 - - - - - 获取/设置当视图切换到平铺视图(TileView)时是否使用此列。 - - 无论此设置如何,第0列始终包含在平铺视图中。平铺视图不能很好地处理许多“列”信息。两三个最好。 - - - - 获取或设置Header的文本是否应垂直呈现。 - - - 如果为True,最好将ToolTipText设置为列的名称,以便于阅读。 - 垂直Header仅为文本。他们不会画出图像。 - - - - - 该列是否可见 - - 更改此值后,必须调用RebuildColumns()才能使更改生效。 - - - - 此列最后一次定位在详细信息视图列中的位置是什么 - - DisplayIndex是易失性的。一旦从控件中移除列,就无法发现它在显示顺序中的位置。 - 即使列不在列表视图的活动列中,此属性也会保护该信息。 - - - - 列最大宽度 - - -1表示不限制. 将该值指定为与MinimumWidth相同的值,以生成固定宽度的列。 - - - - 列最小宽度 - - -1表示不限制. 将该值指定为与MaximumWidth相同的值,以生成固定宽度的列。 - - - - Get/set the renderer that will be invoked when a cell needs to be redrawn - - - - - This delegate is called when a cell needs to be drawn in OwnerDrawn mode. - - This method is kept primarily for backwards compatibility. - New code should implement an IRenderer, though this property will be maintained. - - - - 获取或设置执行文本搜索时是否使用此列的单元格中的文本。 - - - - 如果为False,则文本筛选器在查找匹配项时不会尝试搜索此列单元格。 - - - - - - 获取或设置一个委托,该委托将返回在使用基于文本的筛选器时应考虑进行文本匹配的文本值数组。 - - - - - 获取或设置此列的标题是否将包括该列的文本。 - - - - 如果为false,则列标题中呈现的唯一内容将是来自 . - - 只有在以下情况下才会考虑此设置: ObjectListView中的 为false . - - - - - 获取或设置当用户单击此列的标题时是否重新排序列表内容。 - - - - 如果为False,则单击标题将不会对列表进行排序,但也不会提供有关列表未排序原因的任何反馈。提供适当的反馈是程序员的责任。 - - 如果为false,则仍会触发BeforeSorting事件,该事件可用于根据具体情况进行排序或提供反馈。 - - - - - 获取或设置列内容的水平对齐方式。 - - NET将不允许列0具有除左对齐以外的任何对齐方式。我们不能更改列表视图的基本行为,但当所有者绘制时,列0现在可以有其他对齐方式。 - - - - 获取列文本对齐的StringAlignment等效项 - - - - - 当鼠标悬停在该列的标题上时,应该显示什么字符串? - - 如果拥有的ObjectListView上安装了HeaderToolTipGetter,则将忽略此值。 - - - - 此列是否应该有一个三态复选框 - - - 如果为True,用户可以选择第三种状态(通常是不确定的)。 - - - - - 按列纵横比的首字母对对象进行分组 - - - 一种常见的模式是按该组的值的首字母对列进行分组。aspect必须是字符串(显然)。 - - - - - 获取或设置此列是否应为用户可筛选的列 - - - - - Gets or sets a filter that will only include models where the model's value - for this column is one of the values in ValuesChosenForFiltering - - - - - Gets or sets the values that will be used to generate a filter for this - column. For a model to be included by the generated filter, its value for this column - must be in this list. If the list is null or empty, this column will - not be used for filtering. - - - - - 列宽 - - - - - 获取或设置此列单元格的内容是否应自动换行 - - 如果此列使用自定义IRenender(即,不是从BaseRenender派生的),则该呈现器负责实现自动换行。 - - - - For a given group value, return the string that should be used as the groups title. - - The group key that is being converted to a title - string - - - - Get the checkedness of the given object for this column - - The row object that is being displayed - The checkedness of the object - - - - Put the checkedness of the given object for this column - - The row object that is being displayed - - The checkedness of the object - - - - For a given row object, extract the value indicated by the AspectName property of this column. - - The row object that is being displayed - An object, which is the aspect named by AspectName - - - - For a given row object, return the object that is the key of the group that this row belongs to. - - The row object that is being displayed - Group key object - - - - For a given row object, return the image selector of the image that should displayed in this column. - - The row object that is being displayed - int or string or Image. int or string will be used as index into image list. null or -1 means no image - - - - Return the image that represents the check box for the given model - - - - - - - For a given row object, return the strings that will be searched when trying to filter by string. - - - This will normally be the simple GetStringValue result, but if this column is non-textual (e.g. image) - you might want to install a SearchValueGetter delegate which can return something that could be used - for text filtering. - - - The array of texts to be searched. If this returns null, search will not match that object. - - - - For a given row object, return the string representation of the value shown in this column. - - - For aspects that are string (e.g. aPerson.Name), the aspect and its string representation are the same. - For non-strings (e.g. aPerson.DateOfBirth), the string representation is very different. - - - - - - - For a given row object, return the object that is to be displayed in this column. - - The row object that is being displayed - An object, which is the aspect to be displayed - - - - Update the given model object with the given value using the column's - AspectName. - - The model object to be updated - The value to be put into the model - - - - Update the given model object with the given value - - The model object to be updated - The value to be put into the model - - - - Convert the aspect object to its string representation. - - - If the column has been given a AspectToStringConverter, that will be used to do - the conversion, otherwise just use ToString(). - The returned value will not be null. Nulls are always converted - to empty strings. - - The value of the aspect that should be displayed - A string representation of the aspect - - - - Convert the aspect object to its string representation. - - - If the column has been given a AspectToStringConverter, that will be used to do - the conversion, otherwise just use ToString(). - The returned value will not be null. Nulls are always converted - to empty strings. - - - The value of the aspect that should be displayed - A string representation of the aspect - - - - Decide the clustering strategy that will be used for this column - - - - - - Gets or sets the type of data shown in this column. - - If this is not set, it will try to get the type - by looking through the rows of the listview. - - - - This event is triggered when the visibility of this column changes. - - - - - Tell the world when visibility of a column changes. - - - - - Create groupies - This is an untyped version to help with Generator and OLVColumn attributes - - - - - - - Create groupies - - - - - - - - Create groupies - - - - - - - - - Create groupies - - - - - - - - - - Create groupies. - Install delegates that will group the columns aspects into progressive partitions. - If an aspect is less than value[n], it will be grouped with description[n]. - If an aspect has a value greater than the last element in "values", it will be grouped - with the last element in "descriptions". - - Array of values. Values must be able to be - compared to the aspect (using IComparable) - The description for the matching value. The last element is the default description. - If there are n values, there must be n+1 descriptions. - - this.salaryColumn.MakeGroupies( - new UInt32[] { 20000, 100000 }, - new string[] { "Lowly worker", "Middle management", "Rarified elevation"}); - - - - - - - - - Create groupies based on exact value matches. - - - Install delegates that will group rows into partitions based on equality of this columns aspects. - If an aspect is equal to value[n], it will be grouped with description[n]. - If an aspect is not equal to any value, it will be grouped with "[other]". - - Array of values. Values must be able to be - equated to the aspect - The description for the matching value. - - this.marriedColumn.MakeEqualGroupies( - new MaritalStatus[] { MaritalStatus.Single, MaritalStatus.Married, MaritalStatus.Divorced, MaritalStatus.Partnered }, - new string[] { "Looking", "Content", "Looking again", "Mostly content" }); - - - - - - - - - An adorment is the common base for overlays and decorations. - - - - - Gets or sets the corner of the adornment that will be positioned at the reference corner - - - - - Gets or sets location within the reference rectange where the adornment will be drawn - - This is a simplied interface to ReferenceCorner and AdornmentCorner - - - - Gets or sets the offset by which the position of the adornment will be adjusted - - - - - Gets or sets the point of the reference rectangle to which the adornment will be aligned. - - - - - Gets or sets the degree of rotation by which the adornment will be transformed. - The centre of rotation will be the center point of the adornment. - - - - - Gets or sets the transparency of the overlay. - 0 is completely transparent, 255 is completely opaque. - - - - - Calculate the location of rectangle of the given size, - so that it's indicated corner would be at the given point. - - The point - - Which corner will be positioned at the reference point - - CalculateAlignedPosition(new Point(50, 100), new Size(10, 20), System.Drawing.ContentAlignment.TopLeft) -> Point(50, 100) - CalculateAlignedPosition(new Point(50, 100), new Size(10, 20), System.Drawing.ContentAlignment.MiddleCenter) -> Point(45, 90) - CalculateAlignedPosition(new Point(50, 100), new Size(10, 20), System.Drawing.ContentAlignment.BottomRight) -> Point(40, 80) - - - - Calculate a rectangle that has the given size which is positioned so that - its alignment point is at the reference location of the given rect. - - - - - - - - Create a rectangle of the given size which is positioned so that - its indicated corner is at the indicated corner of the reference rect. - - - - - - - - - Creates a rectangle so that its bottom left is at the centre of the reference: - corner=BottomLeft, referenceCorner=MiddleCenter - This is a powerful concept that takes some getting used to, but is - very neat once you understand it. - - - - - Return the point at the indicated corner of the given rectangle (it doesn't - have to be a corner, but a named location) - - The reference rectangle - Which point of the rectangle should be returned? - A point - CalculateReferenceLocation(new Rectangle(0, 0, 50, 100), System.Drawing.ContentAlignment.TopLeft) -> Point(0, 0) - CalculateReferenceLocation(new Rectangle(0, 0, 50, 100), System.Drawing.ContentAlignment.MiddleCenter) -> Point(25, 50) - CalculateReferenceLocation(new Rectangle(0, 0, 50, 100), System.Drawing.ContentAlignment.BottomRight) -> Point(50, 100) - - - - Given the item and the subitem, calculate its bounds. - - - - - - - - Apply any specified rotation to the Graphic content. - - The Graphics to be transformed - The rotation will be around the centre of this rect - - - - Reverse the rotation created by ApplyRotation() - - - - - - An overlay that will draw an image over the top of the ObjectListView - - - - - Gets or sets the image that will be drawn - - - - - Gets or sets if the image will be shrunk to fit with its horizontal bounds - - - - - Draw the image in its specified location - - The Graphics used for drawing - The bounds of the rendering - - - - Draw the image in its specified location - - The image to be drawn - The Graphics used for drawing - The bounds of the rendering - How transparent should the image be (0 is completely transparent, 255 is opaque) - - - - Draw the image in its specified location - - The image to be drawn - The Graphics used for drawing - The bounds of the rendering - How big should the image be? - How transparent should the image be (0 is completely transparent, 255 is opaque) - - - - Draw the image in its specified location, scaled so that it is not wider - than the given rectangle. Height is scaled proportional to the width. - - The image to be drawn - The Graphics used for drawing - The bounds of the rendering - How transparent should the image be (0 is completely transparent, 255 is opaque) - - - - Utility to draw a bitmap transparenly. - - - - - - - - - An adornment that will draw text - - - - - Gets or sets the background color of the text - Set this to Color.Empty to not draw a background - - - - - Gets the brush that will be used to paint the text - - - - - Gets or sets the color of the border around the billboard. - Set this to Color.Empty to remove the border - - - - - Gets the brush that will be used to paint the text - - - - - Gets or sets the width of the border around the text - - - - - How rounded should the corners of the border be? 0 means no rounding. - - If this value is too large, the edges of the border will appear odd. - - - - Gets or sets the font that will be used to draw the text - - - - - Gets the font that will be used to draw the text or a reasonable default - - - - - Does this text have a background? - - - - - Does this overlay have a border? - - - - - Gets or sets the maximum width of the text. Text longer than this will wrap. - 0 means no maximum. - - - - - Gets or sets the formatting that should be used on the text - - - - - Gets or sets the text that will be drawn - - - - - Gets the brush that will be used to paint the text - - - - - Gets or sets the color of the text - - - - - Gets or sets whether the text will wrap when it exceeds its bounds - - - - - Draw our text with our stored configuration in relation to the given - reference rectangle - - The Graphics used for drawing - The reference rectangle in relation to which the text will be drawn - - - - Draw the given text with our stored configuration - - The Graphics used for drawing - The reference rectangle in relation to which the text will be drawn - The text to draw - How opaque should be text be - - - - Draw the text with a border - - The Graphics used for drawing - The bounds within which the text should be drawn - The text to draw - How opaque should be text be - - - - Return the rectangle that will be the precise bounds of the displayed text - - - - - The bounds of the text - - - - Return a GraphicPath that is a round cornered rectangle - - The rectangle - The diameter of the corners - A round cornered rectagle path - If I could rely on people using C# 3.0+, this should be - an extension method of GraphicsPath. - - - - A decoration is an overlay that draws itself in relation to a given row or cell. - Decorations scroll when the listview scrolls. - - - - - Gets or sets the row that is to be decorated - - - - - Gets or sets the subitem that is to be decorated - - - - - An AbstractDecoration is a safe do-nothing implementation of the IDecoration interface - - - - - Gets or sets the row that is to be decorated - - - - - Gets or sets the subitem that is to be decorated - - - - - Gets the bounds of the decorations row - - - - - Get the bounds of the decorations cell - - - - - Draw the decoration - - - - - - - - This decoration draws a slight tint over a column of the - owning listview. If no column is explicitly set, the selected - column in the listview will be used. - The selected column is normally the sort column, but does not have to be. - - - - - Create a TintedColumnDecoration - - - - - Create a TintedColumnDecoration - - - - - - Gets or sets the column that will be tinted - - - - - Gets or sets the color that will be 'tinted' over the selected column - - - - - Draw a slight colouring over our tinted column - - - This overlay only works when: - - the list is in Details view - - there is at least one row - - there is a selected column (or a specified tint column) - - - - - - - - This decoration draws an optionally filled border around a rectangle. - Subclasses must override CalculateBounds(). - - - - - Create a BorderDecoration - - - - - Create a BorderDecoration - - The pen used to draw the border - - - - Create a BorderDecoration - - The pen used to draw the border - The brush used to fill the rectangle - - - - Gets or sets the pen that will be used to draw the border - - - - - Gets or sets the padding that will be added to the bounds of the item - before drawing the border and fill. - - - - - How rounded should the corners of the border be? 0 means no rounding. - - If this value is too large, the edges of the border will appear odd. - - - - Gets or sets the brush that will be used to fill the border - - This value is ignored when using gradient brush - - - - Gets or sets the color that will be used as the start of a gradient fill. - - This and FillGradientTo must be given value to show a gradient - - - - Gets or sets the color that will be used as the end of a gradient fill. - - This and FillGradientFrom must be given value to show a gradient - - - - Gets or sets the fill mode that will be used for the gradient. - - - - - Draw a filled border - - - - - - - - Subclasses should override this to say where the border should be drawn - - - - - - Do the actual work of drawing the filled border - - - - - - - Create a GraphicsPath that represents a round cornered rectangle. - - - If this is 0 or less, the rectangle will not be rounded. - - - - - Instances of this class draw a border around the decorated row - - - - - Gets or sets the index of the left most column to be used for the border - - - - - Gets or sets the index of the right most column to be used for the border - - - - - Calculate the boundaries of the border - - - - - - Instances of this class draw a border around the decorated subitem. - - - - - Calculate the boundaries of the border - - - - - - This decoration puts a border around the cell being edited and - optionally "lightboxes" the cell (makes the rest of the control dark). - - - - - Create a EditingCellBorderDecoration - - - - - Create a EditingCellBorderDecoration - - Should the decoration use a lighbox display style? - - - - Gets or set whether the decoration should make the rest of - the control dark when a cell is being edited - - If this is true, FillBrush is used to overpaint - the control. - - - - Draw the decoration - - - - - - - - This decoration causes everything *except* the row under the mouse to be overpainted - with a tint, making the row under the mouse stand out in comparison. - The darker and more opaque the fill color, the more obvious the - decorated row becomes. - - - - - Create a LightBoxDecoration - - - - - Draw a tint over everything in the ObjectListView except the - row under the mouse. - - - - - - - - Instances of this class put an Image over the row/cell that it is decorating - - - - - Create an image decoration - - - - - Create an image decoration - - - - - - Create an image decoration - - - - - - - Create an image decoration - - - - - - - Create an image decoration - - - - - - - - Gets or sets the item being decorated - - - - - Gets or sets the sub item being decorated - - - - - Draw this decoration - - The ObjectListView being decorated - The Graphics used for drawing - The bounds of the rendering - - - - Instances of this class draw some text over the row/cell that they are decorating - - - - - Create a TextDecoration - - - - - Create a TextDecoration - - - - - - Create a TextDecoration - - - - - - - Create a TextDecoration - - - - - - - Create a TextDecoration - - - - - - - - Gets or sets the item being decorated - - - - - Gets or sets the sub item being decorated - - - - - Draw this decoration - - The ObjectListView being decorated - The Graphics used for drawing - The bounds of the rendering - - - - The interface for an object which can draw itself over the top of - an ObjectListView. - - - - - Draw this overlay - - The ObjectListView that is being overlaid - The Graphics onto the given OLV - The content area of the OLV - - - - An interface for an overlay that supports variable levels of transparency - - - - - Gets or sets the transparency of the overlay. - 0 is completely transparent, 255 is completely opaque. - - - - - A null implementation of the IOverlay interface - - - - - Draw this overlay - - The ObjectListView that is being overlaid - The Graphics onto the given OLV - The content area of the OLV - - - - How transparent should this overlay be? - - - - - An overlay that will draw an image over the top of the ObjectListView - - - - - Create an ImageOverlay - - - - - Gets or sets the horizontal inset by which the position of the overlay will be adjusted - - - - - Gets or sets the vertical inset by which the position of the overlay will be adjusted - - - - - Draw this overlay - - The ObjectListView being decorated - The Graphics used for drawing - The bounds of the rendering - - - - An overlay that will draw text over the top of the ObjectListView - - - - - Create a TextOverlay - - - - - Gets or sets the horizontal inset by which the position of the overlay will be adjusted - - - - - Gets or sets the vertical inset by which the position of the overlay will be adjusted - - - - - Gets or sets whether the border will be drawn with rounded corners - - - - - Draw this overlay - - The ObjectListView being decorated - The Graphics used for drawing - The bounds of the rendering - - - - A Billboard overlay is a TextOverlay positioned at an absolute point - - - - - Create a BillboardOverlay - - - - - Gets or sets where should the top left of the billboard be placed - - - - - Draw this overlay - - The ObjectListView being decorated - The Graphics used for drawing - The bounds of the rendering - - - - Renderers are the mechanism used for owner drawing cells. As such, they can also handle - hit detection and positioning of cell editing rectangles. - - - - - Render the whole item within an ObjectListView. This is only used in non-Details views. - - The event - A Graphics for rendering - The bounds of the item - The model object to be drawn - Return true to indicate that the event was handled and no further processing is needed. - - - - Render one cell within an ObjectListView when it is in Details mode. - - The event - A Graphics for rendering - The bounds of the cell - The model object to be drawn - Return true to indicate that the event was handled and no further processing is needed. - - - - What is under the given point? - - - x co-ordinate - y co-ordinate - This method should only alter HitTestLocation and/or UserData. - - - - When the value in the given cell is to be edited, where should the edit rectangle be placed? - - - - - - - - - - - Renderers that implement this interface will have the filter property updated, - each time the filter on the ObjectListView is updated. - - - - - - - - - - An AbstractRenderer is a do-nothing implementation of the IRenderer interface. - - - - - Render the whole item within an ObjectListView. This is only used in non-Details views. - - The event - A Graphics for rendering - The bounds of the item - The model object to be drawn - Return true to indicate that the event was handled and no further processing is needed. - - - - Render one cell within an ObjectListView when it is in Details mode. - - The event - A Graphics for rendering - The bounds of the cell - The model object to be drawn - Return true to indicate that the event was handled and no further processing is needed. - - - - What is under the given point? - - - x co-ordinate - y co-ordinate - This method should only alter HitTestLocation and/or UserData. - - - - When the value in the given cell is to be edited, where should the edit rectangle be placed? - - - - - - - - - - - This class provides compatibility for v1 RendererDelegates - - - - - The renderer delegate that this renderer wraps - - - - - A BaseRenderer provides useful base level functionality for any custom renderer. - - - Subclasses will normally override the Render or OptionalRender method, and use the other - methods as helper functions. - - - - - Can the renderer wrap lines that do not fit completely within the cell? - - Wrapping text doesn't work with the GDI renderer. - - - - Gets or sets how many pixels will be left blank around this cell - - - - This setting only takes effect when the control is owner drawn. - - for more details. - - - - - Gets the horiztonal alignment of the column - - - - - Gets or sets how cells drawn by this renderer will be vertically aligned. - - - - If this is not set, the value from the column or control itself will be used. - - - - - - Gets the optional padding that this renderer should apply before drawing. - This property considers all possible sources of padding - - - - - Gets the vertical cell alignment that should govern the rendering. - This property considers all possible sources. - - - - - Gets or sets the image list from which keyed images will be fetched - - - - - When rendering multiple images, how many pixels should be between each image? - - - - - Should text be rendered using GDI routines? This makes the text look more - like a native List view control. - - - - - Get or set the aspect of the model object that this renderer should draw - - - - - What are the bounds of the cell that is being drawn? - - - - - Get or set the OLVColumn that this renderer will draw - - - - - Get/set the event that caused this renderer to be called - - - - - Get/set the event that caused this renderer to be called - - - - - Gets or sets the font to be used for text in this cell - - - - - Gets the image list from which keyed images will be fetched - - - - - Should this renderer fill in the background before drawing? - - - - - Cache whether or not our item is selected - - - - - Is this renderer being used on a printer context? - - - - - Get or set the listitem that this renderer will be drawing - - - - - Get/set the listview for which the drawing is to be done - - - - - Get the specialized OLVSubItem that this renderer is drawing - - This returns null for column 0. - - - - Get or set the model object that this renderer should draw - - - - - Get or set the list subitem that this renderer will be drawing - - - - - The brush that will be used to paint the text - - - - - Will this renderer use the custom images from the parent ObjectListView - to draw the checkbox images. - - - - If this is true, the renderer will use the images from the - StateImageList to represent checkboxes. 0 - unchecked, 1 - checked, 2 - indeterminate. - - If this is false (the default), then the renderer will use .NET's standard - CheckBoxRenderer. - - - - - Align the second rectangle with the first rectangle, - according to the alignment of the column - - The cell's bounds - The rectangle to be aligned within the bounds - An aligned rectangle - - - - Calculate the left edge of the rectangle that aligns the outer rectangle with the inner one - according to this renderer's horizontal alignment - - - - - - - - Calculate the top of the rectangle that aligns the outer rectangle with the inner rectangle - according to this renders vertical alignment - - - - - - - - Calculate the top of the rectangle that aligns the outer rectangle with a rectangle of the given height - according to this renderer's vertical alignment - - - - - - - - Calculate the space that our rendering will occupy and then align that space - with the given rectangle, according to the Column alignment - - - Pre-padded bounds of the cell - - - - - Calculate the size of the content of this cell. - - - Pre-padded bounds of the cell - The width and height of the content - - - - Calculate the bounds of a checkbox given the (pre-padded) cell bounds - - - Pre-padded cell bounds - - - - - How much space will the check box for this cell occupy? - - Only column 0 can have check boxes. Sub item checkboxes are - treated as images - - - - - - How much space will the check box for this row occupy? - If the list doesn't have checkboxes, or this isn't the primary column, - this returns an empty size. - - - - - - - How much horizontal space will the image of this cell occupy? - - - - - - - - How much vertical space will the image of this cell occupy? - - - - - - - - How much space will the image of this cell occupy? - - - - - - - - How much horizontal space will the text of this cell occupy? - - - - - - - - - How much space will the text of this cell occupy? - - - - - - - - - Return the Color that is the background color for this item's cell - - The background color of the subitem - - - - Return the color of the background color when the item is selected - - The background color of the subitem - - - - Return the color to be used for text in this cell - - The text color of the subitem - - - - Return the color of the foreground color when the item is selected - - The foreground color of the subitem - - - - Return the image that should be drawn against this subitem - - An Image or null if no image should be drawn. - - - - Return the actual image that should be drawn when keyed by the given image selector. - An image selector can be: - an int, giving the index into the image list - a string, giving the image key into the image list - an Image, being the image itself - - - The value that indicates the image to be used - An Image or null - - - - - - - - Return the string that should be drawn within this - - - - - - Return the Color that is the background color for this item's text - - The background color of the subitem's text - - - - Render the whole item in a non-details view. - - - - - - - - - - Prepare this renderer to draw in response to the given event - - - - - Use this if you want to chain a second renderer within a primary renderer. - - - - Render one cell - - - - - - - - - - Prepare this renderer to draw in response to the given event - - - - - Use this if you want to chain a second renderer within a primary renderer. - - - - Calculate which part of this cell was hit - - - - - - - - Calculate the edit rectangle - - - - - - - - - - - Draw our data into the given rectangle using the given graphics context. - - - Subclasses should override this method. - The graphics context that should be used for drawing - The bounds of the subitem cell - Returns whether the rendering has already taken place. - If this returns false, the default processing will take over. - - - - - Draw our data into the given rectangle using the given graphics context. - - - Subclasses should override this method if they never want - to fall back on the default processing - The graphics context that should be used for drawing - The bounds of the subitem cell - - - - Do the actual work of hit testing. Subclasses should override this rather than HitTest() - - - - - - - - - Handle a HitTest request after all state information has been initialized - - - - - - - - - - - Draw the standard "[checkbox] [image] [text]" cell after the state properties have been initialized. - - - - - - - Change the bounds of the given rectangle to take any cell padding into account - - - - - - - Perform normal hit testing relative to the given aligned content bounds - - - - - - - - - - This method calculates the bounds of the text within a standard layout - (i.e. optional checkbox, optional image, text) - - This method only works correctly if the state of the renderer - has been fully initialized (see BaseRenderer.GetEditRectangle) - - - - - - - - Apply any padding to the given bounds, and then align a rectangle of the given - size within that padded area. - - - - - - - - - Draw the given image aligned horizontally within the column. - - - Over tall images are scaled to fit. Over-wide images are - truncated. This is by design! - - Graphics context to use for drawing - Bounds of the cell - The image to be drawn - - - - Draw our subitems image and text - - Graphics context to use for drawing - Pre-padded bounds of the cell - - - - Fill in the background of this cell - - Graphics context to use for drawing - Bounds of the cell - - - - Draw the primary check box of this row (checkboxes in other sub items use a different method) - - Graphics context to use for drawing - The pre-aligned and padded target rectangle - - - - Calculate the CheckBoxState we need to correctly draw the given state - - - - - - - Should this checkbox be drawn as disabled? - - - - - Is the current item hot (i.e. under the mouse)? - - - - - Is the mouse over a checkbox in this cell? - - - - - Draw the given text and optional image in the "normal" fashion - - Graphics context to use for drawing - Bounds of the cell - The optional image to be drawn - - - - Draw our subitems image and text - - Graphics context to use for drawing - Bounds of the cell - - - - Draw the given collection of image selectors - - - - - - - - Draw the given text and optional image in the "normal" fashion - - Graphics context to use for drawing - Bounds of the cell - The string to be drawn - - - - Print the given text in the given rectangle using only GDI routines - - - - - - The native list control uses GDI routines to do its drawing, so using them - here makes the owner drawn mode looks more natural. - This method doesn't honour the CanWrap setting on the renderer. All - text is single line - - - - - Gets the cell's vertical alignment as a TextFormatFlag - - - - - - Gets the StringFormat needed when drawing text using GDI+ - - - - - Print the given text in the given rectangle using normal GDI+ .NET methods - - Printing to a printer dc has to be done using this method. - - - - This renderer highlights substrings that match a given text filter. - - - - - Create a HighlightTextRenderer - - - - - Create a HighlightTextRenderer - - - - - - Create a HighlightTextRenderer - - - - - - Gets or set how rounded will be the corners of the text match frame - - - - - Gets or set the brush will be used to paint behind the matched substrings. - Set this to null to not fill the frame. - - - - - Gets or sets the filter that is filtering the ObjectListView and for - which this renderer should highlight text - - - - - When a filter changes, keep track of the text matching filters - - - - - Gets or set the pen will be used to frame the matched substrings. - Set this to null to not draw a frame. - - - - - Gets or sets whether the frame around a text match will have rounded corners - - - - - Gets or set the text that will be highlighted - - - - - Gets or sets the manner in which substring will be compared. - - - Use this to control if substring matches are case sensitive or insensitive. - - - - Handle a HitTest request after all state information has been initialized - - - - - - - - - - - Draw text using GDI - - - - - - - - Draw the highlighted text using GDI - - - - - - - - Draw an indication around the given frame that shows a text match - - - - - - - - - - Draw the text using GDI+ - - - - - - - - Draw the highlighted text using GDI+ - - - - - - - - Gets whether the renderer should actually draw highlighting - - - - - Return a GraphicPath that is a round cornered rectangle - - A round cornered rectangle path - If I could rely on people using C# 3.0+, this should be - an extension method of GraphicsPath. - - - - - - - - - Return a GraphicPath that is a round cornered rectangle - - The rectangle - The diameter of the corners - A round cornered rectangle path - If I could rely on people using C# 3.0+, this should be - an extension method of GraphicsPath. - - - - This class maps a data value to an image that should be drawn for that value. - - It is useful for drawing data that is represented as an enum or boolean. - - - - Return a renderer that draw boolean values using the given images - - Draw this when our data value is true - Draw this when our data value is false - A Renderer - - - - Return a renderer that draw tristate boolean values using the given images - - Draw this when our data value is true - Draw this when our data value is false - Draw this when our data value is null - A Renderer - - - - Make a new empty renderer - - - - - Make a new renderer that will show the given image when the given key is the aspect value - - The data value to be matched - The image to be shown when the key is matched - - - - Make a new renderer that will show the given images when it receives the given keys - - - - - - - - - Build a renderer from the given array of keys and their matching images - - An array of key/image pairs - - - - Register the image that should be drawn when our Aspect has the data value. - - Value that the Aspect must match - An ImageSelector -- an int, string or image - - - - Render our value - - - - - - - Draw a collection of images - - - - - - - - Draw one image - - - - - - - - This renderer draws just a checkbox to match the check state of our model object. - - - - - Draw our cell - - - - - - - Handle the GetEditRectangle request - - - - - - - - - - - Handle the HitTest request - - - - - - - - - Render an image that comes from our data source. - - The image can be sourced from: - - a byte-array (normally when the image to be shown is - stored as a value in a database) - an int, which is treated as an index into the image list - a string, which is treated first as a file name, and failing that as an index into the image list - an ICollection of ints or strings, which will be drawn as consecutive images - - If an image is an animated GIF, it's state is stored in the SubItem object. - By default, the image renderer does not render animations (it begins life with animations paused). - To enable animations, you must call Unpause(). - In the current implementation (2009-09), each column showing animated gifs must have a - different instance of ImageRenderer assigned to it. You cannot share the same instance of - an image renderer between two animated gif columns. If you do, only the last column will be - animated. - - - - - Make an empty image renderer - - - - - Make an empty image renderer that begins life ready for animations - - - - - Finalizer - - - - - Should the animations in this renderer be paused? - - - - - Gets a timer that can be used to trigger redraws on animations - - - - - Pause any animations - - - - - Unpause any animations - - - - - Draw our image - - - - - - - Translate our Aspect into an image. - - The strategy is: - If its a byte array, we treat it as an in-memory image - If it's an int, we use that as an index into our image list - If it's a string, we try to load a file by that name. If we can't, - we use the string as an index into our image list. - - An image - - - - This is the method that is invoked by the timer. It basically switches control to the listview thread. - - not used - - - - This is the OnTimer callback, but invoked in the same thread as the creator of the ListView. - This method can use all of ListViews methods without creating a CrossThread exception. - - - - - Instances of this class kept track of the animation state of a single image. - - - - - Is the given image an animation - - The image to be tested - Is the image an animation? - - - - Create an AnimationState in a quiet state - - - - - Create an animation state for the given image, which may or may not - be an animation - - The image to be rendered - - - - Does this state represent a valid animation - - - - - Advance our images current frame and calculate when it will expire - - - - - Render our Aspect as a progress bar - - - - - Make a BarRenderer - - - - - Make a BarRenderer for the given range of data values - - - - - Make a BarRenderer using a custom bar scheme - - - - - Make a BarRenderer using a custom bar scheme - - - - - Make a BarRenderer that uses a horizontal gradient - - - - - Make a BarRenderer that uses a horizontal gradient - - - - - 此栏是否应以系统样式绘制? - - - - - 将从我们的单元格边框开始绘制多少像素的条形图 - - - - - 在绘制进度条之前,将使用什么颜色填充控件内部? - - - - - 进度条边框颜色 - - - - - 进度条的边框像素宽 - - - - - 进度条的“填充”部分应该是什么颜色? - - 仅当GradientStartColor为Color.Empty时才使用此选项 - - - - 使用渐变以此颜色开始填充进度条 - - - - - 使用渐变填充以此颜色结尾的进度条 - - - - - 使用渐变以此颜色开始填充渐满进度条 - - - - - 使用渐变填充以此颜色结尾的渐满进度条 - - - - - 无论列变得多宽,进度条都不会比这个宽。 - - - - - 无论单元格有多高,进度条都不会比这个高 - - - - - 预期的最小数据值。小于此值的值将显示一个空条。 - - - - - 接近满时的值,高于该值时,显示不同颜色,小于等于MinimumValue或大于MaximumValue值,则表示未设置该值 - - - - - 范围的最大值。大于此值的值将给出一个完整的条形。 - - - - - The Pen that will draw the frame surrounding this bar - - - - - The brush that will be used to fill the bar - - - - - The brush that will be used to fill the bar - - - - - The brush that will be used to fill the background of the bar - - - - - Draw this progress bar using a gradient - - - - - - - Draw our aspect - - - - - - - Handle the GetEditRectangle request - - - - - - - - - - - An ImagesRenderer draws zero or more images depending on the data returned by its Aspect. - - This renderer's Aspect must return a ICollection of ints, strings or Images, - each of which will be drawn horizontally one after the other. - As of v2.1, this functionality has been absorbed into ImageRenderer and this is now an - empty shell, solely for backwards compatibility. - - - - - A MultiImageRenderer draws the same image a number of times based on our data value - - The stars in the Rating column of iTunes is a good example of this type of renderer. - - - - Make a quiet renderer - - - - - Make an image renderer that will draw the indicated image, at most maxImages times. - - - - - - - - - The index of the image that should be drawn - - - - - The name of the image that should be drawn - - - - - The image selector that will give the image to be drawn - - Like all image selectors, this can be an int, string or Image - - - - What is the maximum number of images that this renderer should draw? - - - - - Values less than or equal to this will have 0 images drawn - - - - - Values greater than or equal to this will have MaxNumberImages images drawn - - - - - Draw our data value - - - - - - - A class to render a value that contains a bitwise-OR'ed collection of values. - - - - - Register the given image to the given value - - When this flag is present... - ...draw this image - - - - Draw the flags - - - - - - - Do the actual work of hit testing. Subclasses should override this rather than HitTest() - - - - - - - - - This renderer draws an image, a single line title, and then multi-line description - under the title. - - - This class works best with FullRowSelect = true. - It's not designed to work with cell editing -- it will work but will look odd. - - It's not RightToLeft friendly. - - - - - - Create a DescribedTaskRenderer - - - - - Should text be rendered using GDI routines? This makes the text look more - like a native List view control. - - - - - Gets or set the font that will be used to draw the title of the task - - If this is null, the ListView's font will be used - - - - Return a font that has been set for the title or a reasonable default - - - - - Gets or set the color of the title of the task - - This color is used when the task is not selected or when the listview - has a translucent selection mechanism. - - - - Return the color of the title of the task or a reasonable default - - - - - Gets or set the font that will be used to draw the description of the task - - If this is null, the ListView's font will be used - - - - Return a font that has been set for the title or a reasonable default - - - - - Gets or set the color of the description of the task - - This color is used when the task is not selected or when the listview - has a translucent selection mechanism. - - - - Return the color of the description of the task or a reasonable default - - - - - Gets or sets the number of pixels that will be left between the image and the text - - - - - 顶部留白像素 - - - - - Gets or sets the number of pixels that will be left between the title and the description - - - - - Gets or sets the name of the aspect of the model object that contains the task description - - - - - Gets or sets the filter that is filtering the ObjectListView and for - which this renderer should highlight text - - - - - When a filter changes, keep track of the text matching filters - - - - - Fetch the description from the model class - - - - - - - - - - - - - - - Draw our item - - - - - - - Draw the task - - - - - - - - - - Handle the HitTest request - - - - - - - - - This renderer draws a functioning button in its cell - - - - - Gets or sets how each button will be sized - - - - - Gets or sets the size of the button when the SizingMode is FixedBounds - - If this is not set, the bounds of the cell will be used - - - - Gets or sets the extra space that surrounds the cell when the SizingMode is TextBounds - - - - - Gets or sets the maximum width that a button can occupy. - -1 means there is no maximum width. - - This is only considered when the SizingMode is TextBounds - - - - Gets or sets the minimum width that a button can occupy. - -1 means there is no minimum width. - - This is only considered when the SizingMode is TextBounds - - - - 获取或设置此列按钮的字体颜色(如果有按钮的话) - - - - - 获取或设置此列按钮的背景颜色(如果有按钮的话) - - - - - 获取或设置此列按钮的边框颜色(如果有按钮的话) - - - - - 获取或设置此列按钮的内边框颜色(如果有按钮的话) - - - - - 获取或设置此列按钮是否画边框(如果有按钮的话) - - - - - Calculate the size of the contents - - - - - - - - Draw the button - - - - - - - What part of the control is under the given point? - - - - - - - - - - What is the state of the button? - - - - - - Is the mouse over the button? - - - - - The common interface supported by all style objects - - - - - Gets or set the font that will be used by this style - - - - - Gets or set the font style - - - - - Gets or sets the ForeColor - - - - - Gets or sets the BackColor - - - - - Basic implementation of IItemStyle - - - - - Gets or sets the font that will be applied by this style - - - - - Gets or sets the style of font that will be applied by this style - - - - - Gets or sets the color of the text that will be applied by this style - - - - - Gets or sets the background color that will be applied by this style - - - - - Instances of this class specify how should "hot items" (non-selected - rows under the cursor) be renderered. - - - - - Gets or sets the overlay that should be drawn as part of the hot item - - - - - Gets or sets the decoration that should be drawn as part of the hot item - - A decoration is different from an overlay in that an decoration - scrolls with the listview contents, whilst an overlay does not. - - - - This class defines how a cell should be formatted - - - - - Gets or sets the font that will be applied by this style - - - - - Gets or sets the style of font that will be applied by this style - - - - - Gets or sets the color of the text that will be applied by this style - - - - - Gets or sets the background color that will be applied by this style - - - - - Instances of this class describe how hyperlinks will appear - - - - - Create a HyperlinkStyle - - - - - What sort of formatting should be applied to hyperlinks in their normal state? - - - - - What sort of formatting should be applied to hyperlinks when the mouse is over them? - - - - - What sort of formatting should be applied to hyperlinks after they have been clicked? - - - - - Gets or sets the cursor that should be shown when the mouse is over a hyperlink. - - - - - Instances of this class control one the styling of one particular state - (normal, hot, pressed) of a header control - - - - - Gets or sets the font that will be applied by this style - - - - - Gets or sets the color of the text that will be applied by this style - - - - - Gets or sets the background color that will be applied by this style - - - - - Gets or sets the color in which a frame will be drawn around the header for this column - - - - - Gets or sets the width of the frame that will be drawn around the header for this column - - - - - This class defines how a header should be formatted in its various states. - - - - - Create a new HeaderFormatStyle - - - - - What sort of formatting should be applied to a column header when the mouse is over it? - - - - - What sort of formatting should be applied to a column header in its normal state? - - - - - What sort of formatting should be applied to a column header when pressed? - - - - - Set the font for all three states - - - - - - Set the fore color for all three states - - - - - - Set the back color for all three states - - - - - - 正常为选中按钮 - - - - - 获得焦点的按钮 - - - - - 鼠标经过样式 - - - - - 获得焦点并鼠标经过 - - - - - 自定义GDI工具,绘制按钮 - - - - - 绘制圆形按钮(用法同矩形按钮) - - - - - - - - - - 绘制圆角按钮 - - 要绘制的文字 - Graphics 对象 - 要填充的矩形 - - - - - 根据普通矩形得到圆角矩形的路径 - - 原始矩形 - 半径 - 图形路径 - - - - A GlassPanelForm sits transparently over an ObjectListView to show overlays. - - - - - Get the low-level windows flag that will be given to CreateWindow. - - - - - Attach this form to the given ObjectListView - - - - - Made the overlay panel invisible - - - - - Show the overlay panel in its correctly location - - - If the panel is always shown, this method does nothing. - If the panel is being resized, this method also does nothing. - - - - - Detach this glass panel from its previous ObjectListView - - - You should unbind the overlay panel before making any changes to the - widget hierarchy. - - - - - Handle when the form that owns the ObjectListView begins to be resized - - - - - - - Handle when the form that owns the ObjectListView finished to be resized - - - - - - - The owning form has moved. Move the overlay panel too. - - - - - - - The owning form is resizing. Hide our overlay panel until the resizing stops - - - - - - - Handle when the bound OLV changes its location. The overlay panel must - be moved too, IFF it is currently visible. - - - - - - - Handle when the bound OLV changes size. The overlay panel must - resize too, IFF it is currently visible. - - - - - - - Handle when the bound OLV is part of a TabControl and that - TabControl changes tabs. The overlay panel is hidden. The - first time the bound OLV is redrawn, the overlay panel will - be shown again. - - - - - - - Somewhere the parent of the bound OLV has changed. Update - our events. - - - - - - - Handle when the bound OLV changes its visibility. - The overlay panel should match the OLV's visibility. - - - - - - - Class used to capture window messages for the header of the list view - control. - - - - - Create a header control for the given ObjectListView. - - - - - - Return the index of the column under the current cursor position, - or -1 if the cursor is not over a column - - Index of the column under the cursor, or -1 - - - - 返回此控件的Windows句柄 - - - 当ObjectListView被初始化为UserControl的一部分时,GetHeaderControl()方法返回0,直到UserControl完全初始化。 - 因此,构造函数中的AssignHandle()调用不起作用。因此,我们覆盖了Handle属性,以便值始终为当前值。 - - - - - Gets or sets a style that should be applied to the font of the - column's header text when the mouse is over that column - - THIS IS EXPERIMENTAL. USE AT OWN RISK. August 2009 - - - - 如果光标位于其复选框上,则获取光标下列的索引 - - - - - Gets the client rectangle for the header - - - - - 如果给定坐标点在给定列的复选框上方,则返回TRUE。 - - - - - - - - 获取光标是否位于“锁定”的分隔线上,即用户无法拖动的分隔线。 - - - - - 获取或设置此标头所属的列表视图 - - - - - 获取标题的最大高度。-1表示没有最大值。 - - - - - 获取标题的最小高度。-1表示没有最低要求。 - - - - - Get or set the ToolTip that shows tips for the header - - - - - 获取或设置当列标题中的文本太长而无法放入列中时,是否应对其进行自动换行 - - - - - Calculate how height the header needs to be - - Height in pixels - - - - Get the bounds of the checkbox against the given column - - - - - - - Should the given column be drawn with a checkbox against it? - - - - - - - Should the given column show a sort indicator? - - - - - - - Should the given column be drawn with a filter indicator against it? - - - - - - - Should the given column show a non-themed sort indicator? - - - - - - - Return the bounds of the item with the given index - - - - - - - Return the bounds within which the given column will be drawn - - - - - - - Force the header to redraw by invalidating it - - - - - Force the header to redraw a single column by invalidating it - - - - - Create a native tool tip control for this listview - - - - - Override the basic message pump - - - - - - Handle the LButtonDown windows message - - - - - - - Handle the LButtonUp windows message - - - - - - - Handle the SetCursor windows message - - - - - - - Handle the MouseMove windows message - - - - - - - Handle the MouseLeave windows message - - - - - - - Handle the Notify windows message - - - - - - - Handle the CustomDraw windows message - - - - - - - The message divides a ListView's space between the header and the rows of the listview. - The WINDOWPOS structure controls the headers bounds, the RECT controls the listview bounds. - - - - - - - Handle when the underlying header control is destroyed - - - - - - - Does this header need to be custom drawn? - - Word wrapping and colored text require custom drawning. Funnily enough, we - can change the font natively. - - - - Draw one cell of the header - - - - - - - - Draw a background for the header, without using Themes. - - - - - - - - - - - Draw a more-or-less pure themed header background. - - - - - - - - - - Draw a sort indicator using themes - - - - - - - Draw a sort indicator without using themes - - - - - - - - Draw an indication that this column has a filter applied to it - - - - - - - - Draw the header's image and text - - - - - - - - - Return the header format that should be used for the given column - - - - - - - What style should be applied to the header? - - - - - - - - - What font should be used to draw the header text? - - - - - - - - - What flags will be used when drawing text - - - - - Perform a HitTest for the header control - - - - Null if the given point isn't over the header - - - - Instances of this class put a CheckedListBox into a tool strip menu item. - - - - - Create a ToolStripCheckedListBox - - - - - Gets the control embedded in the menu - - - - - Gets the items shown in the checkedlistbox - - - - - Gets or sets whether an item should be checked when it is clicked - - - - - Gets a collection of the checked items - - - - - Add a possibly checked item to the control - - - - - - - Add an item with the given state to the control - - - - - - - Gets the checkedness of the i'th item - - - - - - - Set the checkedness of the i'th item - - - - - - - Check all the items in the control - - - - - Unchecked all the items in the control - - - - - Listen for events on the underlying control - - - - - - Stop listening for events on the underlying control - - - - - - Tell the world that an item was checked - - - - - Trigger the ItemCheck event - - - - - - - A limited wrapper around a Windows tooltip window. - - - - - These are the standard icons that a tooltip can display. - - - - - No icon - - - - - Info - - - - - Warning - - - - - Error - - - - - Large info (Vista and later only) - - - - - Large warning (Vista and later only) - - - - - Large error (Vista and later only) - - - - - - - - - - - - - - - - - - - - - - - - - Get or set if the style of the tooltip control - - - - - Get or set if the tooltip should be shown as a ballon - - - - - Get or set if the tooltip should be shown as a ballon - - - - - Get or set the background color of the tooltip - - - - - Get or set the color of the text and border on the tooltip. - - - - - Get or set the title that will be shown on the tooltip. - - - - - Get or set the icon that will be shown on the tooltip. - - - - - Gets or sets the font that will be used to draw this control. - is still. - - Setting this to null reverts to the default font. - - - - Gets or sets how many milliseconds the tooltip will remain visible while the mouse - is still. - - - - - Gets or sets how many milliseconds the mouse must be still before the tooltip is shown. - - - - - Gets or sets how many milliseconds the mouse must be still before the tooltip is shown again. - - - - - Create the underlying control. - - The parent of the tooltip - This does nothing if the control has already been created - - - - Take a copy of the current settings and restore them when the - tooltip is poppped. - - - This call cannot be nested. Subsequent calls to this method will be ignored - until PopSettings() is called. - - - - - Restore the settings of the tooltip as they were when PushSettings() - was last called. - - - - - Add the given window to those for whom this tooltip will show tips - - The window - - - - Hide any currently visible tooltip - - - - - - Remove the given window from those managed by this tooltip - - - - - - Set the maximum width of a tooltip string. - - - - - Set the maximum width of a tooltip string. - - Setting this ensures that line breaks in the tooltip are honoured. - - - - Make a TOOLINFO structure for the given window - - - A filled in TOOLINFO - - - - Handle a WmNotify message - - The msg - True if the message has been handled - - - - Handle a get display info message - - The msg - True if the message has been handled - - - - Handle a TTN_LINKCLICK message - - The msg - True if the message has been handled - This cannot call base.WndProc() since the msg may have come from another control. - - - - Handle a TTN_POP message - - The msg - True if the message has been handled - This cannot call base.WndProc() since the msg may have come from another control. - - - - Handle a TTN_SHOW message - - The msg - True if the message has been handled - This cannot call base.WndProc() since the msg may have come from another control. - - - - Handle a reflected notify message - - The msg - True if the message has been handled - - - - Mess with the basic message pump of the tooltip - - - - - - Tell the world that a tooltip is about to show - - - - - Tell the world that a tooltip is about to disappear - - - - - - - - - - - - - - - - - This form is an example of how an application could allows the user to select which columns - an ObjectListView will display, as well as select which order the columns are displayed in. - - - In Tile view, ColumnHeader.DisplayIndex does nothing. To reorder the columns you have - to change the order of objects in the Columns property. - Remember that the first column is special! - It has to remain the first column. - - - - - Make a new ColumnSelectionForm - - - - - Open this form so it will edit the columns that are available in the listview's current view - - The ObjectListView whose columns are to be altered - - - - Open this form so it will edit the columns that are available in the given listview - when the listview is showing the given type of view. - - The ObjectListView whose columns are to be altered - The view that is to be altered. Must be View.Details or View.Tile - - - - Initialize the form to show the columns of the given view - - - - - - - The user has pressed OK. Do what's requied. - - - - - - - Enable the controls on the dialog to match the current state - - - - - A Comparer that will sort a list of columns so that visible ones come before hidden ones, - and that are ordered by their display order. - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - An object that implements the IGenerator interface provides the ability - to dynamically create columns - for an ObjectListView based on the characteristics of a given collection - of model objects. - - - - - Generate columns into the given ObjectListView that come from the given - model object type. - - The ObjectListView to modify - The model type whose attributes will be considered. - Will columns be generated for properties that are not marked with [OLVColumn]. - - - - Generate a list of OLVColumns based on the attributes of the given type - If allProperties to true, all public properties will have a matching column generated. - If allProperties is false, only properties that have a OLVColumn attribute will have a column generated. - - - Will columns be generated for properties that are not marked with [OLVColumn]. - A collection of OLVColumns matching the attributes of Type that have OLVColumnAttributes. - - - - The Generator class provides methods to dynamically create columns - for an ObjectListView based on the characteristics of a given collection - of model objects. - - - For a given type, a Generator can create columns to match the public properties - of that type. The generator can consider all public properties or only those public properties marked with - [OLVColumn] attribute. - - - - - Gets or sets the actual generator used by the static convinence methods. - - If you subclass the standard generator or implement IGenerator yourself, - you should install an instance of your subclass/implementation here. - - - - Replace all columns of the given ObjectListView with columns generated - from the first member of the given enumerable. If the enumerable is - empty or null, the ObjectListView will be cleared. - - The ObjectListView to modify - The collection whose first element will be used to generate columns. - - - - Replace all columns of the given ObjectListView with columns generated - from the first member of the given enumerable. If the enumerable is - empty or null, the ObjectListView will be cleared. - - The ObjectListView to modify - The collection whose first element will be used to generate columns. - Will columns be generated for properties that are not marked with [OLVColumn]. - - - - Generate columns into the given ObjectListView that come from the public properties of the given - model object type. - - The ObjectListView to modify - The model type whose attributes will be considered. - - - - Generate columns into the given ObjectListView that come from the public properties of the given - model object type. - - The ObjectListView to modify - The model type whose attributes will be considered. - Will columns be generated for properties that are not marked with [OLVColumn]. - - - - Generate a list of OLVColumns based on the public properties of the given type - that have a OLVColumn attribute. - - - A collection of OLVColumns matching the attributes of Type that have OLVColumnAttributes. - - - - Generate columns into the given ObjectListView that come from the given - model object type. - - The ObjectListView to modify - The model type whose attributes will be considered. - Will columns be generated for properties that are not marked with [OLVColumn]. - - - - Generate a list of OLVColumns based on the attributes of the given type - If allProperties to true, all public properties will have a matching column generated. - If allProperties is false, only properties that have a OLVColumn attribute will have a column generated. - - - Will columns be generated for properties that are not marked with [OLVColumn]. - A collection of OLVColumns matching the attributes of Type that have OLVColumnAttributes. - - - - Replace all the columns in the given listview with the given list of columns. - - - - - - - Post process columns after creating them and adding them to the AllColumns collection. - - - - - - Create a column from the given PropertyInfo and OLVColumn attribute - - - - - - - - Make a column from the given PropertyInfo - - - - - - - Make a column from the given PropertyDescriptor - - - - - - - Create a column with all the given information - - - - - - - - - - - Create a column. - - - - - - - - - Convert a property name to a displayable title. - - - - - - - Configure the given column to show a checkbox if appropriate - - - - - - - If this given type has an property marked with [OLVChildren], make delegates that will - traverse that property as the children of an instance of the model - - - - - - - Generate CanExpand and ChildrenGetter delegates from the given property. - - - - - - - An OLVExporter converts a collection of rows from an ObjectListView - into a variety of textual formats. - - - - - What format will be used for exporting - - - - - Tab separated values, according to http://www.iana.org/assignments/media-types/text/tab-separated-values - - - - - Alias for TabSeparated - - - - - Comma separated values, according to http://www.ietf.org/rfc/rfc4180.txt - - - - - HTML table, according to me - - - - - Create an empty exporter - - - - - Create an exporter that will export all the rows of the given ObjectListView - - - - - - Create an exporter that will export all the given rows from the given ObjectListView - - - - - - - Gets or sets whether hidden columns will also be included in the textual - representation. If this is false (the default), only visible columns will - be included. - - - - - Gets or sets whether column headers will also be included in the text - and HTML representation. Default is true. - - - - - Gets the ObjectListView that is being used as the source of the data - to be exported - - - - - Gets the model objects that are to be placed in the data object - - - - - Export the nominated rows from the nominated ObjectListView. - Returns the result in the expected format. - - - - This will perform only one conversion, even if called multiple times with different formats. - - - - Convert - - - - - Encode a string such that it can be used as a value in a CSV file. - This basically means replacing any quote mark with two quote marks, - and enclosing the whole string in quotes. - - - - - - - HTML-encodes a string and returns the encoded string. - - The text string to encode. - The HTML-encoded text. - Taken from http://www.west-wind.com/weblog/posts/2009/Feb/05/Html-and-Uri-String-Encoding-without-SystemWeb - - - - A TypedObjectListView is a type-safe wrapper around an ObjectListView. - - - VCS does not support generics on controls. It can be faked to some degree, but it - cannot be completely overcome. In our case in particular, there is no way to create - the custom OLVColumn's that we need to truly be generic. So this wrapper is an - experiment in providing some type-safe access in a way that is useful and available today. - A TypedObjectListView is not more efficient than a normal ObjectListView. - Underneath, the same name of casts are performed. But it is easier to use since you - do not have to write the casts yourself. - - - The class of model object that the list will manage - - To use a TypedObjectListView, you write code like this: - - TypedObjectListView<Person> tlist = new TypedObjectListView<Person>(this.listView1); - tlist.CheckStateGetter = delegate(Person x) { return x.IsActive; }; - tlist.GetColumn(0).AspectGetter = delegate(Person x) { return x.Name; }; - ... - - To iterate over the selected objects, you can write something elegant like this: - - foreach (Person x in tlist.SelectedObjects) { - x.GrantSalaryIncrease(); - } - - - - - - Create a typed wrapper around the given list. - - The listview to be wrapped - - - - Return the model object that is checked, if only one row is checked. - If zero rows are checked, or more than one row, null is returned. - - - - - Return the list of all the checked model objects - - - - - The ObjectListView that is being wrapped - - - - - Get or set the list of all model objects - - - - - Return the model object that is selected, if only one row is selected. - If zero rows are selected, or more than one row, null is returned. - - - - - The list of model objects that are selected. - - - - - Return a typed wrapper around the column at the given index - - The index of the column - A typed column or null - - - - Return a typed wrapper around the column with the given name - - The name of the column - A typed column or null - - - - Return the model object at the given index - - The index of the model object - The model object or null - - - - CheckStateGetter - - - - - - - Gets or sets the check state getter - - - - - BooleanCheckStateGetter - - - - - - - Gets or sets the boolean check state getter - - - - - CheckStatePutter - - - - - - - - Gets or sets the check state putter delegate - - - - - BooleanCheckStatePutter - - - - - - - - Gets or sets the boolean check state putter - - - - - ToolTipGetter - - - - - - - - Gets or sets the cell tooltip getter - - - - - Gets or sets the header tool tip getter - - - - - This method will generate AspectGetters for any column that has an AspectName. - - - - - A type-safe wrapper around an OLVColumn - - - - - - Creates a TypedColumn - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Generate an aspect getter that does the same thing as the AspectName, - except without using reflection. - - - - If you have an AspectName of "Owner.Address.Postcode", this will generate - the equivilent of: this.AspectGetter = delegate (object x) { - return x.Owner.Address.Postcode; - } - - - - If AspectName is empty, this method will do nothing, otherwise - this will replace any existing AspectGetter. - - - - - - Generates an aspect getter method dynamically. The method will execute - the given dotted chain of selectors against a model object given at runtime. - - The type of model object to be passed to the generated method - A dotted chain of selectors. Each selector can be the name of a - field, property or parameter-less method. - A typed delegate - - - - This method generates the actual IL for the method. - - - - - - - - A virtual object list view operates in virtual mode, that is, it only gets model objects for - a row when it is needed. This gives it the ability to handle very large numbers of rows with - minimal resources. - - A listview is not a great user interface for a large number of items. But if you've - ever wanted to have a list with 10 million items, go ahead, knock yourself out. - Virtual lists can never iterate their contents. That would defeat the whole purpose. - Animated GIFs should not be used in virtual lists. Animated GIFs require some state - information to be stored for each animation, but virtual lists specifically do not keep any state information. - In any case, you really do not want to keep state information for 10 million animations! - - Although it isn't documented, .NET virtual lists cannot have checkboxes. This class codes around this limitation, - but you must use the functions provided by ObjectListView: CheckedObjects, CheckObject(), UncheckObject() and their friends. - If you use the normal check box properties (CheckedItems or CheckedIndicies), they will throw an exception, since the - list is in virtual mode, and .NET "knows" it can't handle checkboxes in virtual mode. - - Due to the limits of the underlying Windows control, virtual lists do not trigger ItemCheck/ItemChecked events. - Use a CheckStatePutter instead. - To enable grouping, you must provide an implmentation of IVirtualGroups interface, via the GroupingStrategy property. - Similarly, to enable filtering on the list, your VirtualListDataSource must also implement the IFilterableDataSource interface. - - - - - Create a VirtualObjectListView - - - - - Gets whether or not this listview is capabale of showing groups - - - - - Get or set the collection of model objects that are checked. - When setting this property, any row whose model object isn't - in the given collection will be unchecked. Setting to null is - equivilent to unchecking all. - - - - This property returns a simple collection. Changes made to the returned - collection do NOT affect the list. This is different to the behaviour of - CheckedIndicies collection. - - - When getting CheckedObjects, the performance of this method is O(n) where n is the number of checked objects. - When setting CheckedObjects, the performance of this method is O(n) where n is the number of checked objects plus - the number of objects to be checked. - - - If the ListView is not currently showing CheckBoxes, this property does nothing. It does - not remember any check box settings made. - - - This class optimizes the management of CheckStates so that it will work efficiently even on - large lists of item. However, those optimizations are impossible if you install a CheckStateGetter. - With a CheckStateGetter installed, the performance of this method is O(n) where n is the size - of the list. This could be painfully slow. - - - - - Gets or sets whether or not an object will be included in the CheckedObjects - collection, even if it is not present in the control at the moment - - - This property is an implementation detail and should not be altered. - - - - - Gets the collection of objects that survive any filtering that may be in place. - - - - - Gets or sets the strategy that will be used to create groups - - - This must be provided for a virtual list to show groups. - - - - - Gets whether or not the current list is filtering its contents - - - This is only possible if our underlying data source supports filtering. - - - - - Get/set the collection of objects that this list will show - - - - The contents of the control will be updated immediately after setting this property. - - Setting this property preserves selection, if possible. Use SetObjects() if - you do not want to preserve the selection. Preserving selection is the slowest part of this - code -- performance is O(n) where n is the number of selected rows. - This method is not thread safe. - The property DOES work on virtual lists, but if you try to iterate through a list - of 10 million objects, it may take some time :) - - - - - This delegate is used to fetch a rowObject, given it's index within the list - - Only use this property if you are not using a VirtualListDataSource. - - - - Should this list show its items in groups? - - - - - Get/set the data source that is behind this virtual list - - Setting this will cause the list to redraw. - - - - Gets or sets the number of rows in this virtual list. - - - There is an annoying feature/bug in the .NET ListView class. - When you change the VirtualListSize property, it always scrolls so - that the focused item is the top item. This is annoying since it makes - the virtual list seem to flicker as the control scrolls to show the focused - item and then scrolls back to where ObjectListView wants it to be. - - - - - Return the number of items in the list - - the number of items in the list - - - - Return the model object at the given index - - Index of the model object to be returned - A model object - - - - Find the given model object within the listview and return its index - - The model object to be found - The index of the object. -1 means the object was not present - - - - Return the OLVListItem that displays the given model object - - The modelObject whose item is to be found - The OLVListItem that displays the model, or null - This method has O(n) performance. - - - - Add the given collection of model objects to this control. - - A collection of model objects - - The added objects will appear in their correct sort position, if sorting - is active. Otherwise, they will appear at the end of the list. - No check is performed to see if any of the objects are already in the ListView. - Null objects are silently ignored. - - - - - Remove all items from this list - - This method can safely be called from background threads. - - - - Scroll the listview so that the given group is at the top. - - The index of the group to be revealed - - If the group is already visible, the list will still be scrolled to move - the group to the top, if that is possible. - - This only works when the list is showing groups (obviously). - - - - - Inserts the given collection of model objects to this control at hte given location - - - A collection of model objects - - The added objects will appear in their correct sort position, if sorting - is active. Otherwise, they will appear at the given position of the list. - No check is performed to see if any of the objects are already in the ListView. - Null objects are silently ignored. - - - - - Update the rows that are showing the given objects - - This method does not resort the items. - - - - Update the rows that are selected - - This method does not resort or regroup the view. - - - - Remove all of the given objects from the control - - Collection of objects to be removed - - Nulls and model objects that are not in the ListView are silently ignored. - Due to problems in the underlying ListView, if you remove all the objects from - the control using this method and the list scroll vertically when you do so, - then when you subsequenially add more objects to the control, - the vertical scroll bar will become confused and the control will draw one or more - blank lines at the top of the list. - - - - - Select the row that is displaying the given model object. All other rows are deselected. - - Model object to select - Should the object be focused as well? - - - - Select the rows that is displaying any of the given model object. All other rows are deselected. - - A collection of model objects - This method has O(n) performance where n is the number of model objects passed. - Do not use this to select all the rows in the list -- use SelectAll() for that. - - - - Set the collection of objects that this control will show. - - - Should the state of the list be preserved as far as is possible. - - - - Get the checkedness of an object from the model. Returning null means the - model does know and the value from the control will be used. - - - - - - - Rebuild the list with its current contents. - - - Invalidate any cached information when we rebuild the list. - - - - - Clear any cached info this list may have been using - - - - - Do the work of creating groups for this control - - - - - - Do the plumbing to disable groups on a virtual list - - - - - Do the plumbing to enable groups on a virtual list - - - - - Return the position of the given itemIndex in the list as it currently shown to the user. - If the control is not grouped, the display order is the same as the - sorted list order. But if the list is grouped, the display order is different. - - - - - - - Return the last item in the order they are shown to the user. - If the control is not grouped, the display order is the same as the - sorted list order. But if the list is grouped, the display order is different. - - - - - - Return the n'th item (0-based) in the order they are shown to the user. - If the control is not grouped, the display order is the same as the - sorted list order. But if the list is grouped, the display order is different. - - - - - - - Return the ListViewItem that appears immediately after the given item. - If the given item is null, the first item in the list will be returned. - Return null if the given item is the last item. - - The item that is before the item that is returned, or null - A OLVListItem - - - - Return the ListViewItem that appears immediately before the given item. - If the given item is null, the last item in the list will be returned. - Return null if the given item is the first item. - - The item that is before the item that is returned - A ListViewItem - - - - Make a list of groups that should be shown according to the given parameters - - - - - - - Create a OLVListItem for given row index - - The index of the row that is needed - An OLVListItem - - - - On virtual lists, this cannot work. - - - - - Record the change of checkstate for the given object in the model. - This does not update the UI -- only the model - - - - The check state that was recorded and that should be used to update - the control. - - - - Refresh the given item in the list - - The item to refresh - - - - Change the size of the list - - - - - - Take ownership of the 'objects' collection. This separates our collection from the source. - - - - This method - separates the 'objects' instance variable from its source, so that any AddObject/RemoveObject - calls will modify our collection and not the original colleciton. - - - VirtualObjectListViews always own their collections, so this is a no-op. - - - - - - Change the state of the control to reflect changes in filtering - - - - - Change the size of the virtual list so that it matches its data source - - - - - Handle the CacheVirtualItems event - - - - - - - Handle a RetrieveVirtualItem - - - - - - - Handle the SearchForVirtualList event, which is called when the user types into a virtual list - - - - - - - Find the first row in the given range of rows that prefix matches the string value of the given column. - - - - - - The index of the matched row, or -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 初始化的时候给个alpha值,这样在灰图片的时候可以半透明 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 使图片单色化 - - - - - - - - - - - - 自定义 - - - - - 预置 - - - - - 系统 - - - - - 颜色表示法 - - - - - 根据颜色表示字符串获取对应的颜色 - - - - - - - - - - - - - - - - - - - - - - - - - - - 从文件中获取Image对象 - 这个函数的主要功能是处理一些ico文件 - 一些ico文件的格式可能比较新,直接Image.FormFile,会报内存不足的异常 - - - 是否将文件读入内存操作,如果为false,将直接返回Image.FromFile,在此情况下, - 必须手动释放Image对象,否则文件将一直处于占用状态,如果为true,则在内存中拷贝副本 - - - - - - 将图像转为Icon对象,使用png格式 - - - - - - - 将图像转为Icon对象 - - - - - - - - 返回适应指定容器大小的图像 - 如果图像的尺寸(长或宽)超出了容器范围,将按比例获取图像的缩略图返回,否则直接返回图像 - 此方法最终调用 Image.GetThumbnailImage - 但是注意,在指定的容器尺寸过小时,返回的Image尺寸不可知,是在为了显示16x16的小缩略图是发现了此问题 - 使用 GetScaleImage - - - - - - - - - 返回适应指定容器大小的图像 - 在需要的情况下,此方法创建一个新对象,进行绘制 - - - - - - - - 返回适应指定容器大小的图像 - 在需要的情况下,此方法创建一个新对象,进行绘制 - - - - - - - - - Gets the bounding rectangle of an image required to fit - in to the given rectangle keeping the image aspect ratio. - - The source image. - The rectangle to fit in to. - Horizontal image aligment in percent. - Vertical image aligment in percent. - New image size. - - - - Gets the bounding rectangle of an image required to fit - in to the given rectangle keeping the image aspect ratio. - The image will be centered in the fit box. - - The source image. - The rectangle to fit in to. - New image size. - - - - Gets the scaled size of an image required to fit - in to the given size keeping the image aspect ratio. - - The source image. - The size to fit in to. - New image size. - - - - 获取一个圆角矩形 - - - - 角度 - - - - - 获取一个圆角矩形 - - - 角度 - - - - - - - - - - - - - - - - - - - - - - 返回一个表示箭头的Path - 如果开始坐标和结束坐标之间的距离大于箭头的大小,箭头向结束坐标对齐,顶着结束坐标 - - 开始坐标 - 结束坐标(顶点,方向) - 箭头的长短,大小 - 箭头的粗细 - - - - - 在指定的Image上绘制特定标记 - - - - - 文件不存在 - - - - - - 文件不存在 - - - - - - 无法读取文件 - - - - - - - - - - - - - - - - - - - - - 验证失败中显示错误信息时用的标题 - - - - - 验证失败时是否需要高亮显示(改变背景色) - - - - - 验证控件的输入 - - - - - - - 自定义验证方法 - 在基础验证都通过后,才会调用自定义验证方法(如果有) - - - - - - - - - - 是否支持 Windows Vista 以上的玻璃效果 - - - - - 是否打开了玻璃效果 - - - - - 获取应用程序主窗体 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 这个缓存是全局的 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 所对应的绑定数据类型 - - - - - 是否对 DataBoundType 的子类型有效 - 默认无效 - 如果设置为 true,又同时添加了基类与子类的 codon,则运行时会取到哪个codon不确定 - 通常取先添加的那个 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 如果输入的字符串包含 "${...}" 这样的格式,则认为是指代资源文件中的一个字符串资源 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 获取授予该组件的许可证密钥 - - - - - 0:未验证 - 1:验证失败 - 2:验证通过 - - - - - 获取组件的实例或类型的许可证(如果已给定上下文并确定拒绝许可证是否引发异常)。 - - - - - - - - - - 强类型资源类,用于查找本地化字符串等。 - - - - - - - - - - 返回此类使用的缓存 ResourceManager 实例。 - - - - - 为使用此强类型资源类的所有资源查找 - 重写当前线程的 CurrentUICulture 属性。 - - - - - 查找类似 消息 的本地化字符串。 - - - - - 查找类似 底部 的本地化字符串。 - - - - - 查找类似 顶部 的本地化字符串。 - - - - - 查找类似 更大 (48x48) 的本地化字符串。 - - - - - 查找类似 大 (32x32) 的本地化字符串。 - - - - - 查找类似 中 (24x24) 的本地化字符串。 - - - - - 查找类似 小 (16x16) 的本地化字符串。 - - - - - Returns true if the current language is the default language. - - - - - Returns a System.String that represents the current System.Object. - - - - - - - - - - 返回此类使用的缓存 ResourceManager 实例。 - - - - - 为使用此强类型资源类的所有资源查找 - 重写当前线程的 CurrentUICulture 属性。 - - - - - 查找类似 消息 的本地化字符串。 - - - - - 查找类似 底部 的本地化字符串。 - - - - - 查找类似 顶部 的本地化字符串。 - - - - - 查找类似 更大 (48x48) 的本地化字符串。 - - - - - 查找类似 大 (32x32) 的本地化字符串。 - - - - - 查找类似 中 (24x24) 的本地化字符串。 - - - - - 查找类似 小 (16x16) 的本地化字符串。 - - - - - Returns true if the current language is the default language. - - - - - - - - - - Call GetLanguages() to retrieve a list of possible languages that can be used to set this property. - The default value is the default language. - - - - - Gets a list of available languages defined in this assembly. - - - - - - - - - - - - 如果输入的字符串包含 "${...}" 这样的格式,则认为是指代资源文件中的一个字符串资源 - - - - - - - Represents a pop-up window. - - - - - Gets the content of the pop-up. - - - - - Determines which animation to use while showing the pop-up window. - - - - - Determines which animation to use while hiding the pop-up window. - - - - - Determines the duration of the animation. - - - - - Gets or sets a value indicating whether the content should receive the focus after the pop-up has been opened. - - true if the content should be focused after the pop-up has been opened; otherwise, false. - If the FocusOnOpen property is set to false, then pop-up cannot use the fade effect. - - - - Gets or sets a value indicating whether presing the alt key should close the pop-up. - - true if presing the alt key does not close the pop-up; otherwise, false. - - - - Gets or sets a value indicating whether the is resizable. - - true if resizable; otherwise, false. - - - - Gets or sets a minimum size of the pop-up. - - An ordered pair of type representing the width and height of a rectangle. - - - - Gets or sets a maximum size of the pop-up. - - An ordered pair of type representing the width and height of a rectangle. - - - - Gets parameters of a new window. - - An object of type used when creating a new window. - - - - Initializes a new instance of the class. - - The content of the pop-up. - - Pop-up will be disposed immediately after disposion of the content control. - - is null. - - - - Raises the event. - - An that contains the event data. - - - - Processes a dialog box key. - - One of the values that represents the key to process. - - true if the key was processed by the control; otherwise, false. - - - - - Updates the pop-up region. - - - - - Shows the pop-up window below the specified control. - - The control below which the pop-up will be shown. - - When there is no space below the specified control, the pop-up control is shown above it. - - is null. - - - - Shows the pop-up window below the specified area of the specified control. - - The control used to compute screen location of specified area. - The area of control below which the pop-up will be shown. - - When there is no space below specified area, the pop-up control is shown above it. - - is null. - - - - Raises the event. - - An that contains the event data. - - - - Raises the event. - - A that contains the event data. - - - - Raises the event. - - An that contains the event data. - - - - Raises the event. - - A that contains the event data. - - - - Processes Windows messages. - - The Windows to process. - - - - Processes the resizing messages. - - The message. - true, if the WndProc method from the base class shouldn't be invoked. - - - - Paints the sizing grip. - - The instance containing the event data. - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - Types of animation of the pop-up window. - - - - - Uses no animation. - - - - - Animates the window from left to right. This flag can be used with roll or slide animation. - - - - - Animates the window from right to left. This flag can be used with roll or slide animation. - - - - - Animates the window from top to bottom. This flag can be used with roll or slide animation. - - - - - Animates the window from bottom to top. This flag can be used with roll or slide animation. - - - - - Makes the window appear to collapse inward if it is hiding or expand outward if the window is showing. - - - - - Uses a slide animation. - - - - - Uses a fade effect. - - - - - Uses a roll animation. - - - - - Uses a default animation. - - - - - Represents a Windows combo box control with a custom popup control attached. - - - - - Initializes a new instance of the class. - - - - - Gets or sets the drop down control. - - The drop down control. - - - - Gets or sets a value indicating whether the combo box is displaying its drop-down portion. - - - true if the drop-down portion is displayed; otherwise, false. The default is false. - - - - - Occurs when the drop-down portion of a is shown. - - - - - Shows the drop down. - - - - - Occurs when the drop-down portion of the is no longer visible. - - - - - Hides the drop down. - - - - - Processes Windows messages. - - The Windows to process. - - - This property is not relevant for this class. - This property is not relevant for this class. - - - This property is not relevant for this class. - This property is not relevant for this class. - - - This property is not relevant for this class. - This property is not relevant for this class. - - - This property is not relevant for this class. - This property is not relevant for this class. - - - This property is not relevant for this class. - This property is not relevant for this class. - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - Represents a Windows combo box control which can be used in a popup's content control. - - - - - Initializes a new instance of the PopupControl.ComboBox class. - - - - - Raises the event. - - An that contains the event data. - - - - Raises the event. - - An that contains the event data. - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 白色到灰色的垂直渐变 - - - - - - - - - - This method handles the RenderToolStripBorder event. - - - - - - - - - - - - A ToolstripManager rendering class with advanced control features - - - - - Creates a new EasyRender class for modifications - - - - - - - - - - - - - - - - - - - - Gets the manager to edit and change the appearance of the Toolstrip - - - - - Gets the manager to edit and change the appearance of Toolstrip buttons - - - - - Gets the manager to edit and change the appearance of other Toolstrip controls - - - - - Gets the manager to edit and change the appearance of the Panels - - - - - Gets the manager to edit and change the appearance of the Toolstrip split buttons - - - - - Gets the manager to edit and change the appearance of the Status-bar - - - - - Gets or sets whether to smooth the font text on all controls - - - - - Gets or sets the color of the text if the AlterColor is set to true - - - - - Gets or sets whether to override the font-color on all controls - - - - - Creates a GraphicsPath that appreciates an area where things can be drawn - - The rectangular area which will serve as the base - The curve amount of the corners - - - - - Creates a triangle based on the size and bounds sectors - - The area which the triangle is confined to - The size of the triangle - The direction which the triangle is pointing - - - - - Gets a color array based on the state of a normal button - - The button to check the state of - - - - - - Gets a color array based on the state of a split-button - - The button to check the state of - - - - - - Gets a color array based on the state of a menu-item - - The button to check the state of - - - - - - Gets a color array based on the state of a drop-down button - - The button to check the state of - - - - - - Gets a blending property for a specified type of Toolstrip item - - The Toolstrip item - The type of item this is - - - - - Fills a specified boundary with color - - The Graphics object to draw onto - The boundaries to draw the color - The brush to fill the color - - - - Fills a specified boundary with a gradient with specified colors - - The Graphics object to draw onto - The boundaries to draw the color - The color of the gradient at the top - The color of the gradient at the bottom - - - - Fills a specified boundary with a gradient with specified colors at a given angle - - The Graphics object to draw onto - The boundaries to draw the color - The color of the gradient at the top - The color of the gradient at the bottom - The angle which the gradient is drawn (null defaults to 90f) - - - - Fills a specified boundary with a gradient with specified colors at a given angle and with blending properties - - The Graphics object to draw onto - The boundaries to draw the color - The color of the gradient at the top - The color of the gradient at the bottom - The angle which the gradient is drawn (null defaults to 90f) - The blending options to draw the gradient - - - - Draws a set path with a defined brush - - The Graphics object to draw onto - The path to draw along - The brush to fill the color - - - - Draws a set path with specified colors - - The Graphics object to draw onto - The path to draw along - The area of span the border gradient covers - The color of the gradient at the top - The color of the gradient at the bottom - - - - Draws a set path with specified colors at a given angle - - The Graphics object to draw onto - The path to draw along - The area of span the border gradient covers - The color of the gradient at the top - The color of the gradient at the bottom - The angle which the gradient is drawn (null defaults to 90f) - - - - Draws a set path with specified colors at a given angle with blending properties - - The Graphics object to draw onto - The path to draw along - - The color of the gradient at the top - The color of the gradient at the bottom - The angle which the gradient is drawn (null defaults to 90f) - The blending options to draw the gradient - - - - Draws a Toolstrip button - - The Toolstrip button - The Graphics object to handle - The parent Toolstrip - - - - Draws a Toolstrip button - - The Toolstrip button - The Graphics object to handle - The parent Toolstrip - - - - Draws the Toolstrip background - - The Toolstrip being drawn - The Graphics object to handle - The affected bounds - - - - Draws a Toolstrip split-button - - The Toolstrip split-button - The Graphics object to handle - The parent Toolstrip - - - - Draws the Statusbar background - - The Statusbar being drawn - The Graphics object to handle - The affected bounds - - - - Draws a Menustrip item - - The Menustrip item - The Graphics object to handle - The parent Toolstrip - - - - Covers the button background rendering - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Applies any and all changes made to the Renderer - - - - - A class designed to be used in the EasyRender master control to customize the look and feel of the base Toolstrip - - - - - Creates a new IToolstrip class for customization - - - - - Creates a new IToolstrip class for customization - - The IToolstrip to import the settings from - - - - Disposes of the IToolstrip class and clears all resources related to it - - - - - Gets or sets the color of the Toolstrip background gradient from the top - - - - - Gets or sets the color of the Toolstrip background gradient from the bottom - - - - - Gets or sets the blending that will occur when rendering the Toolstrip background - If set to null, the Toolstrip will simply draw the gradient - - - - - Gets or sets the angle which the Toolstrip background will be drawn - - - - - Gets or sets the color of the Toolstrip border gradient from the top - - - - - Gets or sets the color of the Toolstrip border gradient from the bottom - - - - - Gets or sets the blending that will occur when rendering the Toolstrip border - If set to null, the Toolstrip will simply draw the border - - - - - Gets or sets the angle which the Toolstrip border will be drawn - - - - - Gets or sets the curve of the border of the Toolstrip - - - - - Imports the settings from a previous or pre-defined IToolstrip and applies it to the current - - The IToolstrip to import the settings from - - - - Sets the blending for both border and background to their defaults - - - - - - - - - - Creates a new IToolstripControls class for customization - - - - - Disposes of the IToolstripControls class and clears all resources related to it - - - - - Gets or sets the color of the Toolstrip seperator on the dark side - - - - - Gets or sets the color of the Toolstrip seperator on the light side - - - - - Gets or sets the height of the Toolstrip seperator control - - - - - Gets or sets the color of the grip dots/line at the top - - - - - Gets or sets the color of the grip shadow - - - - - Gets or sets in what mode the grip will be drawn - - - - - Gets or sets the distance, in pixels, between each grip dot - - - - - Gets or sets the size of the dots or lines for the grip - - - - - Imports the settings from a previous or pre-defined IToolstripControls and applies it to the current - - The IToolstripControls to import the settings from - - - - - - - - - Creates a new IButton class for customization - - - - - Creates a new IButton class for customization - - The IButton to import the settings from - - - - Disposes of the IButton class and clears all resources related to it - - - - - Gets or sets the color of the Button background at the top, when hovered over - - - - - Gets or sets the color of the Button background at the bottom, when hovered over - - - - - Gets or sets the color of the Button background at the top, when clicked - - - - - Gets or sets the color of the Button background at the bottom, when clicked - - - - - Gets or sets the blending that will occur when rendering the Button background - If set to null, the Button will simply draw the gradient - - - - - Gets or sets the angle which the Button background will be drawn - - - - - Gets or sets the color of the Button border gradient from the top - - - - - Gets or sets the color of the Button border gradient from the bottom - - - - - Gets or sets the blending that will occur when rendering the Button border - If set to null, the Button will simply draw the border - - - - - Gets or sets the angle which the Button border will be drawn - - - - - Gets or sets the color of the inside border - - - - - Gets or sets when to apply the rendering ("Normal" does not apply here) - - - - - Gets or sets the curve of the border of the Button - - - - - Imports the settings from a previous or pre-defined IButton and applies it to the current - - The IButton to import the settings from - - - - Sets the blending for both border and background to their defaults - - - - - - - - - - Creates a new IButton class for customization - - - - - Creates a new IButton class for customization - - The IButton to import the settings from - - - - Disposes of the IButton class and clears all resources related to it - - - - - Gets or sets the color of the Button background at the top, when hovered over - - - - - Gets or sets the color of the Button background at the bottom, when hovered over - - - - - Gets or sets the blending that will occur when rendering the Button background - If set to null, the Button will simply draw the gradient - - - - - Gets or sets the angle which the Button background will be drawn - - - - - Gets or sets the color of the Button border gradient from the top - - - - - Gets or sets the color of the Button border gradient from the bottom - - - - - Gets or sets the blending that will occur when rendering the Button border - If set to null, the Button will simply draw the border - - - - - Gets or sets the angle which the Button border will be drawn - - - - - Gets or sets the color of the inside border - - - - - Gets or sets when to apply the rendering ("Normal" and "Click" do not apply here) - - - - - Gets or sets the curve of the border of the Button - - - - - Imports the settings from a previous or pre-defined IDropDownButton and applies it to the current - - The IDropDownButton to import the settings from - - - - Sets the blending for both border and background to their defaults - - - - - - - - - - Creates a new ISplitButton class for customization - - - - - Disposes of the ISplitButton class and clears all resources related to it - - - - - Gets or sets the color of the Button background at the top, when hovered over - - - - - Gets or sets the color of the Button background at the bottom, when hovered over - - - - - Gets or sets the color of the Button background at the top, when clicked - - - - - Gets or sets the color of the Button background at the bottom, when clicked - - - - - Gets or sets the blending that will occur when rendering the Button background - If set to null, the Button will simply draw the gradient - - - - - Gets or sets the angle which the Button background will be drawn - - - - - Gets or sets the color of the Button border gradient from the top - - - - - Gets or sets the color of the Button border gradient from the bottom - - - - - Gets or sets the blending that will occur when rendering the Button border - If set to null, the Button will simply draw the border - - - - - Gets or sets the angle which the Button border will be drawn - - - - - Gets or sets the color of the inside border - - - - - Gets or sets when to apply the rendering ("Normal" does not apply here) - - - - - Gets or sets the curve of the border of the Button - - - - - Gets or sets when to display the drop-down arrow - - - - - Gets or sets the color of the drop-down arrow - - - - - Imports the settings from a previous or pre-defined ISplitButton and applies it to the current - - The ISplitButton to import the settings from - - - - Sets the blending for both border and background to their defaults - - - - - - - - - - Creates a new IPanel class for customization - - - - - Disposes of the IButton class and clears all resources related to it - - - - - Gets or sets the color of the gradient at the top of the content panel - - - - - Gets or sets the color of the gradient at the bottom of the content panel - - - - - Gets or sets whether each panel inherits the shading from the content panel - - - - - Gets or sets the angle which the background gradient is drawn - - - - - Gets or sets the blend of the background - - - - - Gets or sets a mode to render the background in - - - - - - - - - - Creates a new IStatusBar class for customization - - - - - Disposes of the IButton class and clears all resources related to it - - - - - Gets or sets the color of the gradient of the background at the top - - - - - Gets or sets the color of the gradient of the background at the bottom - - - - - Gets or sets the blending that will apply to the background - - - - - Gets or sets the angle which the background gradient will be drawn - - - - - Gets or sets the color of the dark border - - - - - Gets or sets the color of the light border - - - - - Gets or sets the color of the grip at the top-most - - - - - Gets or sets the color of the grip at the bottom-most - - - - - Gets or sets the spacing of the grip blocks - - - - - Imports the settings from a previous or pre-defined IStatusBar and applies it to the current - - The IStatusBar to import the settings from - - - - Sets the blending for both border and background to their defaults - - - - - A class designed to be used in the EasyRender master control to customize the look and feel of the base Menustrip - - - - - Creates a new IToolstrip class for customization - - - - - Creates a new IMenustrip class for customization - - The IMenustrip to import the settings from - - - - Disposes of the IMenustrip class and clears all resources related to it - - - - - Gets or sets the color of the menu-strip border (dark) - - - - - Gets or sets the color of the menu-strip border (light) - - - - - Gets or sets how the background of the menu-strip is inherited - - - - - If inheritence is set to none, the color of the background gradient at the top - - - - - If inheritence is set to none, the color of the background gradient at the bottom - - - - - If inheritence is set to none, the blending option for the background - - - - - Gets or sets the color of the margin gradient at the left - - - - - Gets or sets the color of the margin gradient at the right - - - - - Gets or sets the color of the margin border (displayed to the right) - - - - - Gets or sets the color of the root menu-strip button background when it is selected - - - - - Gets or sets the color of the root menu-strip button border when it is selected - - - - - Gets or sets the color of the seperator dark color - - - - - Gets or sets the color of the seperator light color - - - - - Gets or sets the inset position of the seperator from the left - - - - - Gets the class that handles the look and feel of the menu-strip items - - - - - Imports the settings from a previous or pre-defined IMenustrip and applies it to the current - - The IMenustrip to import the settings from - - - - Sets the blending for the background to it's default - - - - - Defines when to show an arrow - - - - - - - - - - - - - - - - - - - - Defines when to use a blend property - - - - - Use the blend when the object is drawn - - - - - Use the blend when the object is hovered over - - - - - Use the blend when the object is clicked - - - - - Use the blend when the object is checked - - - - - Always use the blend regardless of the state of the object - - - - - Defines a method of drawing a grip on a control - - - - - Draws the grip as a set of dots - - - - - Draws the grip as two lines - - - - - Does not draw the grip at all, but the object remains moveable - - - - - Defines a specific type of button to search by - - - - - - - - - - - - - - - - - - - - - - - - - Defines a method for background or object inheritence - - - - - - - - - - - - - - - Defines a method of rendering - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 主菜单 - - - - - 背景透明的工具条 - - - - - 银白色至白色渐变 - - - - - 白色至银白色渐变 - - - - - - - - - - - - - - - 当前工作区窗体所关联并激活的工具栏 - - - - - 模拟运行时的外观 - - - - - Represents the visual state of an image list view item. - - - - - 没有任何选择状态,处于一般正常状态 - - - - - 项处于选中状态 - - - - - 鼠标滑过 - - - - - 控件的高度根据内容自动调整,忽略外部设置 - - - - - 边框宽度 - - - - - 文本和description文本之间的间距 - - - - - 最大显示的项数 - - - - - - - - - - 是否显示说明字段,此属性不影响弹出面板是否显示 - 弹出面板是否显示由DescriptionMember是否设置决定 - - - - - - - - - - - - - - - 下拉列表的布局模式 - - - - - - - - - - 是否允许空 - - - - - - - - - - 测量当前控件应该的高度 - - - - - - 整个可用的绘图表面 - - - - - 右边按钮的绘图表面 - - - - - 绘制边框 - - - - - - 绘制背景 - - - - - - 绘制文本 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 当前热点项生改变 - - - - - - - - - - - - - - - - - - - - - 通过外能事件获取用于绘制项的文本 - - - - - - - - - - - - - - - - - - - - - - - - - - 标题 - - - - - 验证失败时是否需要高亮显示(改变背景色) - - - - - - - - - - - - - - - - - - - - - - 排序箭头开始颜色 - - - - - 排序箭头开始颜色 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 控件的背景画布颜色 - 因为控件的边框和过度色都有依靠改变透明度实现渐变,所以一个白色的底版就非常重要 - 使过度色不受控件本身背景色的影响,光不绘制背景不行,要刷上白色背景 - - - - - 控件背景色 - - - - - - - - - - - - - - - 边框颜色 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Represents the visual state of an image list view item. - - - - - 没有任何选择状态,处于一般正常状态 - - - - - 项处于选中状态 - - - - - 该项具有输入焦点 - - - - - 鼠标滑过 - - - - - - - - - - The item is not visible. - - - - - The item is partially visible. - - - - - The item is fully visible. - - - - - 布局方式 - - - - - 标准布局 - - - - - 使项带有描述的布局 - - - - - 双击项事件参数 - - - - - - - - - - - - - - - - 项被删除事件参数 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 为项绘制带有描述信息的渲染器 - - - - - 字的高度是否已初始化 - 在第一次绘制时,测量文本的高度 - - - - - - - - - - - 默认布局引擎,以类似微软ListView的方式按行排列项 - - - - - 框选的最短开始长度 - - - - - 框选时滚动条的自动滚动速度 - - - - - 用于鼠标框选时,框出了控件中项的显示范围时,自动滚动滚动条 - - - - - 自动滚动时,滚动值 - - - - - 是否处于框选状态中 - - - - - 内框offset,内框offset是绝对相对于滚动条的 - - - - - 整个可显示项的边界的offset,包括上下padding部分 - - - - - 鼠标按下时项区域边界的offset,即 _itemsAreaOffset - 用于框选时,跨越可视部队画框 - - - - - 当前所能显示的最大行数 - - - - - - - - - - Gets whether the shift key is down. - - - - - Gets whether the control key is down. - - - - - - - - - - - - - - - - - - - - - - - - - 没有任何项 - - - - - 没有任何项处于可显示状态 - - - - - 整个控件区域 - - - - - 整个可用于绘制项的可视区域 - 去除左右Padding部分,去除滚动条 - - - - - 用于绘制项的区域 - 考虑边距间隔大小和滚动条区域 - - - - - 项的尺寸 - 不放在ListView本身中定义而是放在LayoutManager中定义,是因为不同的布局方式 - 可能会是带长宽的Size做为itemSize,比如平铺的方式 - - - - - 项周围的边距 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 更新整个布局引擎的状态 - - - - - 判断指定的项是否处于可见状态 - - - - - - - 获取项的呈现区域 - - - - - - - - - - - - - - - - - - - - 获取当前所有可见项 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Calculates the maximum number of rows and columns - that can be fully displayed. - - - - - 计算当前可见项的index范围 - - - - - 更新滚动条状态 - - - - - 创建框选框 - - - - - - 根据矩形区域选择项 - - - - - - 应用导航键,如上下左右,返回应用导航键之后的项的坐标 - - - - - 使指定下标的项处于可见状态 - - - - - - 默认渲染器,不绘制项的实际内容,但是绘制DEBUG信息 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 用于子类重写时删除相应的缓存 - - - - - - 绘制项的背景 - - The System.Drawing.Graphics to draw on. - The client coordinates of the item area. - - - - 绘制最终的前景 - - - - - - 绘制选择边框 - - The System.Drawing.Graphics to draw on. - The client coordinates of the selection rectangle. - - - - 绘制项的边框 - - - - - - - - 绘制项 - - - - - - - 绘制项的背景 - - - - - - - 绘制项的内容 - - - - - - - - 绘制背景 - - - - - - 绘制当前所有可见项 - - - - - - Renders the selection rectangle. - - The graphics to draw on. - - - - 默认渲染器,以类似微软ListView的方式按行绘制项,只绘制简单的文本 - - - - - 字的高度是否已初始化 - 在第一次绘制时,测量文本的高度 - - - - - - - - - - - - - - - - - - - - - - - - - 项的背景色 - - - - - 控件背景色 - - - - - 项的边框色 - - - - - 选择框颜色 - - - - - 选择框的边框色 - - - - - 当控件具有焦点时选定项的背景色 - - - - - - - - - - 控件失去焦点时选定项的背景色 - - - - - - - - - - 热点项的背景色 - - - - - - - - - - 图像内边框颜色 - - - - - 图像外边框颜色 - - - - - - - - - - Creates a control with a border. - - - - - Specifies that the control has a border with a sunken edge. - - - - - - - - - - 是否需要在调用 ResumeLayout 时重绘 - - - - - 为项扩展的用于呈现的属性 - - - - - Gets whether the shift key is down. - - - - - Gets whether the control key is down. - - - - - 鼠标左键是否处于按下状态 - - - - - 鼠标右键是否处于按下状态 - - - - - 鼠标最后点击的位置 - - - - - 当前鼠标经过的项 - - - - - - - - - - - - - - - 配色方案 - - - - - 当前布局中项的高度 - - - - - - - - - - 是否没有任何项 - - - - - - - - - - 获取当前具有输入焦点的项 - - - - - 默认的用于呈现为项中文本的Property - - - - - - - - - - 更改了选择的项 - - - - - 双击项 - - - - - - 请求在下次调用 ResumeLayout 时重绘 - - - - - 获取当前选中的所有项 - - - - - - - - - - - - 设置扩展属性供特定LayoutEngine使用 - 如果指定的 ExtendMember 已存在,覆盖之 - 用String.Empty 或 null 做为 propertyName传入,表示删除指定的 member - - - - - - - - - - - - - - - - - - - - - 恢复正常的布局逻辑。 - - - - - - - - - - - 临时挂起控件的布局逻辑。 - - - - - - - - - - 获取当前选中项所绑定的对象 - 如果没有选中项,返回null,如果选中多项,返回选中项集合中的第一个 - - - - - - 根据指定的绑定项对象 - 设置当前列表中选定的项 - - - - - - 获取当前选中的所有项的绑定对象集合 - 如果当前没有选中任何项,返回空集合 - - - - - - 取消所有项的选择 - - - - - - - - - - - - - - - - 获取创建控件句柄时所需要的创建参数 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 更改了选择的项 - - - - - 双击项 - - - - - 项被删除 - - - - - 通过外能事件获取用于绘制项的文本 - - - - - Represents the color palette of the image list view. - - - - - Gets or sets the background color of the ImageListView control. - - - - - Gets or sets the background color of the ImageListViewItem. - - - - - Gets or sets the background color of alternating cells in Details View. - - - - - Gets or sets the border color of the ImageListViewItem. - - - - - Gets or sets the foreground color of the ImageListViewItem. - - - - - Gets or sets the background gradient color1 of the ImageListViewItem if the control is not focused. - - - - - Gets or sets the background gradient color2 of the ImageListViewItem if the control is not focused. - - - - - Gets or sets the border color of the ImageListViewItem if the control is not focused. - - - - - Gets or sets the fore color of the ImageListViewItem if the control is not focused. - - - - - Gets or sets the background gradient color1 if the ImageListViewItem is hovered. - - - - - Gets or sets the background gradient color2 if the ImageListViewItem is hovered. - - - - - Gets or sets the border color of the ImageListViewItem if the item is hovered. - - - - - Gets or sets the color of the insertion caret. - - - - - Gets or sets the background gradient color1 if the ImageListViewItem is selected. - - - - - Gets or sets the background gradient color2 if the ImageListViewItem is selected. - - - - - Gets or sets the border color of the ImageListViewItem if the item is selected. - - - - - Gets or sets the fore color of the ImageListViewItem if the item is selected. - - - - - Gets or sets the background gradient color1 of the column header. - - - - - Gets or sets the background gradient color2 of the column header. - - - - - Gets or sets the background hover gradient color1 of the column header. - - - - - Gets or sets the background hover gradient color2 of the column header. - - - - - Gets or sets the cells foreground color of the column header text. - - - - - Gets or sets the cells background color if column is selected in Details View. - - - - - Gets or sets the color of the separator in Details View. - - - - - Gets or sets the foreground color of the cell text in Details View. - - - - - Gets or sets the foreground color of alternating cells text in Details View. - - - - - Gets or sets the background color of the image pane. - - - - - Gets or sets the separator line color between image pane and thumbnail view. - - - - - Gets or sets the color of labels in pane view. - - - - - Gets or sets the image inner border color for thumbnails and pane. - - - - - Gets or sets the image outer border color for thumbnails and pane. - - - - - Gets or sets the background color1 of the selection rectangle. - - - - - Gets or sets the background color2 of the selection rectangle. - - - - - Gets or sets the color of the selection rectangle border. - - - - - Initializes a new instance of the ImageListViewColor class. - - - - - Initializes a new instance of the ImageListViewColor class - from its string representation. - - String representation of the object. - - - - Copies color values from the given object. - - The source object. - - - - Represents the default color theme. - - - - - Represents the noir color theme. - - - - - Represents the mandarin color theme. - - - - - Sets the color palette to default colors. - - - - - Sets the color palette to mandarin colors. - - - - - Sets the color palette to noir colors. - - - - - Determines whether all color values of the specified - ImageListViewColor are equal to this instance. - - The object to compare with this instance. - true if the two instances have the same color values; - otherwise false. - - - - Returns a hash code for this instance. - - - A hash code for this instance, suitable for use in - hashing algorithms and data structures like a hash table. - - - - - Returns a string that represents this instance. - - - A string that represents this instance. - - - - - 测试坐标 - - - - - 项的坐标 - - - - - 是否点击了项 - - - - - - - - - - - - - - - - - - - - - - 该项当前的选中状态 - - - - - - - - - - - - - - - - - - - - 所绑定的对象 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 将指定的事件移动到(紧邻)另一个事件之前 - - - - - - - 将指定的事件移动到(紧邻)另一个事件之后 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Modify a WinForms TreeView control to use the new Explorer style theme - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - WM_COPYDATA消息所要求的数据结构 - - - - - - - - - - - - - - - - - - - - - - - - - 通过窗口的标题来查找窗口的句柄 - - - - - - - - 发送 Windows 消息 - - - - - - - - - - 还原 - - - - - 移动 - - - - - 大小 - - - - - 最小化 - - - - - 最大化 - - - - - 关闭 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 发送消息,只能传递一个自定义的消息ID和消息字符串,想传一个结构,但没成功 - - 目标进程名称,如果有多个,则给每个都发送 - 自定义数据,可以通过这个来决定如何解析下面的strMsg - 传递的消息,是一个字符串 - - - - 接收消息,得到消息字符串 - - System.Windows.Forms.Message m - 接收到的消息字符串 - - - - - - - - - 最大圆角半径 - - - - - 最小矩形边长,用于自动处理圆角大小 - - - - - 绘制一个圆角矩形. - - 当前屏幕的图形对象 - 画笔 - 矩形左上角X坐标 - 矩形左上角Y坐标 - 矩形右下角X坐标 - 矩形右下角Y坐标 - 圆角的半径长度 - - - - 绘制一个圆角矩形. - - 当前屏幕的图形对象 - 画笔 - 要绘制的矩形对象 - 圆角的半径长度 - - - - 绘制一个圆角矩形. - - 当前屏幕的图形对象 - 画笔 - 要绘制的矩形对象 - - - - 填充一个圆角矩形. - - 当前屏幕的图形对象 - 笔刷 - 矩形左上角X坐标 - 矩形左上角Y坐标 - 矩形右下角X坐标 - 矩形右下角Y坐标 - 圆角的半径长度 - - - - 填充一个圆角矩形. - - 当前屏幕的图形对象 - 笔刷 - 要填充的矩形 - 填充区域针对矩形的缩进距离 - 圆角的半径长度 - - - - 填充一个圆角矩形. - - 当前屏幕的图形对象 - 笔刷 - 要填充的矩形 - - - - 使图片单色化 - - - - - - - 获取颜色 - - - - - - - - - - - - - 颜色变化时激发 - - - - - - - - - - - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - + + + + RaUI + + + + + 基于XML实现的权限类 + + + + + 用户名 + + + + + 用户id + + + + + 密码 + + + + + 权限控制Id + + + + + 用户备注 + + + + + 是否是管理员权限 + + + + + 是否是超级管理员权限 + + + + + 设置权限 + + 权限名称 + 权限值 + 返回是否设置成功 + + + + 获取权限 + + 权限名称 + 默认权限值 + 返回权限值 + + + + 获取权限 + + 权限名称 + 返回权限值 + + + + 批量导入权限 + + 权限相关的内容 + 返回是否执行成功 + + + + 导出权限 + + 返回导出文本 + + + + 清除所有权限 + + 返回是否执行成功 + + + + Json扩展 + + + + + 获取值 + + + + + + + + + 获取值 + + + + + + + + + 获取值 + + + + + + + + + 获取值 + + + + + + + + + 获取值 + + + + + + + + + Ini操作类 + + + + + 写入Ini + + + + + + + + + + 获取Ini + + + + + + + + + + + + 声明INI文件的读操作函数 GetPrivateProfileString() + + + + + + + + + + + + 声明INI文件的读操作函数 GetPrivateProfileString() + + + + + + + + + + 声明INI文件的读操作函数 GetPrivateProfileString() + + + + + + + + + + + + 获取所有节点名称(Section) + + 存放节点名称的内存地址,每个节点之间用\0分隔 + 内存大小(characters) + Ini文件 + 内容的实际长度,为0表示没有内容,为nSize-2表示内存大小不够 + + + + 编码 + + + + + Ini操作类 + + + + + + 根据section取所有key和值 + + + + + + + 读取INI文件中指定INI文件中的所有节点名称(Section) + + 所有节点,没有内容返回string[0] + + + + 读取INI文件 + + 段,格式[] + 键 + 返回byte类型的section组或键值组 + + + + 根据section取所有key + + + + + + + 写入ini + + + + + + + + 写入ini + + + + + + + + 写入ini + + + + + + + + 写入ini + + + + + + + + 写入ini + + + + + + + + 写入Ini + + + + + + + + 读取Ini + + + + + + + + 读取Ini + + + + + + + + + 读取Ini + + + + + + + + + 读取Ini + + + + + + + + + + + 写入ini + + + + + + + + + 删除Ini的Key + + + + + + + 删除Ini节点 + + + + + + 汉字转拼音静态类,包括功能全拼和缩写,方法全部是静态的 + + + + + 汉字的机内码数组 + + + + + 机内码对应的拼音数组 + + + + + 把汉字转换成拼音(全拼) + + 汉字字符串 + 转换后的拼音(全拼)字符串 + + + + 把汉字转换成拼音(全拼) + + 汉字字符串 + 转换后的拼音(全拼)字符串 + + + + 把汉字转换成拼音(首拼) + + 汉字字符串 + 转换后的拼音(首拼)字符串 + + + + 把汉字转换成拼音(全拼) + + 汉字字符串 + 用指定字符分隔 + 转换后的拼音(全拼)字符串 + + + + 汉字转拼音缩写 + + 要转换的汉字字符串 + 拼音缩写 + + + + 汉字转拼音缩写 (字符串) (小写) (空格间隔) + + 要转换的汉字字符串 + 拼音缩写 + + + + 汉字转拼音缩写 (大写) + + 要转换的汉字字符串 + 拼音缩写 + + + + 汉字转拼音缩写 (字符串)(大写)(空格间隔) + + 要转换的汉字字符串 + 拼音缩写 + + + + 取单个字符的拼音声母 + + 要转换的单个汉字 + 拼音声母 + + + + 取单个字符的拼音声母 + + 要转换的单个汉字 + 拼音声母 + + + + 控件信息 + + + + + id + + + + + 控件对象 + + + + + 控件值类型 + + + + + 默认值 + + + + + 值类型 + + + + + 默认 + + + + + 取列表顺序值 + + + + + 取当前选择的列表值 + + + + + 取对象值 + + + + + 保存的设置类型 + + + + + Ini + + + + + XML + + + + + 对象值 + + + + + 显示的文本 + + + + + 图片序号 + + + + + id + + + + + Tag值 + + + + + 显示文本值 + + + + + + 星期数据 + + + + + 一周的开始时间 + + + + + 一周的结束时间 + + + + + 图片类型 + + + + + Bmp图片 + + + + + Jpeg图片 + + + + + Png图片 + + + + + Gif动态图片 + + + + + Tiff图片 + + + + + 设置管理类,快速添加设置。 + + + + + 设置管理类,快速添加设置。 + + + + + 设置管理类,快速添加设置。 + + + + + + 存储类型 + + + + + 配置存储路径 + + + + + 设置XML内容 + + + + + 添加控件 + + + + + + + + 设置值 + + + + + + + + 添加控件 + + + + + + + + + + 添加控件 + + + + + + + + + 添加控件 + + + + + + + + + 添加控件 + + + + + + + + + 添加控件 + + + + + + + + + 添加控件 + + + + + + + + + 添加控件 + + + + + + + + + 读取配置 + + + + + 保存配置 + + + + + XML操作类 + + + + + XML操作类 + + + + + 从XML文本中加载数据 + + + + + + 从指定的XML文本中加载 + + XML文本 + 如为1,表示加载成功,为0为失败 + + + + 载入空的XML文档 + + 如为1,表示加载成功,为0为失败 + + + + 从指定的文件中加载 + + XML文件路径 + 如为1,表示加载成功,为0为失败 + + + + 保存到指定文件中 + + 文件路径 + 如为1,表示保存成功,为0为失败 + + + + 判断节点是否存在 + + 属性名 + 属性值 + 返回1,表示存在,其它表示不存在 + + + + 定位节点 + + 属性名 + 属性值 + 返回第一个符合要求的结果 + + + + 定位节点,如果找不到节点,就新建一个节点 + + 属性名 + 属性值 + 返回第一个符合要求的结果 + + + + 根据用户的节点定位节点,输入节点时,一定要注意节点是属于类内部的,否则可能出错。 + + 返回第一个符合要求的结果 + + + + 定位设置节点 + + 返回第一个符合要求的结果 + + + + 在节点后插入数据 + + + + + + + 在节点前插入数据 + + + + + + + 获取节点数量 + + 属性名 + 属性值 + 返回符合要求的结果数量 + + + + 获取节点数量 + + 返回符合要求的结果数量 + + + + 获取节点数量 + + 属性名 + 属性值 + + + + 返回符合要求的结果数量 + + + + 设置节点值 + + 属性名 + 属性值 + 如为1,表示加载成功,为0为失败 + + + + 设置节点值 + + 属性名 + 属性值 + 如为1,表示加载成功,为0为失败 + + + + 设置节点值 + + 属性名 + 属性值 + 如为1,表示加载成功,为0为失败 + + + + 设置节点值 + + 属性名 + 属性值 + 如为1,表示加载成功,为0为失败 + + + + 设置节点值 + + 属性名 + 属性值 + 如为1,表示加载成功,为0为失败 + + + + 设置节点值 + + 属性名 + 属性值 + 如为1,表示加载成功,为0为失败 + + + + 设置节点值 + + 属性名 + 属性值 + 如为1,表示加载成功,为0为失败 + + + + 读取指定节点的值(string) + + + + + + + 读取指定节点的值 + + + + + + + + 读取指定节点的值 + + + + + + + + 读取指定节点的值 + + + + + + + + 获取属性值 + + + + + + + + 读取指定节点的值 + + + + + + + + 读取指定节点的值 + + + + + + + + 读取指定节点的值 + + + + + + + + 读取所有的节点名称 + + + + + + 读取指定节点的值(string) + + + + + + + + 读取指定节点的值(int) + + + + + + + + 读取指定节点的值(decimal) + + + + + + + + 读取指定节点的值 + + + + + + + + 读取指定节点的值 + + + + + + + + 获取XML文件的根元素 + + + + + 获取所有列表 + + 如为1,表示获取成功,为0为失败 + + + + 获取所有列表 + + 如为1,表示获取成功,为0为失败 + + + + 新增节点 + + + + + + + + 新增节点并定位到新节点 + + + + + + + + 新增设置节点并定位 + + + + + + 在指定节点前新增节点并定位到新节点 + + + + + + + + + 获取当前节点 + + + + + + 删除节点 + + + + + + 获取XML文本 + + + + + + 获取XML文本 + + + + + + 获取文本 + + + + + + 获取文本 + + + + + + 字符串操作类 + + + + + 字符串转Base64 + + + + + + + Base64转字符串 + + + + + + + 转换指定字符串为布尔类型 + + + + + 转换指定字符串为Double类型 + + + + + 已重载.计算两个日期的时间间隔,返回的是时间间隔的日期差的绝对值. + + 第一个日期和时间 + 第二个日期和时间 + + + + + 已重载.计算一个时间与当前本地日期和时间的时间间隔,返回的是时间间隔的日期差的绝对值. + + 一个日期和时间 + + + + + 转换指定字符串为Int类型 + + + + + 转换指定字符串为Int类型 + + + + + 转换指定布尔类型为Int类型,true为1,false为0 + + + + + 判断指定字符串是否是布尔类型 + + + + + 判断指定字符串是否是Double类型 + + + + + 判断指定字符串是否是Int类型 + + + + + 根据年月日转换成日期 + + + + + + + + + 追加字符 + + + + + 获取2个字符串中间的内容,point1为空表示从首位开始算,point2为空表示算到结尾。 + + + + + 判断字符串是否只包含数字或英文 + + + + + + + 判断字符串是否只包含英文 + + + + + + + 判断字符串是否只包含数字 + + + + + + + 判断字符串是否匹配,支持?*通配符 + + 待匹配的字符串 + 匹配的通配符 + + + + + 通配符替换 + + + + + + + + + 支持忽略大小写的替换功能 + + + + + 是否忽略大小写 + + + + + 获取匹配的内容 + + + + + + + + + 文件时间 + + + + + 创建时间 + + + + + 最后修改时间 + + + + + 访问时间 + + + + + 对变量的拓展 + + + + + 替换文本(忽略大小写) + + + 需要替换的内容 + 替换后的内容 + + + + + 替换文本(忽略大小写),可支持通配符 + + + + + 是否是通配符表达式,不是,则普通替换,忽略大小写,是,则启用通配符替换 + + + + + 将颜色转换为Html颜色格式 + + + + + + + 支持忽略大小写的替换文本功能 + + + + + 是否忽略大小写 + + + + + 获取符合要求的第一个结果 + + + + 是否是正则 + + + + + 查找字符串,忽略大小写 + + + + + + + + + 查找字符串,忽略大小写 + + + + + + + + 判断字符串是否是数字或英文 + + + + + + + 判断字符串是否是英文 + + + + + + + 判断字符串是否是数字(不同于IsInt,本函数是判断字符串是否只含有数字,对字符串长度没有限制) + + + + + + + 是否在指定范围内 + + + + + + + + + 是否在指定范围内 + + + + + + + + + 转换指定字符串为Int类型 + + + 最小值 + 最大值 + 如果字符串不在范围内,则使用本默认值 + + + + + 转换指定布尔类型到Int类型,true为1,false为0 + + + + + + + 将指定类型转换成整型 + + + + + + + + 将数字转换成字符串,小数点末尾后面不包含0 + + + + + + + 将数字转换成字符串,小数点末尾后面不包含0 + + + + + + + + 将数字转换成字符串,小数点末尾后面不包含0 + + + + + + + 将数字转换成字符串,小数点末尾后面不包含0 + + + + + + + + 将指定类型转换成整型 + + + + + + + 将指定类型转换成长整型,如果时间时间类型,则转换为Unix时间戳 + + + + + + + + 转换为Unix时间戳 + + + + + + + 转换为Js时间戳 + + + + + + + 转换为Unix时间戳 + + + + + + + 将指定类型转换成长整型 + + + + + + + 转换指定类型为Double类型 + + + + + + + + 转换指定类型为Double类型 + + + + + + + 判断时间是否在指定时间上 + + + + + + + + + 判断时间是否在指定时间上 + + + + + + + + + + 判断时间是否在指定日期 + + + + + + + + + 判断时间是否在指定日期 + + + + + + + + + + 转换DateTime类型到日期时间字符串(例如 2000-01-01 08:08:08) + + + + + + + 转换DateTime类型到日期字符串(例如 2000-01-01) + + + + + + + 转换DateTime类型到日期星期字符串(例如 2000-01-01 星期六) + + + + + + + 转换DateTime类型到Unix时间戳 + + + + + + + 转换Unix时间戳到DateTime类型 + + + + + + + 判断字符串是否与内容匹配 + + + + + + + + 将变量值转换成Double类型,如果不在指定区域范围内,则使用默认值 + + + + + + + + + + 转换到文件大小字符串 + + + + + + + 转换到文件大小字符串 + + + + + + + 转换指定类型为Decimal类型 + + + + + + + + 将变量值转换成Decimal类型 + + + + + + + 将变量值转换成Decimal类型,如果不在指定区域范围内,则使用默认值 + + + + + + + + + + 转换指定类型为DateTime类型 + + + + + + + + 将变量值转换成DateTime类型 + + + + + + + 转换指定类型为布尔类型 + + + + + + + 追加字符 + + + + + + + + 获取指定字符串之间的内容 + + + + + + + + + 获取指定字符串之间的内容 + + + + + + + + + + + + 判断指定字符串是否是Int类型 + + + + + + + 判断指定字符串是否是Double类型 + + + + + + + 判断是否是布尔类型 + + + + + + + 将字符串转换为Base64类型 + + + + + + + 判断字符串是否在指定长度 + + + + + + + + + 判断能否转换成日期格式 + + + + + + + 根据表单字段名,获取对应的值 + + + + + + + + + 根据表单字段名,获取对应的值 + + + + + + + + 根据表单字段名,获取对应的值 + + + + + + + + + 根据表单字段名,获取对应的值 + + + + + + + + + 根据表单字段名,获取对应的值 + + + + + + + + + 根据表单字段名,获取对应的值 + + + + + + + + + 根据表单字段名,获取对应的值 + + + + + + + + + 大文件与批量文件操作类,支持中途取消操作,本类需要实例化操作 + + + + + 传输进度 + + 当前传输完成的值 + 全部值,为-1表示无法获取 + 当前传输的百分比,为-1表示无法获取 + + + + 传输进度 + + + + + 取消事件 + + + + + 大文件按流复制文件,支持自动创建目标文件夹。 true:复制成功 false:复制失败 + + 原始文件路径 + 复制目标文件路径 + + + + + 复制文件夹到目标文件夹,不支持进度事件,支持中途取消 + + 源文件夹 + 目标文件夹 + 返回复制操作是否成功的标识,成功返回0,负数表示复制失败的文件数量。1表示源文件夹不存在 + + + + 复制文件或文件夹到目标路径,不支持进度事件,支持中途取消 + + 源路径 + 目标路径 + 返回复制操作是否成功的标识,成功返回0,负数表示复制失败的文件数量。1表示源文件夹不存在 + + + + 复制文件夹到目标文件夹,支持进度事件,支持中途取消 + + 源文件夹 + 目标文件夹 + 返回复制操作是否成功的标识,成功返回0,负数表示复制失败的文件数量。1表示源文件夹不存在 + + + + 复制文件夹到目标文件夹,支持中途取消 + + 源文件夹 + 目标文件夹 + 初始的文件数量 + 总数量,如果不计算,则使用-1 + 操作的数量,包含成功的和失败的 + 返回复制操作是否成功的标识,成功返回0,负数表示复制失败的文件数量。1表示源文件夹不存在 + + + + 获取文件夹中的文件数量 + + 文件夹路径 + 返回文件数量,中途取消则返回-1 + + + + 获取文件夹的大小 + + 文件夹路径 + 返回文件数量,中途取消则返回-1 + + + + 添加文件到指定文件夹,会进行自动重命名,并返回重命名后的文件名(含路径) + + 要添加的文件路径 + 要添加到的文件夹 + 是否根据时间进行重命名 + 返回是否成功执行 + 成功执行则返回路径,否则返回空 + + + + 文件信息 + + + + + 获取版本号 + + + + + 获取版本号 + + + + + + + 根据版本字符串输出double类型的版本号 + + + + + + + + 比较两个版本号大小 + + + + oldVer小于newVer,返回1,大于则返回-1,相等返回0,不支持则返回-1000 + + + + 从字符串中提取版本号 + + + + + + + 比较版本号 + + + + + + old小于new,返回1,大于则返回-1,相等返回0 + + + + 判断是否是管理员方式运行 + + + + + + Hosts操作类 + + + + + 获取并转换hosts内容 + + hosts内容 + + + + + 获取hosts并转换hosts内容 + + + + + + 追加内容到hosts里 + + 要追加的内容列表,每一行为ip 域名的格式 + 0表示无需新增,-1表示添加失败,1表示追加成功 + + + + write为true,追加内容到hosts里;为false,判断是否需要追加 + + 要追加的内容列表,每一行为ip 域名的格式 + 是否要写入,如果为false,则只判断是否需要追加,而不写入Hosts文件 + 0表示无需新增,-1表示添加失败,1表示追加成功 + + + + 追加内容到hosts里 + + 要追加的内容 + 0表示无需新增,-1表示添加失败,1表示追加成功 + + + + 追加内容到hosts里 + + ip地址 + 域名 + 0表示无需新增,-1表示添加失败,1表示追加成功 + + + + 从hosts文件里删除内容 + + 要删除的内容 + 0表示无需删除,-1表示添加失败,1表示删除成功 + + + + 从hosts文件里删除内容 + + ip地址 + 域名 + 0表示无需删除,-1表示添加失败,1表示删除成功 + + + + Host信息 + + + + + IP + + + + + 域名 + + + + + 注释 + + + + + 是否要删除 + + + + + 文件操作类 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 删除单个文件。 + + 删除的文件名 + 指示是将文件放入回收站还是永久删除,true-放入回收站,false-永久删除 + 指示是否显示确认对话框,true-显示确认删除对话框,false-不显示确认删除对话框 + 指示是否显示进度对话框,true-显示,false-不显示。该参数当指定永久删除文件时有效 + 反馈错误消息的字符串 + 操作执行结果标识,删除文件成功返回0,否则,返回错误代码 + + + + 删除单个文件。 + + 删除的文件名 + 指示是将文件放入回收站还是永久删除,true-放入回收站,false-永久删除 + 操作执行结果标识,删除文件成功返回0,否则,返回错误代码 + + + + 永久删除单个文件。 + + 永久删除的文件名 + 操作执行结果标识,删除文件成功返回0,否则,返回错误代码 + + + + 删除一组文件。 + + 字符串数组,表示一组文件名 + 指示是将文件放入回收站还是永久删除,true-放入回收站,false-永久删除 + 指示是否显示确认对话框,true-显示确认删除对话框,false-不显示确认删除对话框 + 指示是否显示进度对话框,true-显示,false-不显示。该参数当指定永久删除文件时有效 + 反馈错误消息的字符串 + 操作执行结果标识,删除文件成功返回0,否则,返回错误代码 + + + + 移动文件到指定路径下 + + 要移动的文件名 + 移动到的目的路径 + + + + + 移动一个文件到指定路径下 + + 要移动的文件名 + 移动到的目的路径 + 指示是否显示确认对话框,true-显示确认对话框,false-不显示确认对话框 + 指示是否显示进度对话框 + 指示当文件名重复时,是否自动为新文件加上后缀名 + 反馈错误消息的字符串 + 返回移动操作是否成功的标识,成功返回0,失败返回错误代码 + + + + 移动一组文件到指定的路径下 + + 要移动的文件名数组 + 移动到的目的路径 + 指示是否显示确认对话框,true-显示确认对话框,false-不显示确认对话框 + 指示是否显示进度对话框 + 指示当文件名重复时,是否自动为新文件加上后缀名 + 反馈错误消息的字符串 + 返回移动操作是否成功的标识,成功返回0,失败返回错误代码,-200:表示其他异常 + + + + 复制文件到指定的文件名或路径 + + 要复制的文件名 + 复制到的目的文件名或路径 + + + + + 复制文件到指定的文件名或路径 + + 要复制的文件名 + 复制到的目的文件名或路径 + 指示是否显示确认对话框,true-显示确认对话框,false-不显示确认对话框 + 指示是否显示进度对话框 + 指示当文件名重复时,是否自动为新文件加上后缀名 + 返回错误信息 + 返回移动操作是否成功的标识,成功返回0,失败返回错误代码,-200:表示其他异常 + + + + 复制一组文件到指定的路径 + + 要复制的文件名数组 + 复制到的目的路径 + 指示是否显示确认对话框,true-显示确认对话框,false-不显示确认对话框 + 指示是否显示进度对话框 + 指示当文件名重复时,是否自动为新文件加上后缀名 + 返回错误信息 + 返回移动操作是否成功的标识,成功返回0,失败返回错误代码,-200:表示其他异常 + + + + 大文件多次复制文件 true:复制成功 false:复制失败 + + 原始文件路径 + 复制目标文件路径 + + + + + 复制文件或文件夹到目标路径,不支持进度事件,支持中途取消 + + 源路径 + 目标路径 + 返回复制操作是否成功的标识,成功返回0,负数表示复制失败的文件数量。1表示源文件夹不存在 + + + + 复制文件夹到目标文件夹(从3.0.2205.2601版本起已更换实现底层) + + 源文件夹 + 目标文件夹 + 返回复制操作是否成功的标识,成功返回0,负数表示复制失败的文件数量。1表示源文件夹不存在 + + + + 重命名一个文件为新名称,建议您使用更方便的Microsoft.VisualBasic.FileSystem.ReName();替换该方法 + + 要复制的文件名 + 复制到的目的文件名或路径 + 指示是否显示确认对话框,true-显示确认对话框,false-不显示确认对话框 + 返回错误信息 + 返回移动操作是否成功的标识,成功返回0,失败返回错误代码,-200:表示其他异常 + + + + 删除单个或多个文件 + + 删除的文件名,如果是多个文件,文件名之间以字符串结尾符'\0'隔开 + 指示是将文件放入回收站还是永久删除,true-放入回收站,false-永久删除 + 指示是否显示确认对话框,true-显示确认删除对话框,false-不显示确认删除对话框 + 指示是否显示进度对话框,true-显示,false-不显示。该参数当指定永久删除文件时有效 + 反馈错误消息的字符串 + 操作执行结果标识,删除文件成功返回0,否则,返回错误代码 + + + + 移动或复制一个或多个文件到指定路径下 + + 操作类型,是移动操作还是复制操作 + 要移动或复制的文件名,如果是多个文件,文件名之间以字符串结尾符'\0'隔开 + 移动到的目的位置 + 指示是否显示确认对话框,true-显示确认对话框,false-不显示确认对话框 + 指示是否显示进度对话框 + 指示当文件名重复时,是否自动为新文件加上后缀名 + 反馈错误消息的字符串 + 返回移动操作是否成功的标识,成功返回0,失败返回错误代码 + + + + 如果指定文件夹不存在,则创建文件夹 + + + + + + 获取一个文件的全名 + + 文件名 + 返回生成文件的完整路径名 + + + + 获取一个文件的全名 + + 文件名 + 返回生成文件的完整路径名 + + + + 解释错误代码 + + 代码号 + 返回关于错误代码的文字描述 + + + + 运行文件 + + + + + + + + /运行文件 + + + + + + + + + 运行程序 + + + + + + + 打开文件 + + + + + + + 打开文件夹并定位文件 + + + + + + + 打开网址 + + + + + + + 判断是否为空的文件夹 + + + + + + + 文件或文件夹是否存在 + + + + + + + 判断文件名是否有效 + + + + + + + 转换到有效文件名 + + + + + + + 追加日志 + + + + + + + 追加文件 + + + + + + + 读取文件内容,可以自动识别文件编码 + + + + + + + 读取文件内容,可以自动识别文件编码 + + + + + + + + 读取文件所有行,可以自动识别文件编码 + + + + + + + 读取文件所有行,可以自动识别文件编码 + + + + + + + + 写入所有文本行到文件,如果文件夹不存在,会自动创建 + + + + + + + + 写入所有文本到文件,如果文件夹不存在,会自动创建 + + + + + + + + 以UTF-8格式写入所有文本到文件,如果文件夹不存在,会自动创建 + + + + + + + 从文件中加载图片,使用本方法,不会导致图片文件被占用。 + + + + + + 获取文件大小 + + + + + + + 添加文件到指定文件夹,会进行自动重命名,并返回重命名后的文件名(含路径) + + 要添加的文件路径 + 要添加到的文件夹 + 是否根据时间进行重命名 + 返回是否成功执行 + 成功执行则返回路径,否则返回空 + + + + 获取文件大小字符串 + + + + + + + 根据文件大小字符串获取长整型表示的文件大小 + + + + + + + 获取文件大小字符串 + + + + + + + 复制内容到剪切板 + + + + + + 添加某个控件为支持拖放属性 + + + + + + + 使管理员方式运行时支持拖放 + + + + + + + 保存高质量不失真照片 + + + + + + + + 保存高质量不失真照片 + + + + + + + + 保存高质量不失真照片 + + + + + + + + 保存高质量不失真照片 + + + + + + + 保存高质量不失真照片 + + + + + + + 获取绝对路径 + + + + + + + 获取相对路径 + + + + + + + 获取图标 + + + + + + + + + + + + + + 销毁图标 + + + + + + + 获取文件图标 + + + + + + + + + + 图片相关API + + + + + 从文件或Url中加载图片,使用本方法,不会导致图片文件被占用。 + + + + + + + 保存高质量不失真照片 + + + + + + + + 保存高质量不失真照片 + + + + + + + + 保存高质量不失真照片 + + + + + + + + 保存高质量不失真照片 + + + + + + + 保存高质量不失真照片 + + + + + + + 以逆时针为方向对图像进行旋转 + + 位图流 + 旋转角度[0,360](前台给的) + + + + + 是否包括透明像素 + + + + 操作失败 + + + + 矩形边界 + + + + + + + + 计算水印位置 + + + + + + + + + 写入水印 + + 原图 + 水印图片 + 水印位置 + 不透明度(0~1),越小越透明 + + + + + 写入水印 + + 原图 + 水印图片 + 水印位置 + x坐标偏移 + y坐标偏移 + 不透明度(0~1),越小越透明 + + + + + 写入水印 + + 原图 + 水印图片 + 水印位置 + x坐标偏移 + y坐标偏移 + 不透明度(0~1),越小越透明 + + + + + 计算最大字体大小 + + + + + + + + + + + 计算旋转矩形大小 + + + + + + + + 写入水印文字 + + 图片 + 水印文字 + 水印字体名字 + 字体颜色 + 字体大小 + 旋转角度 + 水印位置 + x坐标偏移 + y坐标偏移 + 不透明度(0~1),越小越透明 + + + + + 写入水印文字 + + 图片 + 水印文字 + 水印字体名字 + 字体颜色 + 字体大小 + 旋转角度 + 水印位置 + x坐标偏移 + y坐标偏移 + 不透明度(0~1),越小越透明 + + + + + 写入水印文字 + + 图片 + 水印文字 + 水印字体名字 + 字体颜色 + 字体大小 + 旋转角度 + 水印位置 + 不透明度(0~1),越小越透明 + + + + + 往图片右下角写入水印文字 + + 图片 + 水印文字 + 水印字体名字 + 字体颜色 + 字体大小 + 不透明度(0~1),越小越透明 + + + + + 往图片右下角写入水印文字 + + 图片 + 水印文字 + 水印字体名字 + 字体颜色 + 字体大小 + + + + + 缩放 + + + 宽 + 高 + 插值算法 + 返回缩放后的图片 + Image 不能为 null + 操作失败 + + + + 缩放 + + + 宽 + 高 + 返回缩放后的图片 + Image 不能为 null + 操作失败 + + + + 根据原边长和新边长计算绘制的起始点坐标 + + + + + + + + 获取缩放模式 + + + + + + 是否裁剪图片 + + + + + 裁剪或填充 + + + + + 背景色 + 插值算法 + + Image 不能为 null + 操作失败 + + + + 裁剪 + + + 宽度 + 高度 + + 返回裁剪后的图片 + Image 不能为 null + 新的图片尺寸的宽度和高度必须大于零 + 操作失败 + + + + 调整宽度 + + + + + + + + 根据最大宽度调整图片尺寸 + + + 最大宽度 + 返回调整后的图片 + Image 不能为 null + 最大宽度必须大于零 + 操作失败 + + + + 根据最大高度调整图片尺寸 + + + 最大高度 + 返回调整后的图片 + Image 不能为 null + 最大宽度必须大于零 + 操作失败 + + + + 调整高度 + + + + + + + + 调整图片大小 + + + + + + + + + + 调整图片大小 + + + + + + + + + + + 调整图片大小 + + + + + + + + + + + + + 转换Image为Icon + + 要转换为图标的Image对象 + 当image为null时是否返回null。false则抛空引用异常 + + + + + 缩放模式 + + + + + 宽度优先(不裁剪宽) + + + + + 高度优先(不裁剪高) + + + + + 水印位置 + + + + + 左上角 + + + + + 中上 + + + + + 右上角 + + + + + 左中 + + + + + 居中 + + + + + 右中 + + + + + 左下角 + + + + + 中下 + + + + + 右下角 + + + + + 全屏平铺 + + + + + 音频播放类 + + + + + 临时音频文件 + + + + + 父窗口句柄 + + + + + 声音标签 + + + + play synchronously (default) + + + play asynchronously + + + silence (!default) if sound not found + + + pszSound points to a memory file + + + loop the sound until next sndPlaySound + + + don’t stop any currently playing sound + + + Stop Playing Wave + + + don’t wait if the driver is busy + + + name is a registry alias + + + alias is a predefined id + + + name is file name + + + name is resource name or atom + + + + 音频播放类 + + embedded music file + 临时保存的文件位置 + 父窗口句柄 + + + + 音频播放类 + + 要播放的音频位置 + 父窗口句柄 + + + + 音频播放类 + + + 父窗口句柄 + + + + 播放音频 + + + + + + 播放音频 + + + + + 关闭音频 + + + + + 用于取得一个文本文件的编码方式(Encoding)。 + + + + + 用于取得一个文本文件的编码方式(Encoding)。 + + + + + 取得一个文本文件的编码方式。如果无法在文件头部找到有效的前导符,Encoding.Default将被返回。 + + 文件名。 + + + + + 取得一个文本文件流的编码方式。 + + 文本文件流。 + + + + + 取得一个文本文件的编码方式。 + + 文件名。 + 默认编码方式。当该方法无法从文件的头部取得有效的前导符时,将返回该编码方式。 + + + + + 取得一个文本文件流的编码方式。 + + 文本文件流。 + 默认编码方式。当该方法无法从文件的头部取得有效的前导符时,将返回该编码方式。 + + + + + 通过给定的文件流,判断文件的编码类型 + + 文件流 + 文件的编码类型 + + + + 判断是否是不带 BOM 的 UTF8 格式 + + + + + + + 数据库操作扩展 + + + + + 判断DataSet是否包含数据 + + + + + + + 获取首行数据,如果没有数据,则返回null + + + + + + + 获取第一行第一列的值 + + + + + + + 获取第一张表的指定行数据 + + + 指定第几行 + + + + + 对鼠标或键盘的自动化操作 + + + + + 鼠标左键 + + + + + 鼠标中键 + + + + + 鼠标右键 + + + + + 模拟键盘按键 + + + + 按下还是抬起 + + + + 鼠标滚轮 + + + + + + + + 鼠标移动 + + + + + + + + 自定义鼠标按下或抬起 + + + + + + + + + 左键单击鼠标(支持后台单击) + + 指定要发送单击命令的句柄 + 坐标x(句柄内的坐标,非屏幕坐标) + 坐标y(句柄内的坐标,非屏幕坐标) + + + + 左键单击鼠标(支持后台单击) + + 指定要发送单击命令的句柄 + 坐标(句柄内的坐标,非屏幕坐标) + + + + 右键单击鼠标(支持后台单击) + + 指定要发送单击命令的句柄 + 坐标x(句柄内的坐标,非屏幕坐标) + 坐标y(句柄内的坐标,非屏幕坐标) + + + + 右键单击鼠标(支持后台单击) + + 指定要发送单击命令的句柄 + 坐标(句柄内的坐标,非屏幕坐标) + + + + 中键单击鼠标(支持后台单击) + + 指定要发送单击命令的句柄 + 坐标x(句柄内的坐标,非屏幕坐标) + 坐标y(句柄内的坐标,非屏幕坐标) + + + + 中键单击鼠标(支持后台单击) + + 指定要发送单击命令的句柄 + 坐标(句柄内的坐标,非屏幕坐标) + + + + 左键单击鼠标(不支持后台单击) + + 坐标x(屏幕坐标) + 坐标y(屏幕坐标) + + + + 左键单击鼠标(不支持后台单击) + + 坐标(屏幕坐标) + + + + 右键单击鼠标(不支持后台单击) + + 坐标x(屏幕坐标) + 坐标y(屏幕坐标) + + + + 右键单击鼠标(不支持后台单击) + + 坐标(屏幕坐标) + + + + 中键单击鼠标(不支持后台单击) + + 坐标x(屏幕坐标) + 坐标y(屏幕坐标) + + + + 中键单击鼠标(不支持后台单击) + + 坐标(屏幕坐标) + + + + 粘贴文本 + + + + + + 获取指定句柄的大小及位置 + + + + + + + + 设置指定句柄的大小 + + + + + + + 判断鼠标位置是不是在指定的矩形中 + + + + + + + + 判断2张图是否相似度超90 + + + + + + + + /获取2种颜色的相似度,范围为0~100 + + + + + + + + 新模态窗体 + + + + + 设置窗体返回的结果值,并关闭窗体。 + + 当前窗体 + 模态变量 + 防止 + + + + 窗体返回的结果事件 + + + + + + + 当打开的窗体返回结果时激发 + + + + + 窗体返回的状态 + + + + + 实例化类 + + 父窗体,如果为null,则取桌面为父窗体 + + + + + 获取最顶级的父窗口 + + + + + + 显示新模态窗体,会暂时禁用父窗体,关闭当前窗体后,父窗体会恢复。 + + + + + 只运行一个实例,打开后,所有窗体都依然有效。 + + + + + + 显示窗体 + + 显示的位置 + + + + 显示在父窗体中间 + + + + + 窗体显示位置 + + + + + 右上角 + + + + + 顶部中间 + + + + + 顶部右边 + + + + + 中间 + + + + + 左下角 + + + + + 底部中间 + + + + + 右下角 + + + + + 父窗体居中 + + + + + + + + + + + + + + + + + + + + + + + + + 设置线程数量 + + + + + 要计算的总数量 + + + + + 每个线程要计算的数量 + + + + + + + + + + 当前已使用的时间 + + + + + + + 线程数量 + 要计算的事务数量 + + + + + + + + + + + + + + + + + + + + + + + 多线程计算时激发 + + + + + 在所有线程执行完毕后发生 + + + + + 在线程执行完毕后发生,最后一个执行完毕的线程将不收到本事件通知 + + + + + 进程相关接口 + + + + + 获取进程路径 + + + + + + + 获取进程路径 + + + + + + + 获取命令行 + + + + + + + 获取命令行 + + + + + + + 运行库检测类 + + + + + 获取产品状态 + + + + + + + 判断是否已安装VC运行库 + + + + + + 判断是否已安装VC运行库 + + + + + + 安装状态 + + + + + 组件禁用 + + + + + 配置数据已损坏 + + + + + 安装已暂停或正在进行 + + + + + 从源运行,源不可用 + + + + + 返回缓冲区溢出 + + + + + 无效的参数传递给该函数。 + + + + + 不公布或者未安装该产品。 + + + + + 损坏 + + + + + 该产品已公布但尚未安装。 + + + + + 正在移除的组件(操作状态,不可设置) + + + + + 不同的用户安装该产品。 + + + + + 安装在本地驱动器上 + + + + + 从源代码、CD或网络运行 + + + + + 为当前用户安装该产品。 + + + + + 安装的版本,是x86还是x64,还是全部安装了 + + + + + 判断32位和64位运行库是否已安装 + + + + + 判断32位运行库是否已安装 + + + + + 判断64位运行库是否已安装 + + + + + 判断是否已安装VC2005运行库 + + + + + + 判断是否已安装VC2005SP1运行库 + + + + + + 判断是否已安装VC2008运行库 + + + + + + 判断是否已安装VC2008SP1运行库 + + + + + + 判断是否已安装VC2010运行库 + + + + + + 判断是否已安装VC2010SP1运行库 + + + + + + 判断是否已安装VC2012运行库 + + + + + + 判断是否已安装VC2013运行库 + + + + + + 判断是否已安装VC2015或以上运行库 + + + + + + 判断是否已安装VC2017运行库或以上运行库 + + + + + + 判断是否已安装VC2019运行库或以上运行库 + + + + + + 判断是否已安装VC2022运行库或以上运行库 + + + + + + 判断当前系统是否安装了WebView2组件 + + + + + + 判断当前系统是否安装了.NET 4.8 + + + + + + 日期时间的操作类 + + + + + 获取当前是周几,周一到周日,分别是1-7. + + + + + + + 获取当前是周几,1-7,分别是返回一到日. + + + + + + + 获取当前是周几,输入日期,根据周几,分别是返回一到日. + + + + + + + 获取一周的开始和结束,开始时间为第一天的0点,结束时间以最后一天的0点为结束时间 + + + + + + + 获取2个日期相差几周 + + + + + + + + 获取2个日期相差几个月 + + + + + + + + 获取一个月的开始 + + + + + + + 判断是否在同一个星期。 + + + + + + + + 判断是否在同一个月。 + + + + + + + + 判断是否在同一天 + + + + + + + + 计算两个日期的时间间隔,返回的是时间间隔的日期差的绝对值. + + 第一个日期和时间 + 第二个日期和时间 + + + + + 计算两个日期的时间间隔,返回的是时间间隔的日期差的绝对值. + + 第一个日期和时间 + 第二个日期和时间 + 是否显示秒 + + + + + 将秒数显示成中文表达式 + + + + + + + 计算一个时间与当前本地日期和时间的时间间隔,返回的是时间间隔的日期差的绝对值. + + 一个日期和时间 + + + + + 将c# DateTime时间格式转换为Unix时间戳格式 + + 时间 + long + + + + 时间戳转为C#格式时间 + + + + + + + 时间戳转为C#格式时间 + + + + + + + 将c# DateTime时间格式转换为js时间戳格式 + + 时间 + long + + + + JS时间戳转为C#格式时间 + + + + + + + JS时间戳转为C#格式时间 + + + + + + + 根据年月日转换成日期 + + + + + + + + + 根据日期和时间转换成日期时间 + + + + + + + + 将时间转换成当前分钟开始的时间 + + + + + + + 将时间转换成当前秒钟开始的时间 + + + + + + + 当前时间在这一天里的秒数 + + + + + + + 窗体操作类 + + + + + 设置Comobox的行间距 + + + + + + + 移除关闭按钮。返回值,非零表示成功,零表示失败。 + + 窗口的句柄 + 是否成功 + + + + 把窗体放到最前 + + + + + + 显示窗体 + + + + + + + + 设置窗体是否置顶 + + + + + + + 显示没有焦点的窗口 + + + + + + 根据句柄获取窗口文本 + + + + + + + 根据句柄获取窗口类 + + + + + + + 获取当前活动的窗口句柄 + + + + + + 获取当前前台的窗口句柄 + + + + + + 设置为当前活动窗口 + + + + + + + 根据窗口句柄来获得进程id + + + + + + + 显示窗体 + + + + + + 设置窗体父窗体为桌面,不会随着显示桌面而最小化,但无法设置窗体透明度 + + + + + + 结束进程 + + + + + + + 打开窗体,只打开一个实例(非模态) + + + + + + + 将窗体植入到容器控件中 + + + 作为窗体容器的控件 + + + + + 重新调整窗体大小以适配容器大小 + + + 作为窗体容器的控件 + + + + + 设置注册表操作,部分功能需要管理员权限 + + + + + 访问的注册表位置(64位还是32位) + + + + + 访问的注册表节点 + + + + + 判断注册表项是否存在 + + + + + + + + + 删除注册表键(如果存在子键,子键将一并被删除) + + + + + + + + + + 删除注册表键值 + + + + + + + + + + 获取注册表键值 + + + + + + + + + + + 设置注册表键值 + + + + + + + + + + + 设置注册表键值 + + + + + + + + + + + 设置是否开机启动 + + 是否开机启动 + 开机启动名称 + 启动命令 + + + + + 设置是否开机启动 + + 是否开机启动 + 开机启动名称 + + + + + 把指定文件设置为开机启动或取消开机启动 + + 是否开机启动 + 开机启动名称 + 要开机启动的文件路径 + + + + + 检查是否开机启动 + + 开机启动名称 + 开机启动命令 + + + + + 检查是否开机启动 + + 开机启动名称 + + + + + 判断指定文件是否是开机启动 + + 开机启动名称 + 文件路径 + + + + + 判断当前程序是否是开机启动 + + 开机启动名称 + + + + + 判断当前程序是否是开机启动 + + 开机启动名称 + 启动命令行 + + + + + 设置指定文件的浏览器控件内核版本 + + 文件名,要求不带路径 + 7000 表示IE7兼容视图模式;8000 表示IE8 标准模式 ;8888 表示IE8 强制标准模式,在渲染失败的情况下不尝试用兼容视图模式 + + + + + 设置文件关联 + + 扩展名(如.apk) + 映射的扩展名(如apkfile) + app名称(建议用英文数字) + 文件关联描述 + 文件路径 + + + + 设置文件关联 + + 映射的扩展名(如apkfile) + app名称(建议用英文数字) + 文件关联描述 + 文件路径 + + + + 在指定文件格式右键菜单中增加菜单 + + 扩展名(如.apk) + app名称(建议用英文数字) + 文件关联描述 + 文件路径 + + + + 删除文件关联 + + 映射的扩展名(如apkfile) + app名称(建议用英文数字) + + + + 获取文件关联是否存在 + + 映射的扩展名(如apkfile) + app名称(建议用英文数字) + + + + 采用的IE模式 + + + + + IE7兼容视图 + + + + + IE8 标准模式 + + + + + IE8 强制标准模式,在渲染失败的情况下不尝试用兼容视图模式 + + + + + IE9 标准模式 + + + + + IE9 强制标准模式,在渲染失败的情况下不尝试用兼容视图模式 + + + + + IE10 标准模式 + + + + + IE10 强制标准模式,在渲染失败的情况下不尝试用兼容视图模式 + + + + + 设置当前软件的浏览器控件内核版本 + + 7000 表示IE7兼容视图模式;8000 表示IE8 标准模式 ;8888 表示IE8 强制标准模式,在渲染失败的情况下不尝试用兼容视图模式 + + + + + 设置指定文件的浏览器控件内核版本 + + 文件名,要求不带路径 + IE内核版本 + + + + + 设置当前软件的浏览器控件内核版本 + + IE内核版本 + + + + + 系统音量操作类 + + + + + 判断系统是否正处于静音 + + + + + + 系统函数 + + + + + + + + + + 红 + + + + + 绿 + + + + + 蓝 + + + + + 获取屏幕伽马值 + + + + + + + + 设置屏幕伽马值 + + + + + + + + 获取键盘和鼠标没有操作的时间 + + + + + + 设置屏幕 Gamma值 + + + + + + + + + 设置屏幕亮度 + + + + + + + 获取系统名称,注意需要在app.manifest文件中设置兼容win10 + + + + + + SOURCE CODE FROM THE WEBSITE. + LAST UPDATE:WWW.VJSDN.COM易学论坛,2009/08/03 by Jonny Sun + + + + + Mutes the left hand channel and transfers audio fully to the right + + + + + Mutes the right hand channel and transfers audio fully to the left + + + + + SOURCE CODE FROM THE WEBSITE. + LAST UPDATE:WWW.VJSDN.COM易学论坛,2009/08/03 by Jonny Sun + + + + + Mutes the left hand channel and transfers audio fully to the right + + + + + Mutes the right hand channel and transfers audio fully to the left + + + + + 窗体操作类 + + + + + 构造函数 + + + + + + 析构 + + + + + 设置让窗体支持移动 + + + + + 是否允许可调节大小 + + + + + 可调节窗体大小的宽度 + + + + + + + + + + + + + + + + + + + + + + + 开始截图 + + 是否截取鼠标指针 + + + + + 自动排列控件 + + + + + 最大列数 + + + + + 开始排列的坐标 + + + + + 下一项的位置 + + + + + 下一项的右下角坐标 + + + + + 竖向间隔像素 + + + + + 横向间隔像素 + + + + + 最小保留右边距,只对ReDraw2有效 + + + + + 自动排列控件构造函数 + + + + + + 自动排列控件构造函数 + + + + + + + + 开始排列控件 + + + + + 开始排列控件,当列数超过显示空间时,自动换行 + + + + + 加入的控件列表 + + + + + 初始化添加,自动将容器设置为滚动条自动显示 + + + + + + 添加控件 + + + + + + + 删除控件 + + + + + + 删除控件 + + + + + + 清空所有控件 + + + + + + + + + + 根据XPath来获取属性值 + + + + 属性名,为空则输出InnerText,-1则输出InnerHtml,-2则输出OuterHtml + + + + + + 根据当前节点生成HtmlDocument + + + + + + + 根据XPath来获取属性值 + + + + 属性名,为空则输出InnerText,-1则输出InnerHtml,-2则输出OuterHtml + + + + + + 根据XPath来查找节点 + + + + + + + + 在当前节点下根据xpath来查找符合的第一个节点 + + + + + + + + 在当前节点下根据xpath来查找所有符合的节点 + + + + + + + + A utility class to compute CRC32. + + + + + Compute a checksum for a given array of bytes. + + The array of bytes to compute the checksum for. + The computed checksum. + + + + Compute a checksum for a given string. + + The string to compute the checksum for. + The computed checksum. + + + + Represents an HTML attribute. + + + + + Gets the line number of this attribute in the document. + + + + + Gets the column number of this attribute in the document. + + + + + Gets the stream position of the value of this attribute in the document, relative to the start of the document. + + + + + Gets the length of the value. + + + + + + + + + + Gets the qualified name of the attribute. + + + + + Name of attribute with original case + + + + + Gets the HTML document to which this attribute belongs. + + + + + Gets the HTML node to which this attribute belongs. + + + + + Specifies what type of quote the data should be wrapped in + + + + + Specifies what type of quote the data should be wrapped in (internal to keep backward compatibility) + + + + + Gets the stream position of this attribute in the document, relative to the start of the document. + + + + + Gets or sets the value of the attribute. + + + + + Gets the DeEntitized value of the attribute. + + + + + Gets a valid XPath string that points to this Attribute + + + + + Compares the current instance with another attribute. Comparison is based on attributes' name. + + An attribute to compare with this instance. + A 32-bit signed integer that indicates the relative order of the names comparison. + + + + Creates a duplicate of this attribute. + + The cloned attribute. + + + + Removes this attribute from it's parents collection + + + + + An Enum representing different types of Quotes used for surrounding attribute values + + + + + A single quote mark ' + + + + + A double quote mark " + + + + + No quote mark + + + + + The initial value (current value) + + + + + Represents a combined list and collection of HTML nodes. + + + + + Gets the number of elements actually contained in the list. + + + + + Gets readonly status of colelction + + + + + Gets the attribute at the specified index. + + + + + Gets a given attribute from the list using its name. + + + + + Adds a new attribute to the collection with the given values + + + + + + + Adds supplied item to collection + + + + + Adds a range supplied items to collection. + An IEnumerable<HtmlAttribute> of items to append to this. + + + Adds a range supplied items to collection using a dictionary. + A Dictionary<string,string> of items to append to this. + + + + Explicit clear + + + + + Retreives existence of supplied item + + + + + + + Copies collection to array + + + + + + + Get Explicit enumerator + + + + + + Explicit non-generic enumerator + + + + + + Retrieves the index for the supplied item, -1 if not found + + + + + + + Inserts given item into collection at supplied index + + + + + + + Explicit collection remove + + + + + + + Removes the attribute at the specified index. + + The index of the attribute to remove. + + + + Inserts the specified attribute as the last attribute in the collection. + + The attribute to insert. May not be null. + The appended attribute. + + + + Creates and inserts a new attribute as the last attribute in the collection. + + The name of the attribute to insert. + The appended attribute. + + + + Creates and inserts a new attribute as the last attribute in the collection. + + The name of the attribute to insert. + The value of the attribute to insert. + The appended attribute. + + + + Checks for existance of attribute with given name + + + + + + + Inserts the specified attribute as the first node in the collection. + + The attribute to insert. May not be null. + The prepended attribute. + + + + Removes a given attribute from the list. + + The attribute to remove. May not be null. + + + + Removes an attribute from the list, using its name. If there are more than one attributes with this name, they will all be removed. + + The attribute's name. May not be null. + + + + Remove all attributes in the list. + + + + + Returns all attributes with specified name. Handles case insentivity + + Name of the attribute + + + + + Removes all attributes from the collection + + + + + Clears the attribute collection + + + + + Represents an HTML comment. + + + + + Gets or Sets the comment text of the node. + + + + + Gets or Sets the HTML between the start and end tags of the object. In the case of a text node, it is equals to OuterHtml. + + + + + Gets or Sets the object and its content in HTML. + + + + + Represents a complete HTML document. + + + + True to disable, false to enable the behavior tag p. + + + Default builder to use in the HtmlDocument constructor + + + Action to execute before the Parse is executed + + + + Defines the max level we would go deep into the html document + + + + The HtmlDocument Text. Careful if you modify it. + + + True to stay backward compatible with previous version of HAP. This option does not guarantee 100% compatibility. + + + + Adds Debugging attributes to node. Default is false. + + + + + Defines if closing for non closed nodes must be done at the end or directly in the document. + Setting this to true can actually change how browsers render the page. Default is false. + + + + + Defines if non closed nodes will be checked at the end of parsing. Default is true. + + + + + Defines if a checksum must be computed for the document while parsing. Default is false. + + + + + Defines if SelectNodes method will return null or empty collection when no node matched the XPath expression. + Setting this to true will return empty collection and false will return null. Default is false. + + + + True to disable, false to enable the server side code. + + + + Defines the default stream encoding to use. Default is System.Text.Encoding.Default. + + + + + Force to take the original comment instead of creating it + + + + + Defines if source text must be extracted while parsing errors. + If the document has a lot of errors, or cascading errors, parsing performance can be dramatically affected if set to true. + Default is false. + + + + + Defines the maximum length of source text or parse errors. Default is 100. + + + + + Defines if LI, TR, TH, TD tags must be partially fixed when nesting errors are detected. Default is false. + + + + + Defines if output must conform to XML, instead of HTML. Default is false. + + + + + If used together with and enabled, Xml namespaces in element names are preserved. Default is false. + + + + + Defines if attribute value output must be optimized (not bound with double quotes if it is possible). Default is false. + + + + Defines the global attribute value quote. When specified, it will always win. + + + + Defines if name must be output with it's original case. Useful for asp.net tags and attributes. Default is false. + + + + + Defines if name must be output in uppercase. Default is false. + + + + + Defines if declared encoding must be read from the document. + Declared encoding is determined using the meta http-equiv="content-type" content="text/html;charset=XXXXX" html node. + Default is true. + + + + + Defines the name of a node that will throw the StopperNodeException when found as an end node. Default is null. + + + + + Defines if the 'id' attribute must be specifically used. Default is true. + + + + + Defines if empty nodes must be written as closed during output. Default is false. + + + + + The max number of nested child nodes. + Added to prevent stackoverflow problem when a page has tens of thousands of opening html tags with no closing tags + + + + + Creates an instance of an HTML document. + + + + Gets the parsed text. + The parsed text. + + + + Defines the max level we would go deep into the html document. If this depth level is exceeded, and exception is + thrown. + + + + + Gets the document CRC32 checksum if OptionComputeChecksum was set to true before parsing, 0 otherwise. + + + + + Gets the document's declared encoding. + Declared encoding is determined using the meta http-equiv="content-type" content="text/html;charset=XXXXX" html node (pre-HTML5) or the meta charset="XXXXX" html node (HTML5). + + + + + Gets the root node of the document. + + + + + Gets the document's output encoding. + + + + + Gets a list of parse errors found in the document. + + + + + Gets the remaining text. + Will always be null if OptionStopperNodeName is null. + + + + + Gets the offset of Remainder in the original Html text. + If OptionStopperNodeName is null, this will return the length of the original Html text. + + + + + Gets the document's stream encoding. + + + + + Gets a valid XML name. + + Any text. + A string that is a valid XML name. + + + + + + + + + + + + + + + + + + + Applies HTML encoding to a specified string. + + The input string to encode. May not be null. + The encoded string. + + + + Determines if the specified character is considered as a whitespace character. + + The character to check. + true if if the specified character is considered as a whitespace character. + + + + Creates an HTML attribute with the specified name. + + The name of the attribute. May not be null. + The new HTML attribute. + + + + Creates an HTML attribute with the specified name. + + The name of the attribute. May not be null. + The value of the attribute. + The new HTML attribute. + + + + Creates an HTML comment node. + + The new HTML comment node. + + + + Creates an HTML comment node with the specified comment text. + + The comment text. May not be null. + The new HTML comment node. + + + + Creates an HTML element node with the specified name. + + The qualified name of the element. May not be null. + The new HTML node. + + + + Creates an HTML text node. + + The new HTML text node. + + + + Creates an HTML text node with the specified text. + + The text of the node. May not be null. + The new HTML text node. + + + + Detects the encoding of an HTML stream. + + The input stream. May not be null. + The detected encoding. + + + + Detects the encoding of an HTML stream. + + The input stream. May not be null. + The html is checked. + The detected encoding. + + + + Detects the encoding of an HTML text provided on a TextReader. + + The TextReader used to feed the HTML. May not be null. + The detected encoding. + + + + Detects the encoding of an HTML text. + + The input html text. May not be null. + The detected encoding. + + + + Gets the HTML node with the specified 'id' attribute value. + + The attribute id to match. May not be null. + The HTML node with the matching id or null if not found. + + + + Loads an HTML document from a stream. + + The input stream. + + + + Loads an HTML document from a stream. + + The input stream. + Indicates whether to look for byte order marks at the beginning of the stream. + + + + Loads an HTML document from a stream. + + The input stream. + The character encoding to use. + + + + Loads an HTML document from a stream. + + The input stream. + The character encoding to use. + Indicates whether to look for byte order marks at the beginning of the stream. + + + + Loads an HTML document from a stream. + + The input stream. + The character encoding to use. + Indicates whether to look for byte order marks at the beginning of the stream. + The minimum buffer size. + + + + Loads the HTML document from the specified TextReader. + + The TextReader used to feed the HTML data into the document. May not be null. + + + + Loads the HTML document from the specified string. + + String containing the HTML document to load. May not be null. + + + + Saves the HTML document to the specified stream. + + The stream to which you want to save. + + + + Saves the HTML document to the specified stream. + + The stream to which you want to save. May not be null. + The character encoding to use. May not be null. + + + + Saves the HTML document to the specified StreamWriter. + + The StreamWriter to which you want to save. + + + + Saves the HTML document to the specified TextWriter. + + The TextWriter to which you want to save. May not be null. + + + + Saves the HTML document to the specified XmlWriter. + + The XmlWriter to which you want to save. + + + + Detects the encoding of an HTML document from a file first, and then loads the file. + + The complete file path to be read. + + + + Detects the encoding of an HTML document from a file first, and then loads the file. + + The complete file path to be read. May not be null. + true to detect encoding, false otherwise. + + + + Detects the encoding of an HTML file. + + Path for the file containing the HTML document to detect. May not be null. + The detected encoding. + + + + Loads an HTML document from a file. + + The complete file path to be read. May not be null. + + + + Loads an HTML document from a file. + + The complete file path to be read. May not be null. + Indicates whether to look for byte order marks at the beginning of the file. + + + + Loads an HTML document from a file. + + The complete file path to be read. May not be null. + The character encoding to use. May not be null. + + + + Loads an HTML document from a file. + + The complete file path to be read. May not be null. + The character encoding to use. May not be null. + Indicates whether to look for byte order marks at the beginning of the file. + + + + Loads an HTML document from a file. + + The complete file path to be read. May not be null. + The character encoding to use. May not be null. + Indicates whether to look for byte order marks at the beginning of the file. + The minimum buffer size. + + + + Saves the mixed document to the specified file. + + The location of the file where you want to save the document. + + + + Saves the mixed document to the specified file. + + The location of the file where you want to save the document. May not be null. + The character encoding to use. May not be null. + + + + Creates a new XPathNavigator object for navigating this HTML document. + + An XPathNavigator object. The XPathNavigator is positioned on the root of the document. + + + + Flags that describe the behavior of an Element node. + + + + + The node is a CDATA node. + + + + + The node is empty. META or IMG are example of such nodes. + + + + + The node will automatically be closed during parsing. + + + + + The node can overlap. + + + + + A utility class to replace special characters by entities and vice-versa. + Follows HTML 4.0 specification found at http://www.w3.org/TR/html4/sgml/entities.html + Follows Additional specification found at https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references + See also: https://html.spec.whatwg.org/multipage/named-characters.html#named-character-references + + + + + + + + + + A collection of entities indexed by name. + + + + + A collection of entities indexed by value. + + + + + Replace known entities by characters. + + The source text. + The result text. + + + + Clone and entitize an HtmlNode. This will affect attribute values and nodes' text. It will also entitize all child nodes. + + The node to entitize. + An entitized cloned node. + + + + Replace characters above 127 by entities. + + The source text. + The result text. + + + + Replace characters above 127 by entities. + + The source text. + If set to false, the function will not use known entities name. Default is true. + The result text. + + + + Replace characters above 127 by entities. + + The source text. + If set to false, the function will not use known entities name. Default is true. + If set to true, the [quote], [ampersand], [lower than] and [greather than] characters will be entitized. + The result text + + + + Represents an HTML node. + + + + + Gets the name of a comment node. It is actually defined as '#comment'. + + + + + Gets the name of the document node. It is actually defined as '#document'. + + + + + Gets the name of a text node. It is actually defined as '#text'. + + + + + Gets a collection of flags that define specific behaviors for specific element nodes. + The table contains a DictionaryEntry list with the lowercase tag name as the Key, and a combination of HtmlElementFlags as the Value. + + + + + Initialize HtmlNode. Builds a list of all tags that have special allowances + + + + + Initializes HtmlNode, providing type, owner and where it exists in a collection + + + + + + + + Gets the collection of HTML attributes for this node. May not be null. + + + + + Gets all the children of the node. + + + + + Gets a value indicating if this node has been closed or not. + + + + + Gets the collection of HTML attributes for the closing tag. May not be null. + + + + + Gets the closing tag of the node, null if the node is self-closing. + + + + + Gets the first child of the node. + + + + + Gets a value indicating whether the current node has any attributes. + + + + + Gets a value indicating whether this node has any child nodes. + + + + + Gets a value indicating whether the current node has any attributes on the closing tag. + + + + + Gets or sets the value of the 'id' HTML attribute. The document must have been parsed using the OptionUseIdAttribute set to true. + + + + + Gets or Sets the HTML between the start and end tags of the object. + + + + + Gets the text between the start and end tags of the object. + + + + Gets direct inner text. + The direct inner text. + + + + Gets the last child of the node. + + + + + Gets the line number of this node in the document. + + + + + Gets the column number of this node in the document. + + + + + Gets the stream position of the area between the opening and closing tag of the node, relative to the start of the document. + + + + + Gets the stream position of the area of the beginning of the tag, relative to the start of the document. + + + + + Gets the length of the area between the opening and closing tag of the node. + + + + + Gets the length of the entire node, opening and closing tag included. + + + + + Gets or sets this node's name. + + + + + Gets the HTML node immediately following this element. + + + + + Gets the type of this node. + + + + + The original unaltered name of the tag + + + + + Gets or Sets the object and its content in HTML. + + + + + Gets the to which this node belongs. + + + + + Gets the parent of this node (for nodes that can have parents). + + + + + Gets the node immediately preceding this node. + + + + + Gets the stream position of this node in the document, relative to the start of the document. + + + + + Gets a valid XPath string that points to this node + + + + + The depth of the node relative to the opening root html element. This value is used to determine if a document has to many nested html nodes which can cause stack overflows + + + + + Determines if an element node can be kept overlapped. + + The name of the element node to check. May not be null. + true if the name is the name of an element node that can be kept overlapped, false otherwise. + + + + Creates an HTML node from a string representing literal HTML. + + The HTML text. + The newly created node instance. + + + + Creates an HTML node from a string representing literal HTML. + + The HTML text. + The HTML Document builder. + The newly created node instance. + + + + Determines if an element node is a CDATA element node. + + The name of the element node to check. May not be null. + true if the name is the name of a CDATA element node, false otherwise. + + + + Determines if an element node is closed. + + The name of the element node to check. May not be null. + true if the name is the name of a closed element node, false otherwise. + + + + Determines if an element node is defined as empty. + + The name of the element node to check. May not be null. + true if the name is the name of an empty element node, false otherwise. + + + + Determines if a text corresponds to the closing tag of an node that can be kept overlapped. + + The text to check. May not be null. + true or false. + + + + Returns a collection of all ancestor nodes of this element. + + + + + + Get Ancestors with matching name + + + + + + + Returns a collection of all ancestor nodes of this element. + + + + + + Gets all anscestor nodes and the current node + + + + + + + Adds the specified node to the end of the list of children of this node. + + The node to add. May not be null. + The node added. + + + Sets child nodes identifier. + The chil node. + + + + Adds the specified node to the end of the list of children of this node. + + The node list to add. May not be null. + + + + Gets all Attributes with name + + + + + + + Creates a duplicate of the node + + + + + + Creates a duplicate of the node and changes its name at the same time. + + The new name of the cloned node. May not be null. + The cloned node. + + + + Creates a duplicate of the node and changes its name at the same time. + + The new name of the cloned node. May not be null. + true to recursively clone the subtree under the specified node; false to clone only the node itself. + The cloned node. + + + + Creates a duplicate of the node. + + true to recursively clone the subtree under the specified node; false to clone only the node itself. + The cloned node. + + + + Creates a duplicate of the node and the subtree under it. + + The node to duplicate. May not be null. + + + + Creates a duplicate of the node. + + The node to duplicate. May not be null. + true to recursively clone the subtree under the specified node, false to clone only the node itself. + + + + Gets all Descendant nodes for this node and each of child nodes + + The depth level of the node to parse in the html tree + the current element as an HtmlNode + + + + Returns a collection of all descendant nodes of this element, in document order + + + + + + Gets all Descendant nodes in enumerated list + + + + + + Gets all Descendant nodes in enumerated list + + + + + + Get all descendant nodes with matching name + + + + + + + Returns a collection of all descendant nodes of this element, in document order + + + + + + Gets all descendant nodes including this node + + + + + + + Gets first generation child node matching name + + + + + + + Gets matching first generation child nodes matching name + + + + + + Gets data attribute. + The key. + The data attribute. + + + Gets the data attributes in this collection. + + An enumerator that allows foreach to be used to process the data attributes in this + collection. + + + + Gets the attributes in this collection. + + An enumerator that allows foreach to be used to process the attributes in this collection. + + + + Gets the attributes in this collection. + A variable-length parameters list containing attribute names. + + An enumerator that allows foreach to be used to process the attributes in this collection. + + + + + Helper method to get the value of an attribute of this node. If the attribute is not found, the default value will be returned. + + The name of the attribute to get. May not be null. + The default value to return if not found. + The value of the attribute if found, the default value if not found. + + + + Helper method to get the value of an attribute of this node. If the attribute is not found, the default value will be returned. + + The name of the attribute to get. May not be null. + The default value to return if not found. + The value of the attribute if found, the default value if not found. + + + + Helper method to get the value of an attribute of this node. If the attribute is not found, the default value will be returned. + + The name of the attribute to get. May not be null. + The default value to return if not found. + The value of the attribute if found, the default value if not found. + + + + Helper method to get the value of an attribute of this node. If the attribute is not found, + the default value will be returned. + + The name of the attribute to get. May not be null. + The default value to return if not found. + The value of the attribute if found, the default value if not found. + + + + Inserts the specified node immediately after the specified reference node. + + The node to insert. May not be null. + The node that is the reference node. The newNode is placed after the refNode. + The node being inserted. + + + + Inserts the specified node immediately before the specified reference node. + + The node to insert. May not be null. + The node that is the reference node. The newChild is placed before this node. + The node being inserted. + + + + Adds the specified node to the beginning of the list of children of this node. + + The node to add. May not be null. + The node added. + + + + Adds the specified node list to the beginning of the list of children of this node. + + The node list to add. May not be null. + + + + Removes node from parent collection + + + + + Removes all the children and/or attributes of the current node. + + + + + Removes all the children of the current node. + + + + Removes all id for node described by node. + The node. + + + Move a node already associated and append it to this node instead. + The child node to move. + + + Move a children collection already associated and append it to this node instead. + The children collection already associated to move to another node. + + + Removes the children collection for this node. + The old children collection to remove. + + + + Removes the specified child node. + + The node being removed. May not be null. + The node removed. + + + + Removes the specified child node. + + The node being removed. May not be null. + true to keep grand children of the node, false otherwise. + The node removed. + + + + Replaces the child node oldChild with newChild node. + + The new node to put in the child list. + The node being replaced in the list. + The node replaced. + + + + Helper method to set the value of an attribute of this node. If the attribute is not found, it will be created automatically. + + The name of the attribute to set. May not be null. + The value for the attribute. + The corresponding attribute instance. + + + + Saves all the children of the node to the specified TextWriter. + + The TextWriter to which you want to save. + Identifies the level we are in starting at root with 0 + + + + Saves all the children of the node to a string. + + The saved string. + + + + Saves the current node to the specified TextWriter. + + The TextWriter to which you want to save. + identifies the level we are in starting at root with 0 + + + + Saves the current node to the specified XmlWriter. + + The XmlWriter to which you want to save. + + + + Saves the current node to a string. + + The saved string. + + + + Sets the parent Html node and properly determines the current node's depth using the parent node's depth. + + + + + Adds one or more classes to this node. + + The node list to add. May not be null. + + + + Adds one or more classes to this node. + + The node list to add. May not be null. + true to throw Error if class name exists, false otherwise. + + + + Removes the class attribute from the node. + + + + + Removes the class attribute from the node. + + true to throw Error if class name doesn't exist, false otherwise. + + + + Removes the specified class from the node. + + The class being removed. May not be null. + + + + Removes the specified class from the node. + + The class being removed. May not be null. + true to throw Error if class name doesn't exist, false otherwise. + + + + Replaces the class name oldClass with newClass name. + + The new class name. + The class being replaced. + + + + Replaces the class name oldClass with newClass name. + + The new class name. + The class being replaced. + true to throw Error if class name doesn't exist, false otherwise. + + + Gets the CSS Class from the node. + + The CSS Class from the node + + + + Check if the node class has the parameter class. + The class. + True if node class has the parameter class, false if not. + + + + Fill an object and go through it's properties and fill them too. + + Type of object to want to fill. It should have atleast one property that defined XPath. + Returns an object of type T including Encapsulated data. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + + + + Fill an object and go through it's properties and fill them too. + + Type of object to want to fill. It should have atleast one property that defined XPath. + If htmlDocument includes data , leave this parameter null. Else pass your specific htmldocument. + Returns an object of type T including Encapsulated data. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + + + + Fill an object and go through it's properties and fill them too. + + Type of object to want to fill. It should have atleast one property that defined XPath. + If htmlDocument includes data , leave this parameter null. Else pass your specific htmldocument. + Returns an object of type targetType including Encapsulated data. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + Why it's thrown. + + + + Creates a new XPathNavigator object for navigating this HTML node. + + An XPathNavigator object. The XPathNavigator is positioned on the node from which the method was called. It is not positioned on the root of the document. + + + + Creates an XPathNavigator using the root of this document. + + + + + + Selects a list of nodes matching the expression. + + The XPath expression. + An containing a collection of nodes matching the query, or null if no node matched the XPath expression. + + + + Selects a list of nodes matching the expression. + + The XPath expression. + An containing a collection of nodes matching the query, or null if no node matched the XPath expression. + + + + Selects the first XmlNode that matches the XPath expression. + + The XPath expression. May not be null. + The first that matches the XPath query or a null reference if no matching node was found. + + + + Selects a list of nodes matching the expression. + + The XPath expression. + An containing a collection of nodes matching the query, or null if no node matched the XPath expression. + + + + Includes tools that GetEncapsulatedData method uses them. + + + + + Determine if a type define an attribute or not , supporting both .NetStandard and .NetFramework2.0 + + Type you want to test it. + Attribute that type must have or not. + If true , The type parameter define attributeType parameter. + + + + Retrive properties of type that defined . + + Type that you want to find it's XPath-Defined properties. + IEnumerable of property infos of a type , that defined specific attribute. + + + + Determine if a has implemented BUT is considered as NONE-IEnumerable ! + + The property info you want to test. + True if property info is IEnumerable. + + + + Returns T type(first generic type) of or . + + IEnumerable-Implemented property + List of generic types. + + + + Find and Return a mehtod that defined in a class by it's name. + + Type of class include requested method. + Name of requested method as string. + Method info of requested method. + + + + Create of given type. + + Type that you want to make a List of it. + Returns IList of given type. + + + + Returns the part of value of you want as . + + A htmlNode instance. + Attribute that includes ReturnType + String that choosen from HtmlNode as result. + + + + Returns parts of values of you want as . + + that you want to retrive each value. + A instnce incules . + Type of IList generic you want. + + + + + Simulate Func method to use in Lambada Expression. + + + + + + + + + This method works like Where method in LINQ. + + + + + + + + + Check if the type can instantiated. + + + + + + + Returns count of elements stored in IEnumerable of T + + + + + + + + Specify which part of is requested. + + + + + The text between the start and end tags of the object. + + + + + The HTML between the start and end tags of the object + + + + + The object and its content in HTML + + + + + Just mark and flag classes to show they have properties that defined . + + + + + Includes XPath and . XPath for finding html tags and for specify which part of you want to return. + + + + + XPath Expression that is used to find related html node. + + + + + Html Attribute name + + + + + The methode of output + + + + + Specify Xpath to find related Html Node. + + + + + + Specify Xpath to find related Html Node. + + + Specify you want the output include html text too. + + + + Specify Xpath and Attribute to find related Html Node and its attribute value. + + + + + + + Tagging a property with this Attribute make Encapsulator to ignore that property if it causes an error. + + + + + Exception that often occures when there is no way to bind a XPath to a Html Tag. + + + + + + + + + + + + + + + + + + + + + + + Exception that often occures when there is no way to bind a XPath to a HtmlTag Attribute. + + + + + + + + + + + + + + + + + + + + + + + Exception that often occures when there is no property that assigned with XPath Property in Class. + + + + + + + + + + + + + + + + + + + + + + + Represents a combined list and collection of HTML nodes. + + + + + Initialize the HtmlNodeCollection with the base parent node + + The base node of the collection + + + Gets the parent node associated to the collection. + + + + Gets a given node from the list. + + + + + Get node with tag name + + + + + + + Gets the number of elements actually contained in the list. + + + + + Is collection read only + + + + + Gets the node at the specified index. + + + + + Add node to the collection + + + + + + Add node to the collection + + + + + + + Clears out the collection of HtmlNodes. Removes each nodes reference to parentnode, nextnode and prevnode + + + + + Gets existence of node in collection + + + + + + + Copy collection to array + + + + + + + Get Enumerator + + + + + + Get Explicit Enumerator + + + + + + Get index of node + + + + + + + Insert node at index + + + + + + + Remove node + + + + + + + Remove at index + + + + + + Get first instance of node in supplied collection + + + + + + + + Add node to the end of the collection + + + + + + Get first instance of node with name + + + + + + + Get index of node + + + + + + + Add node to the beginning of the collection + + + + + + Remove node at index + + + + + + + Replace node at index + + + + + + + Get all node descended from this collection + + + + + + Get all node descended from this collection with matching name + + + + + + Gets all first generation elements in collection + + + + + + Gets all first generation elements matching name + + + + + + + All first generation nodes in collection + + + + + + Represents an HTML navigator on an HTML document seen as a data store. + + + + + Initializes a new instance of the HtmlNavigator and loads an HTML document from a stream. + + The input stream. + + + + Initializes a new instance of the HtmlNavigator and loads an HTML document from a stream. + + The input stream. + Indicates whether to look for byte order marks at the beginning of the stream. + + + + Initializes a new instance of the HtmlNavigator and loads an HTML document from a stream. + + The input stream. + The character encoding to use. + + + + Initializes a new instance of the HtmlNavigator and loads an HTML document from a stream. + + The input stream. + The character encoding to use. + Indicates whether to look for byte order marks at the beginning of the stream. + + + + Initializes a new instance of the HtmlNavigator and loads an HTML document from a stream. + + The input stream. + The character encoding to use. + Indicates whether to look for byte order marks at the beginning of the stream. + The minimum buffer size. + + + + Initializes a new instance of the HtmlNavigator and loads an HTML document from a TextReader. + + The TextReader used to feed the HTML data into the document. + + + + Initializes a new instance of the HtmlNavigator and loads an HTML document from a file. + + The complete file path to be read. + + + + Initializes a new instance of the HtmlNavigator and loads an HTML document from a file. + + The complete file path to be read. + Indicates whether to look for byte order marks at the beginning of the file. + + + + Initializes a new instance of the HtmlNavigator and loads an HTML document from a file. + + The complete file path to be read. + The character encoding to use. + + + + Initializes a new instance of the HtmlNavigator and loads an HTML document from a file. + + The complete file path to be read. + The character encoding to use. + Indicates whether to look for byte order marks at the beginning of the file. + + + + Initializes a new instance of the HtmlNavigator and loads an HTML document from a file. + + The complete file path to be read. + The character encoding to use. + Indicates whether to look for byte order marks at the beginning of the file. + The minimum buffer size. + + + + Gets the base URI for the current node. + Always returns string.Empty in the case of HtmlNavigator implementation. + + + + + Gets the current HTML document. + + + + + Gets the current HTML node. + + + + + Gets a value indicating whether the current node has child nodes. + + + + + Gets a value indicating whether the current node has child nodes. + + + + + Gets a value indicating whether the current node is an empty element. + + + + + Gets the name of the current HTML node without the namespace prefix. + + + + + Gets the qualified name of the current node. + + + + + Gets the namespace URI (as defined in the W3C Namespace Specification) of the current node. + Always returns string.Empty in the case of HtmlNavigator implementation. + + + + + Gets the associated with this implementation. + + + + + Gets the type of the current node. + + + + + Gets the prefix associated with the current node. + Always returns string.Empty in the case of HtmlNavigator implementation. + + + + + Gets the text value of the current node. + + + + + Gets the xml:lang scope for the current node. + Always returns string.Empty in the case of HtmlNavigator implementation. + + + + + Creates a new HtmlNavigator positioned at the same node as this HtmlNavigator. + + A new HtmlNavigator object positioned at the same node as the original HtmlNavigator. + + + + Gets the value of the HTML attribute with the specified LocalName and NamespaceURI. + + The local name of the HTML attribute. + The namespace URI of the attribute. Unsupported with the HtmlNavigator implementation. + The value of the specified HTML attribute. String.Empty or null if a matching attribute is not found or if the navigator is not positioned on an element node. + + + + Returns the value of the namespace node corresponding to the specified local name. + Always returns string.Empty for the HtmlNavigator implementation. + + The local name of the namespace node. + Always returns string.Empty for the HtmlNavigator implementation. + + + + Determines whether the current HtmlNavigator is at the same position as the specified HtmlNavigator. + + The HtmlNavigator that you want to compare against. + true if the two navigators have the same position, otherwise, false. + + + + Moves to the same position as the specified HtmlNavigator. + + The HtmlNavigator positioned on the node that you want to move to. + true if successful, otherwise false. If false, the position of the navigator is unchanged. + + + + Moves to the HTML attribute with matching LocalName and NamespaceURI. + + The local name of the HTML attribute. + The namespace URI of the attribute. Unsupported with the HtmlNavigator implementation. + true if the HTML attribute is found, otherwise, false. If false, the position of the navigator does not change. + + + + Moves to the first sibling of the current node. + + true if the navigator is successful moving to the first sibling node, false if there is no first sibling or if the navigator is currently positioned on an attribute node. + + + + Moves to the first HTML attribute. + + true if the navigator is successful moving to the first HTML attribute, otherwise, false. + + + + Moves to the first child of the current node. + + true if there is a first child node, otherwise false. + + + + Moves the XPathNavigator to the first namespace node of the current element. + Always returns false for the HtmlNavigator implementation. + + An XPathNamespaceScope value describing the namespace scope. + Always returns false for the HtmlNavigator implementation. + + + + Moves to the node that has an attribute of type ID whose value matches the specified string. + + A string representing the ID value of the node to which you want to move. This argument does not need to be atomized. + true if the move was successful, otherwise false. If false, the position of the navigator is unchanged. + + + + Moves the XPathNavigator to the namespace node with the specified local name. + Always returns false for the HtmlNavigator implementation. + + The local name of the namespace node. + Always returns false for the HtmlNavigator implementation. + + + + Moves to the next sibling of the current node. + + true if the navigator is successful moving to the next sibling node, false if there are no more siblings or if the navigator is currently positioned on an attribute node. If false, the position of the navigator is unchanged. + + + + Moves to the next HTML attribute. + + + + + + Moves the XPathNavigator to the next namespace node. + Always returns falsefor the HtmlNavigator implementation. + + An XPathNamespaceScope value describing the namespace scope. + Always returns false for the HtmlNavigator implementation. + + + + Moves to the parent of the current node. + + true if there is a parent node, otherwise false. + + + + Moves to the previous sibling of the current node. + + true if the navigator is successful moving to the previous sibling node, false if there is no previous sibling or if the navigator is currently positioned on an attribute node. + + + + Moves to the root node to which the current node belongs. + + + + + Represents the type of a node. + + + + + The root of a document. + + + + + An HTML element. + + + + + An HTML comment. + + + + + A text node is always the child of an element or a document node. + + + + + Represents a parsing error found during document parsing. + + + + + Gets the type of error. + + + + + Gets the line number of this error in the document. + + + + + Gets the column number of this error in the document. + + + + + Gets a description for the error. + + + + + Gets the the full text of the line containing the error. + + + + + Gets the absolute stream position of this error in the document, relative to the start of the document. + + + + + Represents the type of parsing error. + + + + + A tag was not closed. + + + + + A tag was not opened. + + + + + There is a charset mismatch between stream and declared (META) encoding. + + + + + An end tag was not required. + + + + + An end tag is invalid at this position. + + + + + Represents an HTML text node. + + + + + Gets or Sets the HTML between the start and end tags of the object. In the case of a text node, it is equals to OuterHtml. + + + + + Gets or Sets the object and its content in HTML. + + + + + Gets or Sets the text of the node. + + + + + A utility class to get HTML document from HTTP. + + + + + Represents the method that will handle the PostResponse event. + + + + + Represents the method that will handle the PreHandleDocument event. + + + + + Represents the method that will handle the PreRequest event. + + + + + Occurs after an HTTP request has been executed. + + + + + Occurs before an HTML document is handled. + + + + + Occurs before an HTTP request is executed. + + + + + Gets or Sets a value indicating if document encoding must be automatically detected. + + + + + Gets or sets the Encoding used to override the response stream from any web request + + + + + Gets or Sets a value indicating whether to get document only from the cache. + If this is set to true and document is not found in the cache, nothing will be loaded. + + + + + Gets or Sets a value indicating whether to get document from the cache if exists, otherwise from the web + A value indicating whether to get document from the cache if exists, otherwise from the web + + + + + Gets or Sets the cache path. If null, no caching mechanism will be used. + + + + + Gets a value indicating if the last document was retrieved from the cache. + + + + + Gets the last request duration in milliseconds. + + + + + Gets the URI of the Internet resource that actually responded to the request. + + + + + Gets the last request status. + + + + + Gets or Sets the size of the buffer used for memory operations. + + + + + Gets or Sets a value indicating if cookies will be stored. + + + + Gets or sets a value indicating whether redirect should be captured instead of the current location. + True if capture redirect, false if not. + + + + Gets or Sets the User Agent HTTP 1.1 header sent on any webrequest + + + + + Gets or Sets a value indicating whether the caching mechanisms should be used or not. + + + + + Gets the MIME content type for a given path extension. + + The input path extension. + The default content type to return if any error occurs. + The path extension's MIME content type. + + + + Gets the path extension for a given MIME content type. + + The input MIME content type. + The default path extension to return if any error occurs. + The MIME content type's path extension. + + + + Creates an instance of the given type from the specified Internet resource. + + The requested URL, such as "http://Myserver/Mypath/Myfile.asp". + The requested type. + An newly created instance. + + + + Gets an HTML document from an Internet resource and saves it to the specified file. + + The requested URL, such as "http://Myserver/Mypath/Myfile.asp". + The location of the file where you want to save the document. + + + + Gets an HTML document from an Internet resource and saves it to the specified file. - Proxy aware + + The requested URL, such as "http://Myserver/Mypath/Myfile.asp". + The location of the file where you want to save the document. + + + + + + Gets an HTML document from an Internet resource and saves it to the specified file. + + The requested URL, such as "http://Myserver/Mypath/Myfile.asp". + The location of the file where you want to save the document. + The HTTP method used to open the connection, such as GET, POST, PUT, or PROPFIND. + + + + Gets an HTML document from an Internet resource and saves it to the specified file. Understands Proxies + + The requested URL, such as "http://Myserver/Mypath/Myfile.asp". + The location of the file where you want to save the document. + + The HTTP method used to open the connection, such as GET, POST, PUT, or PROPFIND. + + + + + Gets the cache file path for a specified url. + + The url fo which to retrieve the cache path. May not be null. + The cache file path. + + + + Gets an HTML document from an Internet resource. + + The requested URL, such as "http://Myserver/Mypath/Myfile.asp". + A new HTML document. + + + + Gets an HTML document from an Internet resource. + + The requested Uri, such as new Uri("http://Myserver/Mypath/Myfile.asp"). + A new HTML document. + + + + Gets an HTML document from an Internet resource. + + The requested URL, such as "http://Myserver/Mypath/Myfile.asp". + Host to use for Proxy + Port the Proxy is on + User Id for Authentication + Password for Authentication + A new HTML document. + + + + Gets an HTML document from an Internet resource. + + The requested Uri, such as new Uri("http://Myserver/Mypath/Myfile.asp"). + Host to use for Proxy + Port the Proxy is on + User Id for Authentication + Password for Authentication + A new HTML document. + + + + Loads an HTML document from an Internet resource. + + The requested URL, such as "http://Myserver/Mypath/Myfile.asp". + The HTTP method used to open the connection, such as GET, POST, PUT, or PROPFIND. + A new HTML document. + + + + Loads an HTML document from an Internet resource. + + The requested URL, such as new Uri("http://Myserver/Mypath/Myfile.asp"). + The HTTP method used to open the connection, such as GET, POST, PUT, or PROPFIND. + A new HTML document. + + + + Loads an HTML document from an Internet resource. + + The requested URL, such as "http://Myserver/Mypath/Myfile.asp". + The HTTP method used to open the connection, such as GET, POST, PUT, or PROPFIND. + Proxy to use with this request + Credentials to use when authenticating + A new HTML document. + + + + Loads an HTML document from an Internet resource. + + The requested Uri, such as new Uri("http://Myserver/Mypath/Myfile.asp"). + The HTTP method used to open the connection, such as GET, POST, PUT, or PROPFIND. + Proxy to use with this request + Credentials to use when authenticating + A new HTML document. + + + + Loads an HTML document from an Internet resource and saves it to the specified XmlTextWriter. + + The requested URL, such as "http://Myserver/Mypath/Myfile.asp". + The XmlTextWriter to which you want to save to. + + + Gets or sets the web browser timeout. + + + + Gets or sets the web browser delay. + + + Loads HTML using a WebBrowser and Application.DoEvents. + Thrown when an exception error condition occurs. + The requested URL, such as "http://html-agility-pack.net/". + A new HTML document. + + + Loads HTML using a WebBrowser and Application.DoEvents. + Thrown when an exception error condition occurs. + The requested URL, such as "http://html-agility-pack.net/". + (Optional) Check if the browser script has all been run and completed. + A new HTML document. + + + Loads HTML using a WebBrowser and Application.DoEvents. + Thrown when an exception error condition occurs. + The requested URL, such as "http://html-agility-pack.net/". + (Optional) Check if the browser script has all been run and completed. + A new HTML document. + + + + Creates an instance of the given type from the specified Internet resource. + + The requested URL, such as "http://Myserver/Mypath/Myfile.asp". + The URL that specifies the XSLT stylesheet to load. + An containing the namespace-qualified arguments used as input to the transform. + The requested type. + An newly created instance. + + + + Creates an instance of the given type from the specified Internet resource. + + The requested URL, such as "http://Myserver/Mypath/Myfile.asp". + The URL that specifies the XSLT stylesheet to load. + An containing the namespace-qualified arguments used as input to the transform. + The requested type. + A file path where the temporary XML before transformation will be saved. Mostly used for debugging purposes. + An newly created instance. + + + + Loads an HTML document from an Internet resource and saves it to the specified XmlTextWriter, after an XSLT transformation. + + The requested URL, such as "http://Myserver/Mypath/Myfile.asp". + The URL that specifies the XSLT stylesheet to load. + An XsltArgumentList containing the namespace-qualified arguments used as input to the transform. + The XmlTextWriter to which you want to save. + + + + Loads an HTML document from an Internet resource and saves it to the specified XmlTextWriter, after an XSLT transformation. + + The requested URL, such as "http://Myserver/Mypath/Myfile.asp". May not be null. + The URL that specifies the XSLT stylesheet to load. + An XsltArgumentList containing the namespace-qualified arguments used as input to the transform. + The XmlTextWriter to which you want to save. + A file path where the temporary XML before transformation will be saved. Mostly used for debugging purposes. + + + + Represents an exception thrown by the HtmlWeb utility class. + + + + + Creates an instance of the HtmlWebException. + + The exception's message. + + + + Represents a document with mixed code and text. ASP, ASPX, JSP, are good example of such documents. + + + + + Gets or sets the token representing code end. + + + + + Gets or sets the token representing code start. + + + + + Gets or sets the token representing code directive. + + + + + Gets or sets the token representing response write directive. + + + + + Creates a mixed code document instance. + + + + + Gets the code represented by the mixed code document seen as a template. + + + + + Gets the list of code fragments in the document. + + + + + Gets the list of all fragments in the document. + + + + + Gets the encoding of the stream used to read the document. + + + + + Gets the list of text fragments in the document. + + + + + Create a code fragment instances. + + The newly created code fragment instance. + + + + Create a text fragment instances. + + The newly created text fragment instance. + + + + Loads a mixed code document from a stream. + + The input stream. + + + + Loads a mixed code document from a stream. + + The input stream. + Indicates whether to look for byte order marks at the beginning of the file. + + + + Loads a mixed code document from a stream. + + The input stream. + The character encoding to use. + + + + Loads a mixed code document from a stream. + + The input stream. + The character encoding to use. + Indicates whether to look for byte order marks at the beginning of the file. + + + + Loads a mixed code document from a stream. + + The input stream. + The character encoding to use. + Indicates whether to look for byte order marks at the beginning of the file. + The minimum buffer size. + + + + Loads a mixed code document from a file. + + The complete file path to be read. + + + + Loads a mixed code document from a file. + + The complete file path to be read. + Indicates whether to look for byte order marks at the beginning of the file. + + + + Loads a mixed code document from a file. + + The complete file path to be read. + The character encoding to use. + + + + Loads a mixed code document from a file. + + The complete file path to be read. + The character encoding to use. + Indicates whether to look for byte order marks at the beginning of the file. + + + + Loads a mixed code document from a file. + + The complete file path to be read. + The character encoding to use. + Indicates whether to look for byte order marks at the beginning of the file. + The minimum buffer size. + + + + Loads the mixed code document from the specified TextReader. + + The TextReader used to feed the HTML data into the document. + + + + Loads a mixed document from a text + + The text to load. + + + + Saves the mixed document to the specified stream. + + The stream to which you want to save. + + + + Saves the mixed document to the specified stream. + + The stream to which you want to save. + The character encoding to use. + + + + Saves the mixed document to the specified file. + + The location of the file where you want to save the document. + + + + Saves the mixed document to the specified file. + + The location of the file where you want to save the document. + The character encoding to use. + + + + Saves the mixed document to the specified StreamWriter. + + The StreamWriter to which you want to save. + + + + Saves the mixed document to the specified TextWriter. + + The TextWriter to which you want to save. + + + + Represents a fragment of code in a mixed code document. + + + + + Gets the fragment code text. + + + + + Represents a base class for fragments in a mixed code document. + + + + + Gets the fragement text. + + + + + Gets the type of fragment. + + + + + Gets the line number of the fragment. + + + + + Gets the line position (column) of the fragment. + + + + + Gets the fragment position in the document's stream. + + + + + Represents a list of mixed code fragments. + + + + + Gets the Document + + + + + Gets the number of fragments contained in the list. + + + + + Gets a fragment from the list using its index. + + + + + Gets an enumerator that can iterate through the fragment list. + + + + + Appends a fragment to the list of fragments. + + The fragment to append. May not be null. + + + + Gets an enumerator that can iterate through the fragment list. + + + + + Prepends a fragment to the list of fragments. + + The fragment to append. May not be null. + + + + Remove a fragment from the list of fragments. If this fragment was not in the list, an exception will be raised. + + The fragment to remove. May not be null. + + + + Remove all fragments from the list. + + + + + Remove a fragment from the list of fragments, using its index in the list. + + The index of the fragment to remove. + + + + Represents a fragment enumerator. + + + + + Gets the current element in the collection. + + + + + Gets the current element in the collection. + + + + + Advances the enumerator to the next element of the collection. + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + + + Represents the type of fragment in a mixed code document. + + + + + The fragment contains code. + + + + + The fragment contains text. + + + + + Represents a fragment of text in a mixed code document. + + + + + Gets the fragment text. + + + + + 给控件增加拖放功能的类 + + + + + 拖放实例 + + + + + 高级拖放事件 + + + + + + + + + + + + + + + + + + + + + + + + + 使管理员方式运行时支持拖放 + + + + + + 使支持拖放属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 获取WMI内容 + + + + + + + 获取WMI内容 + + + + + + + 获取内存信息 + + + + + + 获取显卡信息 + + + + + + 获取显卡信息 + + + + + + 获取显卡信息 + + + + + + 获取硬盘信息 + + + + + + 获取主板信息 + + + + + + 获取处理器信息 + + + + + + 获取主要硬件信息 + + + + + + 获取主要硬件信息 + + 是否获取XML格式 + + + + + 网络操作类 + + + + + 通过NetworkInterface读取网卡Mac + + + + + + 通过NetworkInterface读取网卡Mac + + + + + + 根据mac字符串来获取最终的mac地址,可以是各种MAC地址格式,非法的内容将返回null + + + + + + + 远程唤醒 + + + + + + + + 远程唤醒 + + + + + + + + + 消息服务器 + + + + + 消息事件 + + + + + + + 大小改变事件 + + + + + + + + 即将关闭事件 + + + + + + + 当收到消息时激发 + + + + + 消息处理类 + + + + + + + + + + + + + + + + + + + + + + + 发送消息,采用单线程发送 + + 要发送到的句柄 + 编号 + 消息内容 + + + + 发送消息,采用多线程发送 + + 要发送到的句柄 + 编号 + 消息内容 + + + + 消息类 + + + + + 是否取消 + + + + + 来源句柄 + + + + + + + + + + 消息文本 + + + + + 需要回复的内容 + + + + + 消息客户端类 + + + + + 判断当前消息主服务器是否创建成功 + + + + + 最后一次接收消息的时间,可用来判断服务端是否有响应 + + + + + 主句柄 + + + + + 当收到消息时激发 + + + + + 连接上主服务器时触发 + + + + + 收到服务端关闭通知 + + + + + 收到服务端关闭通知,即将关闭 + + + + + 服务端大小改变时激发 + + + + + 实例化客户端 + + 服务端ID + 当前客户端ID,会向服务器报告当前ID + 客户端 + + + + + + + + + 断开服务端连接 + + + + + 发送消息,采用多线程发送 + + + + + + + 向服务端发送心跳包 + + + + + 判断服务端句柄是否存在。 + + + + + + 消息服务端类 + + + + + 判断当前消息主服务器是否创建成功 + + + + + 当收到消息时激发 + + + + + 当收到自定义消息时(非系统消息)激发 + + + + + 有消息客户端发起连接请求时激发 + + + + + 有消息客户端连接成功时激发 + + + + + 有消息客户端断开连接时激发 + + + + + + + 服务端ID,需要唯一性,共客户端识别 + 服务端 + + + + 释放资源 + + + + + 判断是否包含指定客户端 + + + + + + + + + + + + 设置客户端大小 + + + + + 根据客户端ID,获取客户端对象 + + + + + + + 根据客户端句柄,获取客户端对象 + + + + + + + 关闭所有客户端 + + + + + 关闭指定客户端 + + + + + + 关闭指定客户端 + + + + + + 向所有客户端发送消息,单线程 + + + + + + + 向指定客户端发送消息 + + + + + + + + 关闭在指定时间前失去响应的子客户端 + + + + + + 客户端信息 + + + + + 客户端句柄 + + + + + 客户端ID + + + + + 客户端连接时间 + + + + + 心跳时间 + + + + + 共享内存 + + + + + 写共享内存 + + 需要映射的文件的字节数量 + 映射对象(简单类型、结构体等) + 文件映射对象的名称 + + + + + 写共享内存 + + 映射对象(简单类型、结构体等) + 文件映射对象的名称 + + + + + 写共享内存 + + 映射对象(简单类型、结构体等) + 文件映射对象的名称 + + + + + 写共享内存 + + 映射对象(简单类型、结构体等) + 文件映射对象的名称 + + + + + 写共享内存 + + 映射对象(简单类型、结构体等) + 文件映射对象的名称 + + + + + 写共享内存 + + 映射对象(简单类型、结构体等) + 文件映射对象的名称 + + + + + 写共享内存 + + 映射对象(简单类型、结构体等) + 文件映射对象的名称 + + + + + 删除内存映射 + + + + + + + 写共享内存 + + 需要映射的文件的字节数量 + 映射对象(简单类型、结构体等) + 文件映射对象的名称 + 发送消息的窗口句柄 + 发送消息 + + + + + 读共享内存 + + + + + + + + 读共享内存 + + + + + + + + 读共享内存 + + + + + + + + + 读共享内存 + + 需要映射的文件的字节数量 + 类型 + 文件映射对象的名称 + 返回读到的映射对象 + + + + 读共享内存 + + 需要映射的文件的字节数量 + 类型 + 文件映射对象的名称 + 返回读到的映射字节数据 + + + + 数据库引擎 + + + + + 数据库枚举类型 + + + + + Odbc引擎 + + + + + OleDb引擎 + + + + + Oracle引擎 + + + + + MSSQL引擎 + + + + + SQLite引擎 + + + + + MySql引擎 + + + + + 判断DataSet是否包含数据 + + + + + + + 获取首行数据 + + + + + + + 获取第一行第一列的值 + + + + + + + 将DataSet类型转换为RyQuickSQL列表类型 + + + + + + + 将DataSet类型转换为RyQuickSQL列表类型 + + + + + + + + 数据库操作接口 + + + + + 连接数据库 + + + + + + 断开数据库 + + + + + + 获取数量 + + + + + + + + 获取分页语句 + + + + + + + + + 获取分页语句 + + + + + + + + + 获取分页语句 + + + + + + + + + + 获取分页语句 + + + + + + + + + + 添加Parameter参数 + + + + + + + 清空Parameter参数 + + + + + + + 获取Parameter值 + + + + + + 根据RyQuickSQL类来获取Parameter值 + + + + + + + 开始执行事务 + + + + + 提交事务 + + + + + 判断是否包含数据 + + + + + + + + 返回-1000表示该数据库不支持本接口 + + + + + + + 读取数据 + + + + + + + 读取数据 + + + + + + + + 读取数据 + + + + + + + + 根据id号获取数据 + + + + + + + + 执行SQL语句 + + + + + + + + 执行SQL语句 + + + + + + + + 执行SQL语句 + + + 只针对IsAdd为false才生效,where 以后的sql语句 + 是新增还是更新 + + + + + 插入数据库 + + + + + + + 更新数据库 + + + where 以后的sql语句 + + + + + 执行SQL语句 + + + + + + + 根据id号删除数据 + + + + + + + + 创建数据库 + + + + + + + 释放资源 + + + + + 最后一个错误信息 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 连接数据库 + + 数据库连接字符串 + + + + + 连接数据库 + + 数据源 + 数据库名称 + 用户id + 用户密码 + + + + + + + + + 连接数据库 + + + + + + 关闭数据库 + + + + + + 运行SQL命令 + + SQL语句 + SQL命令参数 + 运行失败,则返回-1,否则返回影响的行数 + + + + 运行SQL命令 + + SQL语句 + 运行失败,则返回-1,否则返回影响的行数 + + + + 运行SQL命令,并返回结果 + + SQL语句 + SQL命令参数 + 运行失败,则返回null,否则返回以数组显示的字符串 + + + + 运行SQL命令,并返回结果 + + SQL语句 + SQL命令参数 + 数组第一个默认的值 + 运行失败,则返回null,否则返回以数组显示的字符串 + + + + 运行SQL命令,并返回结果 + + SQL语句 + 运行失败,则返回null,否则返回以数组显示的字符串 + + + + 运行SQL命令,并返回结果 + + SQL语句 + 数组第一个默认的值 + 运行失败,则返回DefFristValue,否则返回以数组显示的字符串 + + + + 清空指定表的所有数据 + + 表名 + 运行失败,则返回-1,否则返回影响的行数 + + + + 判断指定值是否存在 + + 表名 + 指定值所属字段 + 指定值 + 当前id,如果是新增记录,请填写-1 + + + + + 判断SQL语句是否有结果返回 + + SQL语句 + SQL命令参数 + 运行失败,则返回-1;存在结果,返回1;不存在结果,返回0 + + + + 判断SQL语句是否有结果返回 + + SQL语句 + 运行失败,则返回-1;存在结果,返回1;不存在结果,返回0 + + + + + + + + + + + + + + 获取最后一次错误信息 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 执行SQL语句 + + + 只针对IsAdd为false才生效,where 以后的sql语句 + 是新增还是更新 + + + + + 插入数据库 + + + + + + + 更新数据库 + + + where 以后的sql语句 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 连接数据库 + + 数据库连接字符串 + + + + + 连接数据库 + + 数据源 + 数据库名称 + 用户id + 用户密码 + + + + + + + + + 连接数据库 + + + + + + 关闭数据库 + + + + + + 运行SQL命令 + + SQL语句 + SQL命令参数 + 运行失败,则返回-1,否则返回影响的行数 + + + + 运行SQL命令 + + SQL语句 + 运行失败,则返回-1,否则返回影响的行数 + + + + 运行SQL命令,并返回结果 + + SQL语句 + SQL命令参数 + 运行失败,则返回null,否则返回以数组显示的字符串 + + + + 运行SQL命令,并返回结果 + + SQL语句 + SQL命令参数 + 数组第一个默认的值 + 运行失败,则返回null,否则返回以数组显示的字符串 + + + + 运行SQL命令,并返回结果 + + SQL语句 + 运行失败,则返回null,否则返回以数组显示的字符串 + + + + 运行SQL命令,并返回结果 + + SQL语句 + 数组第一个默认的值 + 运行失败,则返回DefFristValue,否则返回以数组显示的字符串 + + + + 清空指定表的所有数据 + + 表名 + 运行失败,则返回-1,否则返回影响的行数 + + + + 判断指定值是否存在 + + 表名 + 指定值所属字段 + 指定值 + 当前id,如果是新增记录,请填写-1 + + + + + 判断SQL语句是否有结果返回 + + SQL语句 + SQL命令参数 + 运行失败,则返回-1;存在结果,返回1;不存在结果,返回0 + + + + 判断SQL语句是否有结果返回 + + SQL语句 + 运行失败,则返回-1;存在结果,返回1;不存在结果,返回0 + + + + + + + + + + + + + + 获取最后一次错误信息 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 执行SQL语句 + + + 只针对IsAdd为false才生效,where 以后的sql语句 + 是新增还是更新 + + + + + 插入数据库 + + + + + + + 更新数据库 + + + where 以后的sql语句 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SQL字段类型 + + + + + SQL字段类型 + + + + + + + SQL字段类型 + + + + + + + + SQL字段名 + + + + + SQL字段值 + + + + + SQL字段长度 + + + + + 不是真的值,而是用于计算的值 + + + + + SQL快速操作类 + + + + + SQL快速操作类 + + + + + + 表名 + + + + + 操作字段列表 + + + + + 清理使用资源 + + + + + 清理使用资源 + + + + + 清理使用资源 + + + + + 操作参数列表 + + + + + 操作参数列表 + + + + + 添加字符串字段 + + + + + + + 添加null值字段 + + + + + + 添加日期字段 + + + + + + + 添加int字段 + + + + + + + 添加double字段 + + + + + + + 添加decimal字段 + + + + + + + 添加byte[]字段 + + + + + + + 添加bool字段 + + + + + + + 添加用于计算的值 + + + + + + + 添加Int64字段 + + + + + + + 清空内容 + + + + + 数量 + + + + + + + + + + 输出多条件搜索。 + + 字段名,多个字段请用逗号分隔。 + 多个条件之间请用空格隔开 + + + + + 获取插入SQL语句 + + + + + + 获取更新SQL语句 + + + + + + 添加参数 + + + + + + + 获取Ole参数 + + + + + + 获取SQL参数 + + + + + + + + + + + + + + + + + + + + + + + 数据库路径 + 数据库密码 + + + + + + + 数据库路径 + + + + + + + + + + + + + + + + + + + + 连接数据库 + + + + + + 设置路径和密码 + + + + + + 连接数据库 + + + + + + + + + + + + 连接或创建数据库,如果数据库不存在,就创建,否则连接 + + + + + + 连接或创建数据库,如果数据库不存在,就创建,否则连接 + + + + + + 关闭数据库 + + + + + + 运行SQL命令 + + SQL语句 + SQL命令参数 + 运行失败,则返回-1,否则返回影响的行数 + + + + 运行SQL命令 + + SQL语句 + 运行失败,则返回-1,否则返回影响的行数 + + + + 运行SQL命令,并返回结果 + + SQL语句 + SQL命令参数 + 运行失败,则返回null,否则返回以数组显示的字符串 + + + + 运行SQL命令,并返回结果 + + SQL语句 + SQL命令参数 + 数组第一个默认的值 + 运行失败,则返回null,否则返回以数组显示的字符串 + + + + 运行SQL命令,并返回结果 + + SQL语句 + 运行失败,则返回null,否则返回以数组显示的字符串 + + + + 运行SQL命令,并返回结果 + + SQL语句 + 数组第一个默认的值 + 运行失败,则返回DefFristValue,否则返回以数组显示的字符串 + + + + 清空指定表的所有数据 + + 表名 + 运行失败,则返回-1,否则返回影响的行数 + + + + 清空指定表的所有数据 + + 表名 + 运行失败,则返回-1,否则返回影响的行数 + + + + 判断指定值是否存在 + + 表名 + 指定值所属字段 + 指定值 + 当前id,如果是新增记录,请填写-1 + + + + + 判断SQL语句是否有结果返回 + + SQL语句 + SQL命令参数 + 运行失败,则返回-1;存在结果,返回1;不存在结果,返回0 + + + + 判断SQL语句是否有结果返回 + + SQL语句 + 运行失败,则返回-1;存在结果,返回1;不存在结果,返回0 + + + + 创建数据库 + + SQL语句 + + + + + 根据内置例子创建数据库 + + + + + + 保存信息,如果Name不存在,系统会自动创建 + + 返回1,表示成功,0表示失败 + + + + 获取信息 + + + + + + 获取信息 + + + + + + + + + + + 获取最后一次错误信息 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 执行SQL语句 + + + 只针对IsAdd为false才生效,where 以后的sql语句 + 是新增还是更新 + + + + + 插入数据库 + + + + + + + 更新数据库 + + + where 以后的sql语句 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 一个强类型的资源类,用于查找本地化的字符串等。 + + + + + 返回此类使用的缓存的 ResourceManager 实例。 + + + + + 重写当前线程的 CurrentUICulture 属性,对 + 使用此强类型资源类的所有资源查找执行重写。 + + + + + 查找 System.Drawing.Bitmap 类型的本地化资源。 + + + + + 查找 System.Drawing.Bitmap 类型的本地化资源。 + + + + + 查找 System.Drawing.Bitmap 类型的本地化资源。 + + + + + 查找 System.Drawing.Bitmap 类型的本地化资源。 + + + + + 查找 System.Drawing.Bitmap 类型的本地化资源。 + + + + + 查找 System.Drawing.Bitmap 类型的本地化资源。 + + + + + 查找 System.Drawing.Bitmap 类型的本地化资源。 + + + + + 查找 System.Drawing.Bitmap 类型的本地化资源。 + + + + + 查找 System.Drawing.Bitmap 类型的本地化资源。 + + + + + 查找 System.Drawing.Bitmap 类型的本地化资源。 + + + + + 查找 System.Drawing.Bitmap 类型的本地化资源。 + + + + + 查找 System.Drawing.Bitmap 类型的本地化资源。 + + + + + 查找 System.Drawing.Bitmap 类型的本地化资源。 + + + + + 查找 System.Drawing.Bitmap 类型的本地化资源。 + + + + + 查找 System.Drawing.Bitmap 类型的本地化资源。 + + + + + 一个强类型的资源类,用于查找本地化的字符串等。 + + + + + 返回此类使用的缓存的 ResourceManager 实例。 + + + + + 重写当前线程的 CurrentUICulture 属性,对 + 使用此强类型资源类的所有资源查找执行重写。 + + + + + 查找 System.Drawing.Bitmap 类型的本地化资源。 + + + + + 查找 System.Drawing.Bitmap 类型的本地化资源。 + + + + + 查找 System.Drawing.Bitmap 类型的本地化资源。 + + + + + 查找 System.Drawing.Bitmap 类型的本地化资源。 + + + + + 查找 System.Drawing.Bitmap 类型的本地化资源。 + + + + + 查找 System.Drawing.Bitmap 类型的本地化资源。 + + + + + 查找 System.Drawing.Bitmap 类型的本地化资源。 + + + + + 查找 System.Drawing.Bitmap 类型的本地化资源。 + + + + + 查找 System.Drawing.Bitmap 类型的本地化资源。 + + + + + 查找 System.Drawing.Bitmap 类型的本地化资源。 + + + + + 查找 System.Drawing.Bitmap 类型的本地化资源。 + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Byte[]. + + + + + Looks up a localized resource of type System.Byte[]. + + + + + Looks up a localized resource of type System.Byte[]. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized resource of type System.Byte[]. + + + + + Looks up a localized resource of type System.Byte[]. + + + + + Looks up a localized resource of type System.Byte[]. + + + + + Http连接操作帮助类 + + + + + + + + + + + + 根据相传入的数据,得到相应页面数据 + + 参数类对象 + 返回HttpResult类型 + + + + 获取数据的并解析的方法 + + + + + + + 设置编码 + + HttpItem + HttpResult + byte[] + + + + 提取网页Byte + + + + + + 为请求准备参数 + + 参数列表 + + + + 设置证书 + + + + + + 设置多个证书 + + + + + + 设置Cookie + + Http参数 + + + + 设置Post数据 + + Http参数 + + + + 设置代理 + + 参数对象 + + + + 回调验证证书问题 + + 流对象 + 证书 + X509Chain + SslPolicyErrors + bool + + + + 通过设置这个属性,可以在发出连接的时候绑定客户端发出连接所使用的IP地址。 + + + + + + + + + Http请求参考类 + + + + + 请求URL必须填写 + + + + + 请求方式默认为GET方式,当为POST方式时必须设置Postdata的值 + + + + + 默认请求超时时间 + + + + + 默认写入Post数据超时间 + + + + + 设置Host的标头信息 + + + + + 获取或设置一个值,该值指示是否与 Internet 资源建立持久性连接默认为true。 + + + + + 请求标头值 默认为text/html, application/xhtml+xml, */* + + + + + 请求返回类型默认 text/html + + + + + 客户端访问信息默认Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) + + + + + 返回数据编码默认为NUll,可以自动识别,一般为utf-8,gbk,gb2312 + + + + + Post的数据类型 + + + + + Post请求时要发送的字符串Post数据 + + + + + Post请求时要发送的Byte类型的Post数据 + + + + + Cookie对象集合 + + + + + 请求时的Cookie + + + + + 来源地址,上次访问地址 + + + + + 证书绝对路径 + + + + + 设置代理对象,不想使用IE默认配置就设置为Null,而且不要设置ProxyIp + + + + + 是否设置为全文小写,默认为不转化 + + + + + 获取或设置要在 HTTP 请求中使用的 Date HTTP 标头值。默认不填写 + + + + + 支持跳转页面,查询结果将是跳转后的页面,默认是不跳转 + + + + + 最大连接数 + + + + + 代理Proxy 服务器用户名 + + + + + 代理 服务器密码 + + + + + 代理 服务IP,如果要使用IE代理就设置为ieproxy + + + + + 设置返回类型String和Byte + + + + + header对象 + + + + + 获取或设置用于请求的 HTTP 版本。返回结果:用于请求的 HTTP 版本。默认为 System.Net.HttpVersion.Version11。 + + + + + 获取或设置一个 System.Boolean 值,该值确定是否使用 100-Continue 行为。如果 POST 请求需要 100-Continue 响应,则为 true;否则为 false。默认值为 true。 + + + + + 设置509证书集合 + + + + + 设置或获取Post参数编码,默认的为Default编码 + + + + + Cookie返回类型,默认的是只返回字符串类型 + + + + + 获取或设置请求的身份验证信息。 + + + + + 设置请求将跟随的重定向的最大数目 + + + + + 获取和设置IfModifiedSince,默认为当前日期和时间 + + + + + 设置本地的出口ip和端口 + ] + + item.IPEndPoint = new IPEndPoint(IPAddress.Parse("192.168.1.1"),80); + + + + + 是否重置request,response的值,默认不重置,当设置为True时request,response将被设置为Null + + + + + Http返回参数类 + + + + + Http请求返回的Cookie + + + + + Cookie对象集合 + + + + + 返回的String类型数据 只有ResultType.String时才返回数据,其它情况为空 + + + + + 返回的Byte数组 只有ResultType.Byte时才返回数据,其它情况为空 + + + + + header对象 + + + + + 返回状态说明 + + + + + 返回状态码,默认为OK + + + + + 最后访问的URl + + + + + 获取重定向的URl + + + + + 返回类型 + + + + + 表示只返回字符串 只有Html有数据 + + + + + 表示返回字符串和字节流 ResultByte和Html都有数据返回 + + + + + Post的数据格式默认为string + + + + + 字符串类型,这时编码Encoding可不设置 + + + + + Byte类型,需要设置PostdataByte参数的值编码Encoding可设置为空 + + + + + 传文件,Postdata必须设置为文件的绝对路径,必须设置Encoding的值 + + + + + Cookie返回类型 + + + + + 只返回字符串类型的Cookie + + + + + CookieCollection格式的Cookie集合同时也返回String类型的cookie + + + + + Http服务器类 + + + + + + + + + + + + 当收到Get事件时激发 + + + + + 当收到Post事件时激发 + + + + + 监听的主机,默认是localhost + + + + + 最后一次错误信息 + + + + + 在此端口建立Http服务类 + + 端口号 + + + + + + + + + + 开始服务 + + + + + 退出服务 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 超时时间 + + + + 以post方式获取网页源码 + + + + + + + + + 以post方式提交json内容 + + + + + + + + + 以post方式提交json内容 + + + + + + + + 以post方式获取网页源码 + + + + + + + + + + 以post方式获取网页源码 + + + + + + + + 获取网址对应的文件大小 + + + + + + + 获取网址对应的文件大小 + + + + + + + + 代理 + + + + + + + + + + 是否自动跳转 + + + + + 获取网页源码 + + + + + + + + 获取网页源码 + + + + + + + + + 获取网页源码 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 将相对网址转换成绝对网址 + + 相对网址 + 当前页面地址 + 转换后的绝对网址 + + + + WebDav接口 + + + + + WebDav初始化 + + + + + + + + 删除文件 + + 相对路径,不包括域名 + + + + + 下载文件 + + + + + + + + 下载文件 + + + + + + + + + 上传文件 + + + + + + + + 上传文件 + + + + + + + + + 新建文件夹 + + + + + + + 新建文件夹 + + 文件夹路径 + + + + + + 新建文件夹 + + + + + + + + 将文件或目录列出来 + + + + + + + + 定义每个文件或目录的属性 + + + + + 文件名 + + + + + 是否是文件夹 + + + + + 网址 + + + + + 最后修改时间 + + + + + + + + + + + + + + + url解密 + + + + + + + + url解密,按UTF8方式解密 + + + + + + + Url加密 + + + + + + + + Url加密,按UTF8方式加密 + + + + + + + 解密 + + + + + + + 加密 + + + + + + + + + + + + + + + + + + + + + + + + + url加密,Unicode + + + + + + + + + + + + + + + + + + + + + + Html解码,将html里未转义成功的重新转义。 + + + + + + + 将url里的字段分解成表单字典 + + + + + + + + + 根据表单字段名获取值 + + + + + + + + + AES加密解密类 + + + + + AES加密算法 + + 明文字符串 + 密钥 + 返回加密后的密文字节数组 + + + + AES解密 + + 密文字节数组 + 密钥 + 返回解密后的字符串 + + + + 加密 + + + + + + + + 解码 + + + + + + + + 转换密钥到合法密钥 + + + + + + + Base64编码类 + + + + + 编码 + + + + + + + 把字符串编码成Base64字符串 + + + + + + + + 解码 + + + + + + + MD5和SHA1操作类 + + + + + 计算文件MD5。 + 通过MD5CryptoServiceProvider类中的ComputeHash方法直接传入一个FileStream类实现计算MD5 + 操作简单,代码少,调用即可 + + 文件地址 + MD5Hash + + + + 计算文件MD5。 + 通过HashAlgorithm的TransformBlock方法对流进行叠加运算获得MD5 + 实现稍微复杂,但可使用与传输文件或接收文件时同步计算MD5值 + 可自定义缓冲区大小,计算速度较快 + + 文件地址 + MD5Hash + + + + 获取MD5 + + + + + + + 获取MD5 + + + + + + + 获取SHA1 + + + + + + + 获取SHA1 + + + + + + + 获取HmacSHA1 + + + + + + + + 获取SHA256 + + + + + + + 获取HmacSHA256 + + + + + + + + 获取SHA224 + + + + + + + 获取SHA512 + + + + + + + 获取HmacSHA512 + + + + + + + 使用using代替lock操作的对象,可指定写入和读取锁定模式 + + + + 利用IDisposable的using语法糖方便的释放锁定操作 + 内部类 + + + + 读写锁对象 + + + + 是否为写入模式 + + + + 利用IDisposable的using语法糖方便的释放锁定操作 + 构造函数 + + 读写锁 + 写入模式为true,读取模式为false + + + 释放对象时退出指定锁定模式 + + + + 空的可释放对象,免去了调用时需要判断是否为null的问题 + 内部类 + + + + 空的可释放对象 + + + + 空的释放方法 + + + + 读写锁 + + + + 保存数据 + + + + 使用using代替lock操作的对象,可指定写入和读取锁定模式 + 构造函数 + + + + 使用using代替lock操作的对象,可指定写入和读取锁定模式 + 构造函数 + 为Data属性设置初始值 + + + + 获取或设置当前对象中保存数据的值 + + 获取数据时未进入读取或写入锁定模式 + 设置数据时未进入写入锁定模式 + + + 是否启用,当该值为false时,Read()和Write()方法将返回 Disposable.Empty + + + + 进入读取锁定模式,该模式下允许多个读操作同时进行 + 退出读锁请将返回对象释放,建议使用using语块 + Enabled为false时,返回Disposable.Empty; + 在读取或写入锁定模式下重复执行,返回Disposable.Empty; + + + + 进入写入锁定模式,该模式下只允许同时执行一个写操作 + 退出写锁请将返回对象释放,建议使用using语块 + Enabled为false时,返回Disposable.Empty; + 在写入锁定模式下重复执行,返回Disposable.Empty; + + 读取模式下不能进入写入锁定状态 + + + + 中国农历类,最大支持公元0-9999年 + + 日期:2019-02-09 + 作者:http://www.cnblogs.com/zjfree/ + + + + 日历类型 + + + + + 无效 + + + + + Julian 日历 + + + + + Gregorian 日历 + + + + + 有效 + + + + + 公历节日 + + + + + 农历节日 + + + + + 某个月第n个星期几 + + + + + 获取农历 + + + + + + + 获取农历 + + + + + + + + + 获得某农历年的闰月,返回 1~12 对应一月到十二月,返回 0 表示无闰月 + + + + + + + 农历搜索方向 + + + + + 无效 + + + + + 向上 + + + + + 向下 + + + + + {* 日月食类型, 无, 日食, 月全食, 月偏食 } + + + + + 无 + + + + + 日食 + + + + + 月全食 + + + + + 月偏食 + + + + + {* 月相, 无, 朔, 望} + + + + + 无 + + + + + 朔 + + + + + 望 + + + + + 获得某公历年月日的农历日数和该日月相以及日月食类型和时刻 + + + + + + + + + + + + 获得某公历年月日的农历月数 + + + + + + + + + 获取阳历日期对应的农历日期 + + + + + + + + + + + + + 获得某公历年月日的农历月日和是否闰月的信息 + + + + + + + + + + + + 获得等效标准日数对应的某公历日,倒推而来 + + + + + + + + + + 比较两个农历日期(包括闰月信息),1 大于2返回1、1等于2返回0、1小于2返回-1 + + + + + + + + + + + + + + 获得某农历年月日(加是否闰月)的公历年月日 + 该函数采用反向二分法查找 + + + + + + + + + + + + + 获取农历某一个月的总天数 + + + + + + + + + 获取农历年份,范围约1901-2101年 + + + + + + + 获取农历年份,范围约0-9999年 + + + + + + + + + 获取农历月份,范围约1901-2101年 + + + + + + + 获取农历月份,范围约0-9999年 + + + + + + + + + 获取中文表示的农历月份 + + + + + + + 获取农历日,范围约1901-2101年 + + + + + + + 获取农历日,范围约0-9999年 + + + + + + + + + 获取农历日,范围约0-9999年 + + + + + + + 获取节气,范围约1901-2101年 + + + + + + + 获取节气,范围约0-9999年 + + + + + + + + + 返回y年第n个节气(如小寒为1)的日差天数值(pd取值真假,分别表示平气和定气) + + + + pd取值真假,分别表示平气和定气 + + + + + 获取等效标准日数 + + + + + + + + + 取本月天数,不考虑 1582 年 10 月的特殊情况 + + + + + + + + 获取节气,范围约1901-2101年 + + + + + + + 获取节气,范围约0-9999年 + + + + + + + + + 获取节气 + + + + + + + + + + + + 获取公历节日 + + + + + + + 获取公历节日 + + + + + + + + + 获取指定月份的第n个星期几的节日 + + + + + + + 返回星座,范围约1901-2101年 + + + + + 返回星座,范围约0-9999年 + + + + + 获取农历节日 + + + + + + + + + 获取农历节日 + + + + + + + 判断y年m月(1,2,..,12,下同)d日是Gregorian历还是Julian历(opt=1,2,3分别表示标准日历,Gregorge历和Julian历),是则返回1,是Julian历则返回0,若是Gregorge历所删去的那10天则返回-1 + + + + + 返回阳历y年m月d日的日差天数(在y年年内所走过的天数,如2000年3月1日为61) + + + + + 返回阳历y年日差天数为x时所对应的月日数(如y=2000,x=274时,返回1001(表示10月1日,即返回100*m+d)) + + + + + 获取指定日期的节气。 + + 要获取的年 + 要获取的月 + + + 立春:立是开始的意思,春是蠢动,表示万物开始有生气,这一天春天开始。 + 雨水:降雨开始,雨水将多。 + 惊蛰:春雷响动,惊动蛰伏地下冬眠的生物,它们将开始出土活动。 + 春分:这是春季九十天的中分点,这一天昼夜相等,所以古代曾称春分秋分为昼夜分。 + 清明:明洁晴朗,气候温暖,草木开始萌发繁茂。 + 谷雨:雨生百谷的意思。雨水增多,适时的降雨对谷物生长很为有利。 + 立夏:夏天开始,万物渐将随温暖的气候而生长。 + 小满:满指籽粒饱满,麦类等夏热作物这时开始结籽灌浆,即将饱满。 + 芒种:有芒作物开始成熟,此时也是秋季作物播种的最繁忙时节。 + 夏至:白天最长,黑夜最短,这一天中午太阳位置最高,日影短至终极,古代又称这一天为日北至或长日至。 + 小暑:暑是炎热,此时还未到达最热。 + 大暑:炎热的程度到达高峰。 + 立秋:秋天开始,植物快成熟了。 + 处暑:处是住的意思,表示暑气到此为止。 + 白露:地面水气凝结为露,色白,是天气开始转凉了。 + 秋分:秋季九十天的中间,这一天昼夜相等,同春分一样,太阳从正东升起正西落下。 + 寒露:水露先白而后寒,是气候将逐渐转冷的意思。 + 霜降:水气开始凝结成霜。 + 立冬:冬是终了,作物收割后要收藏起来的意思,这一天起冬天开始。 + 小雪:开始降雪,但还不多。 + 大雪:雪量由小增大。 + 冬至:这一天中午太阳在天空中位置最低,日影最长,白天最短, 黑夜最长,古代又称短日至或日南至。 + 小寒:冷气积久而为寒,此时尚未冷到顶点。 + 大寒:天候达到最寒冷的程度 + + + + + 获取年柱。 + + + + + 获得月柱 + + + + + + + 获取日柱。 + + + + + 返回甲子数x对应的天干数(如33为3) + + + + + 返回甲子数x对应的地支数(如33为9) + + + + + 获取日的天干地支 + + + + + + + 返回甲子数x对应的天干字符串 + + + + + 返回甲子数x对应的地支字符串 + + + + + 返回甲子数x对应的干支字符串 + + + + + + + 获取三伏开始时间 + + + 0表示1伏,1表示2伏,2表示3伏 + + + + + 节气 + + + + + 节气的时间。 + + + + + 节气名。 + + + + + 热键转换类 + + + + + 功能键。 + + + + + 修改键。 + + + + + 转换功能键到谷歌浏览器专用 + + + + + 将chrome功能键转换为普通功能键 + + + + + + + 按键值。 + + + + + 初始化类 的新实例。 + + The modifiers. + The key code. + + + + + + + + + + + + + + + + + 初始化类 的新实例。 + + + + + 加载热键 + + + + + + + 加载热键 + + + + + + 加载热键 + + + + + + 判断是否是热键 + + + + + 获取当前热键 + + + + + 已重载,返回“Ctrl+Alt+A”格式的字符串。 + + 类似“Ctrl+Alt+A”格式的字符串 + + + + 返回“Ctrl+Alt+A”格式的字符串。 + + 类似“Ctrl+Alt+A”格式的字符串 + + + + 功能键 + + + + + 无 + + + + + Alt键 + + + + + Ctrl键 + + + + + Alt+Ctrl键 + + + + + Shift键 + + + + + Shift+Alt键 + + + + + Shift+Ctrl键 + + + + + Alt+Shift+Ctrl键 + + + + + Win键 + + + + + 热键类 + + + + + 热键类 + + + + + + 热键注销 + + + + + 热键是否有效 + + + + + 释放热键 + + + + + 获取热键Tag + + + + + + + 获取热键id + + + + + + + 获取热键id + + + + + + + + 判断热键id是否存在 + + + + + + + 判断热键Tag是否存在 + + + + + + + 判断热键是否存在 + + + + + + + + 注册热键 + + + + + + + + + 注册热键 + + + + + + + + + 注册热键 + + + + + + + + + + 获取热键数量 + + + + + 删除热键 + + + + + + + 删除所有热键 + + + + + 删除所有热键 + + + + + 热键事件 + + + + + + 当使用热键时发生的事件 + + + + + 热键消息过滤 + + + + + + + 热键类型 + + + + + 热键id + + + + + 热键Tag + + + + + 功能键 + + + + + 普通键 + + + + + 热键类型 + + + + + + + + 热键类型 + + + + + + + + + 热键类型 + + + + + Win32 API + + + + + + + + + + WM_COPYDATA消息的主要目的是允许在进程间传递只读数据。 + + + + + 系统通道ID + + + + + 用户通道ID + + + + + 获取消息 + + + + + + + + 发送消息 + + + + + + + + + + 设置父窗口 + + + + + + + + + + + + + + 删除一个逻辑笔、画笔、字体、位图、区域或者调色板,释放所有与该对象有关的系统资源,在对象被删除之后,指定的句柄也就失效了。 + + + + + + + 选择一对象到指定的设备上下文环境中,该新对象替换先前的相同类型的对象。 + + + + + + + + 创建一个与指定设备兼容的内存设备上下文环境(DC)。 + + + + + + + 为一个设备创建设备上下文环境。 + + + + + + + + + + 删除指定的设备上下文环境(Dc)。 + + + + + + + + + + + + 结束进程 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + / + + + + + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 模拟鼠标点击 + + + + + + + + + + + 模拟按键 + + + + + + + + + 返回hWnd参数所指定的窗口的设备环境。 + + + + + + + 移动窗口 + + + + + + + + + + + + 将消息信息传送给指定的窗口过程的函数。使用函数CallWindowsProc可进行窗口子分类。 + 通常来说,同一类的所有窗口共享一个窗口过程。子类是一个窗口或者相同类的一套窗口, + 在其消息被传送到该类的窗口过程之前,这些消息是由另一个窗口过程进行解释和处理的。 + + + + + + + + + + + 用来改变指定窗口的属性.函数也将指定的一个32位值设置在窗口的额外存储空间的指定偏移位置。 + + + + + + + + + 用来改变指定窗口的属性.函数也将指定的一个32位值设置在窗口的额外存储空间的指定偏移位置。 + + + + + + + + + 设置弹出式窗口,层叠窗口或子窗口的父窗口 + + + + + + + + 获得一个指定子窗口的父窗口句柄 + + Handle to the window whose parent window handle is to be retrieved. + If the window is a child window, the return value is a handle to the parent window. If the window is a top-level window, the return value is a handle to the owner window. If the window is a top-level unowned window or if the function fails, the return value is NULL. + + + + 获取系统菜单的句柄 + + 拥有窗口菜单拷贝的窗口的句柄 + 标志位,指定将执行的操作 + + + + + 获取系统菜单的句柄 + + 拥有窗口菜单拷贝的窗口的句柄 + 标志位,指定将执行的操作。 + 如果此参数为FALSE,GetSystemMenu返回当前使用窗口菜单的拷贝的句柄。该拷贝初始时与窗口菜单相同,但可以被修改。 + 如果此参数为TRUE,GetSystemMenu重置窗口菜单到缺省状态。如果存在先前的窗口菜单,将被销毁。 + + 如果参数bRevert为FALSE,返回值是窗口菜单的拷贝的句柄:如果参数bRevert为TRUE,返回值是NULL。 + + + + 从指定菜单删除一个菜单项或分离一个子菜单。 + 备注:只要一个菜单被修改,无论它是否在显示窗口里,应用程序都必须调用函数DrawMenuBar。 + + 将被修改的菜单的句柄。 + 指定将被删除的菜单项,其含义由参数wFlags决定。 + + 如果函数调用成功,返回非零值;如果函数调用失败,返回值是零。若想获得更多的错误信息,请调用GetLastError函数。 + + + + 设置前台窗口 + + + + + + + 获取当前前台窗口句柄 + + + + + + 获得当前活动窗体 + + 活动窗口的句柄。如没有窗口处于活动状态或处于活动状态的窗口非当前线程创建,则返回零。 + + + + 设置活动窗体 + + + + + + + 获取类名 + + + + + + + + + 获取当前线程对应的进程ID + + + + + + + + 判断指定句柄是否是一个窗口 + + + + + + + 获取窗口标题 + + + + + + + + + 发送消息 + + + + + + + + + + 发送消息 + + + + + + + + + + 发送消息 + + + + + + + + + + 发送消息 + + + + + + + + + + 发送消息 + + + + + + + + + 从文件中载入指针 + + + + + + + 判断窗口是否可见 + + + + + + + 查找窗口 + + + + + + + + The FindWindowEx function retrieves a handle to a window whose class name and window name match the specified strings. The function searches child windows, beginning with the one following the specified child window. + + Handle to the parent window whose child windows are to be searched. + Handle to a child window. + Specifies class name. + Pointer to a null-terminated string that specifies the window name (the window's title). + If the function succeeds, the return value is a handle to the window that has the specified class and window names.If the function fails, the return value is NULL. + + + + The InvalidateRect function adds a rectangle to the specified window's update region. + + Handle to window. + Rectangle coordinates. + Erase state. + If the function succeeds, the return value is true.If the function fails, the return value is false. + + + + The ValidateRect function validates the client area within a rectangle by removing the rectangle from the update region of the specified window. + + Handle to window. + Validation rectangle coordinates. + If the function succeeds, the return value is true.If the function fails, the return value is false. + + + + 获取指定窗口的有关信息,也可用于获取窗口内存中指定偏移的32位度整型值。 + + + + + + + + 检索一指定窗口的客户区域或整个屏幕的显示设备上下文环境的句柄,以后可以在GDI函数中使用该句柄来在设备上下文环境中绘图。 + + + + + + + 释放设备上下文环境(DC)供其他应用程序使用。函数的效果与设备上下文环境类型有关。它只释放公用的和设备上下文环境,对于类或私有的则无效。 + + + + + + + + 获取桌面句柄 + + + + + + 获取窗口客户区的大小。注意一下:窗口的客户区为窗口中除标题栏、菜单栏之外的地方。 + + + + + + + + 返回指定窗口的边框矩形的尺寸。该尺寸以相对于屏幕坐标左上角的屏幕坐标给出。 + + + + + + + + 更新一个分层窗口的位置,大小,形状,内容和半透明度 + + + + + + + + + + + + + + + 改变一个子窗口,弹出式窗口或顶层窗口的尺寸,位置和Z序。 + 子窗口,弹出式窗口,及顶层窗口根据它们在屏幕上出现的顺序排序、顶层窗口设置的级别最高,并且被设置为Z序的第一个窗口。 + + A handle to the window. + A handle to the window to precede the positioned window in the Z order. This parameter must be a window handle or one of the following values. + Specifies the new position of the left side of the window, in client coordinates. + Specifies the new position of the top of the window, in client coordinates. + Specifies the new width of the window, in pixels. + Specifies the new height of the window, in pixels. + Specifies the window sizing and positioning flags. This parameter can be a combination of the following values. + If the function succeeds, the return value is nonzero, if the function fails, the return value is zero. + + + + 改变一个子窗口,弹出式窗口或顶层窗口的尺寸,位置和Z序。 + 子窗口,弹出式窗口,及顶层窗口根据它们在屏幕上出现的顺序排序、顶层窗口设置的级别最高,并且被设置为Z序的第一个窗口。 + + A handle to the window. + A handle to the window to precede the positioned window in the Z order. This parameter must be a window handle or one of the following values. + Specifies the new position of the left side of the window, in client coordinates. + Specifies the new position of the top of the window, in client coordinates. + Specifies the new width of the window, in pixels. + Specifies the new height of the window, in pixels. + Specifies the window sizing and positioning flags. This parameter can be a combination of the following values. + If the function succeeds, the return value is nonzero, if the function fails, the return value is zero. + + + + 改变一个子窗口,弹出式窗口或顶层窗口的尺寸,位置和Z序。 + 子窗口,弹出式窗口,及顶层窗口根据它们在屏幕上出现的顺序排序、顶层窗口设置的级别最高,并且被设置为Z序的第一个窗口。 + + + + + + + + + + + + + 设置指针位置 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 获取或设置是否捕获鼠标 + + + + + 获取或设置是否显示图像信息 + + + + + 获取或设置操作框点的颜色 + + + + + 获取或设置操作框边框颜色 + + + + + 获取或设置放大图形的原始尺寸 + + + + + 获取或设置放大图像的倍数 + + + + + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + + + + + + + + + + + + + + + + + + 获取或设置用于被操作的图像 + + + + + 获取或设置操作框点的颜色 + + + + + 获取或设置操作框线条的颜色 + + + + + 获取当前选中的区域 + + + + + 获取或设置放大图像的原图大小尺寸 + + + + + 获取或设置图像放大的倍数 + + + + + 获取或设置是否绘制操作框点 + + + + + 获取或设置是否限制鼠标操作区域 + + + + + 获取或设置是否绘制信息展示 + + + + + 获取或设置是否根据图像大小自动调整控件尺寸 + + + + + 获取当前是否绘制的有区域 + + + + + 获取当前是否开始绘制 + + + + + 获取当前操作框是否正在移动 + + + + + 获取或设置操作框是否锁定 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 响应四个按键实现精确移动 + + + + + + + + + + + + 绘制操作框 + + + + + + 绘制图像放大信息 + + + + + + 清空所有操作 + + + + + 手动设置一个块选中区域 + + 要选中区域 + + + + 手动设置一个块选中区域 + + 要选中区域的坐标 + 要选中区域的大小 + + + + 手动设置一个块选中区域 + + 要选中区域的x坐标 + 要选中区域的y坐标 + 要选中区域的宽度 + 要选中区域的高度 + + + + 手动设置信息显示的位置 + + 要显示的位置 + + + + 手动设置信息显示的位置 + + 要显示位置的x坐标 + 要显示位置的y坐标 + + + + 获取操作框内的图像 + + 结果图像 + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 鼠标结构信息 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 设置Hook + + + + + + 卸载Hook + + + + + + 鼠标状态枚举值 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 事件参数 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 升级地址 + + + + + + + + + + 隔多久后再次检查更新 + + + + + 本地保存的配置信息 + + + + + 当前安装的软件版本 + + + + + 当前安装的软件修正版本 + + + + + 当前安装的数据库版本 + + + + + + + + + + + + + + + + + + + + 获取当前更新的类型 + + + + + 每隔n小时检测一次更新 + + + + + 读取版本信息完成后激发 + + + + + 没有版本更新时激发 + + + + + 发现新版本时激发 + + + + + 发生错误后激发 + + + + + 更新进度变化后激发 + + + + + 开始检测新版本 + + + + + + + + + + 初始化升级函数 + + 为null,则表示事件运行在多线程模式下,否则,事件是在窗体所在线程下 + + + + + + + + + + + + + + 获取版本信息 + + + + + 开始下载 + + + + + 开始下载 + + + + + 下载,不使用多线程 + + + + + 结束下载 + + + + + + + + + + + + + + + 设置升级 + + + + + 是否是在线更新 + + + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + + + + + + + + + 提示文本 + + + + + 更新日期 + + + + + 更新版本 + + + + + 更新描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 更新类型,soft或者data + + + + + 更新描述Url + + + + + 更新描述 + + + + + 版本 + + + + + 更新日期 + + + + + 更新地址 + + + + + 在下载升级包前首先要下载的内容 + + + + + 升级程序要使用的设置xml + + + + + + + + + + 错误字符串 + + + + + 错误id + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 当前登陆用户 + + + + + + + + + + 没有版本更新时激发 + + + + + + + + + + + 取消更新。 + + + + + + + + + + Martin Lottering : 2007-10-27 + -------------------------------- + This is a usefull control in Filters. Allows you to save space and can replace a Grouped Box of CheckBoxes. + Currently used on the TasksFilter for TaskStatusses, which means the user can select which Statusses to include + in the "Search". + This control does not implement a CheckBoxListBox, instead it adds a wrapper for the normal ComboBox and Items. + See the CheckBoxItems property. + ---------------- + ALSO IMPORTANT: In Data Binding when setting the DataSource. The ValueMember must be a bool type property, because it will + be binded to the Checked property of the displayed CheckBox. Also see the DisplayMemberSingleItem for more information. + ---------------- + Extends the CodeProject PopupComboBox "Simple pop-up control" "http://www.codeproject.com/cs/miscctrl/simplepopup.asp" + by Lukasz Swiatkowski. + + + + + + + + + + The checkbox list control. The public CheckBoxItems property provides a direct reference to its Items. + + + + + In DataBinding operations, this property will be used as the DisplayMember in the CheckBoxComboBoxListBox. + The normal/existing "DisplayMember" property is used by the TextBox of the ComboBox to display + a concatenated Text of the items selected. This concatenation and its formatting however is controlled + by the Binded object, since it owns that property. + + + + + Builds a CSV string of the items selected. + + + + + A direct reference to the Items of CheckBoxComboBoxListControl. + You can use it to Get or Set the Checked status of items manually if you want. + But do not manipulate the List itself directly, e.g. Adding and Removing, + since the list is synchronised when shown with the ComboBox.Items. So for changing + the list contents, use Items instead. + + + + + The DataSource of the combobox. Refreshes the CheckBox wrappers when this is set. + + + + + The ValueMember of the combobox. Refreshes the CheckBox wrappers when this is set. + + + + + In DataBinding operations, this property will be used as the DisplayMember in the CheckBoxComboBoxListBox. + The normal/existing "DisplayMember" property is used by the TextBox of the ComboBox to display + a concatenated Text of the items selected. This concatenation however is controlled by the Binded + object, since it owns that property. + + + + + Made this property Browsable again, since the Base Popup hides it. This class uses it again. + Gets an object representing the collection of the items contained in this + System.Windows.Forms.ComboBox. + + A System.Windows.Forms.ComboBox.ObjectCollection representing the items in + the System.Windows.Forms.ComboBox. + + + + + + + + + + + + + + + + + Will add an invisible item when the style is DropDownList, + to help maintain the correct text in main TextBox. + + + + + + + + + + + + A function to clear/reset the list. + (Ubiklou : http://www.codeproject.com/KB/combobox/extending_combobox.aspx?msg=2526813#xx2526813xx) + + + + + Uncheck all items. + + + + + The properties that will be assigned to the checkboxes as default values. + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + A container control for the ListControl to ensure the ScrollBar on the ListControl does not + Paint over the Size grip. Setting the Padding or Margin on the Popup or host control does + not work as I expected. + + + + + + + + + + Prescribed by the Popup class to ensure Resize operations work correctly. + + + + + + This ListControl that pops up to the User. It contains the CheckBoxComboBoxItems. + The items are docked DockStyle.Top in this control. + + + + + + + + + + + Simply a reference to the CheckBoxComboBox. + + + + + A Typed list of ComboBoxCheckBoxItems. + + + + + + + + + + Prescribed by the Popup control to enable Resize operations. + + + + + + + + + + + + Maintains the controls displayed in the list by keeping them in sync with the actual + items in the combobox. (e.g. removing and adding as well as ordering) + + + + + The CheckBox items displayed in the Popup of the ComboBox. + + + + + + + A reference to the CheckBoxComboBox. + A reference to the item in the ComboBox.Items that this object is extending. + + + + A reference to the CheckBoxComboBox. + + + + + A reference to the Item in ComboBox.Items that this object is extending. + + + + + A reference to the Item in ComboBox.Items that this object is extending. + + + + + When using Data Binding operations via the DataSource property of the ComboBox. This + adds the required Bindings for the CheckBoxes. + + + + + + + + + + + Added this handler because the control doesn't seem + to initialize correctly until shown for the first + time, which also means the summary text value + of the combo is out of sync initially. + + + + + A Typed List of the CheckBox items. + Simply a wrapper for the CheckBoxComboBox.Items. A list of CheckBoxComboBoxItem objects. + This List is automatically synchronised with the Items of the ComboBox and extended to + handle the additional boolean value. That said, do not Add or Remove using this List, + it will be lost or regenerated from the ComboBox.Items. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns the item with the specified displayName or Text. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Called when any property changes. + + + + + + + + + + CodeProject.com "Simple pop-up control" "http://www.codeproject.com/cs/miscctrl/simplepopup.asp". + + + + + CodeProject.com "Simple pop-up control" "http://www.codeproject.com/cs/miscctrl/simplepopup.asp". + + + + + CodeProject.com Simple pop-up control http://www.codeproject.com/cs/miscctrl/simplepopup.asp. + Represents a pop-up window. + + + + + Gets the content of the pop-up. + + + + + Gets a value indicating whether the PopupControl.Popup uses the fade effect. + + true if pop-up uses the fade effect; otherwise, false. + To use the fade effect, the FocusOnOpen property also has to be set to true. + + + + Gets or sets a value indicating whether to focus the content after the pop-up has been opened. + + true if the content should be focused after the pop-up has been opened; otherwise, false. + If the FocusOnOpen property is set to false, then pop-up cannot use the fade effect. + + + + Gets or sets a value indicating whether presing the alt key should close the pop-up. + + true if presing the alt key does not close the pop-up; otherwise, false. + + + + Gets or sets a value indicating whether this PopupControl.Popup is resizable. + + true if resizable; otherwise, false. + + + + Gets or sets the size that is the lower limit that can specify. + + An ordered pair of type representing the width and height of a rectangle. + + + + Gets or sets the size that is the upper limit that can specify. + + An ordered pair of type representing the width and height of a rectangle. + + + + Gets parameters of a new window. + + An object of type used when creating a new window. + + + + Initializes a new instance of the PopupControl.Popup class. + + The content of the pop-up. + + Pop-up will be disposed immediately after disposion of the content control. + + is null. + + + + Processes a dialog box key. + + One of the values that represents the key to process. + + true if the key was processed by the control; otherwise, false. + + + + + Updates the pop-up region. + + + + + Shows pop-up window below the specified control. + + The control below which the pop-up will be shown. + + When there is no space below the specified control, the pop-up control is shown above it. + + is null. + + + + Shows pop-up window below the specified area of specified control. + + The control used to compute screen location of specified area. + The area of control below which the pop-up will be shown. + + When there is no space below specified area, the pop-up control is shown above it. + + is null. + + + + Adjusts the size of the owner to accommodate the if the owner is currently displayed, or clears and resets active child controls of the if the is not currently displayed. + + true if the owner is currently displayed; otherwise, false. + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + A that contains the event data. + + + + Raises the event. + + An that contains the event data. + + + + + + + + + + + + + + + + + + + + + Processes Windows messages. + + The Windows to process. + + + + Processes the resizing messages. + + The message. + true, if the WndProc method from the base class shouldn't be invoked. + + + + Paints the size grip. + + The instance containing the event data. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + CodeProject.com "Simple pop-up control" "http://www.codeproject.com/cs/miscctrl/simplepopup.asp". + Represents a Windows combo box control with a custom popup control attached. + + + + + Initializes a new instance of the PopupControl.PopupComboBox class. + + + + + The pop-up wrapper for the dropDownControl. + Made PROTECTED instead of PRIVATE so descendent classes can set its Resizable property. + Note however the pop-up properties must be set after the dropDownControl is assigned, since this + popup wrapper is recreated when the dropDownControl is assigned. + + + + + Gets or sets the drop down control. + + The drop down control. + + + + Shows the drop down. + + + + + Hides the drop down. + + + + + Processes Windows messages. + + The Windows to process. + + + This property is not relevant for this class. + This property is not relevant for this class. + + + This property is not relevant for this class. + This property is not relevant for this class. + + + This property is not relevant for this class. + This property is not relevant for this class. + + + This property is not relevant for this class. + This property is not relevant for this class. + + + This property is not relevant for this class. + This property is not relevant for this class. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Maintains an additional "Selected" and "Count" value for each item in a List. + Useful in the CheckBoxComboBox. It holds a reference to the List[Index] Item and + whether it is selected or not. + It also caters for a Count, if needed. + + + + + No property on the object is specified for display purposes, so simple ToString() operation + will be performed. And no Counts will be displayed + + + + + No property on the object is specified for display purposes, so simple ToString() operation + will be performed. + + + + + A Display "Name" property is specified. ToString() will not be performed on items. + This is specifically useful on DataTable implementations, or where PropertyDescriptors are used to read the values. + If a PropertyDescriptor is not found, a Property will be used. + + + + + A Display "Name" property is specified. ToString() will not be performed on items. + This is specifically useful on DataTable implementations, or where PropertyDescriptors are used to read the values. + If a PropertyDescriptor is not found, a Property will be used. + + + + + Is a Count indicator used. + + + + + The original List of values wrapped. A "Selected" and possibly "Count" functionality is added. + + + + + Used to indicate NOT to use ToString(), but read this property instead as a display value. + + + + + When specified, indicates that ToString() should not be performed on the items. + This property will be read instead. + This is specifically useful on DataTable implementations, where PropertyDescriptors are used to read the values. + + + + + Builds a concatenation list of selected items in the list. + + + + + Indicates whether the Item display value (Name) should include a count. + + + + + Reset all counts to zero. + + + + + Creates a ObjectSelectionWrapper item. + Note that the constructor signature of sub classes classes are important. + + + + + + + + + + + + + + Used together with the ListSelectionWrapper in order to wrap data sources for a CheckBoxComboBox. + It helps to ensure you don't add an extra "Selected" property to a class that don't really need or want that information. + + + + + + + + + + + + Used as a count indicator for the item. Not necessarily displayed. + + + + + Is this item selected. + + + + + A reference to the wrapped item. + + + + + The containing list for these selections. + + + + + An indicator of how many items with the specified status is available for the current filter level. + Thaught this would make the app a bit more user-friendly and help not to miss items in Statusses + that are not often used. + + + + + A reference to the item wrapped. + + + + + The item display value. If ShowCount is true, it displays the "Name [Count]". + + + + + The textbox display value. The names concatenated. + + + + + Indicates whether the item is selected. + + + + + + + + + + + + + + + + 控件的状态。 + + + + + 正常 + + + + + 鼠标经过 + + + + + 鼠标按下 + + + + + 鼠标的当前位置 + + + + + + + + + + + + + + + + + + + + 美化按钮 + + + + + 普通按钮矩形位置 + + + + + 美化按钮 + + + + + 分割按钮的宽度 + + + + + 是否启用分割按钮 + + + + + 优先使用默认皮肤 + + + + + 按钮基础背景色 + + + + + 按钮字体颜色 + + + + + 图片宽度,默认值为18px,最小12px + + + + + 圆角的位置,默认全部都是圆角 + + + + + 设置圆角半径 + + + + + 背景色是否渐变 + + + + + 图片高度 + + + + + 图片与文字之间的间距 + + + + + 当鼠标按下时图片和文字是否产生偏移 + + + + + 鼠标进入时 + + + + + + 鼠标离开 + + + + + + 鼠标按下 + + + + + + 鼠标弹起 + + + + + + 鼠标当前所在位置 + + + + + 获取图像以及文字的位置 + + + + + + + + + + + + + + + + + + + + + + + + 添加菜单分隔线 + + + + + + 添加菜单 + + + + + + + + 必需的设计器变量。 + + + + + 清理所有正在使用的资源。 + + 如果应释放托管资源,为 true;否则为 false。 + + + + 设计器支持所需的方法 - 不要修改 + 使用代码编辑器修改此方法的内容。 + + + + + 增强版Label(禁用了双击Label会自动复制文本到剪切板的功能) + + + + + + + + + + + 必需的设计器变量。 + + + + + 清理所有正在使用的资源。 + + 如果应释放托管资源,为 true;否则为 false。 + + + + 设计器支持所需的方法 - 不要修改 + 使用代码编辑器修改此方法的内容。 + + + + + 增强富文本控件 + + + + + 开始更新 + + + + + 结束更新 + + + + + RichTextBox + + + + + + + + + + + + + + + + + + + + + + + 在自带菜单弹出前激发 + + + + + 根据标签获得菜单项 + + + + + + + 只允许输入文本(只对设置之后的人工输入有效) + + + + + 按下按键 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 鼠标按下 + + + + + + + + + + + + + + + + + + 当文本框为空时,显示的内容。 + + + + + 添加菜单分隔线 + + + + + + 添加菜单 + + + + + + + + 必需的设计器变量。 + + + + + 清理所有正在使用的资源。 + + 如果应释放托管资源,为 true;否则为 false。 + + + + 设计器支持所需的方法 - 不要修改 + 使用代码编辑器修改此方法的内容。 + + + + + + + + + + + + + + + 必需的设计器变量。 + + + + + 清理所有正在使用的资源。 + + 如果应释放托管资源,为 true;否则为 false。 + + + + 设计器支持所需的方法 - 不要修改 + 使用代码编辑器修改此方法的内容。 + + + + + + + + + + 消息列表控件 + + + + + 最大高度 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 必需的设计器变量。 + + + + + 清理所有正在使用的资源。 + + 如果应释放托管资源,为 true;否则为 false。 + + + + 设计器支持所需的方法 - 不要 + 使用代码编辑器修改此方法的内容。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 增强时间控件 + + + + + 增强时间控件 + + + + + + + + + + + 必需的设计器变量。 + + + + + 清理所有正在使用的资源。 + + 如果应释放托管资源,为 true;否则为 false。 + + + + 设计器支持所需的方法 - 不要修改 + 使用代码编辑器修改此方法的内容。 + + + + + 选择文本框 + + + + + 选择文本框 + + + + + 按钮基础背景色 + + + + + 优先使用默认皮肤 + + + + + 选择的id + + + + + 选择的名称 + + + + + 选择的名称 + + + + + 字体 + + + + + 重新设置大小 + + + + + 在选择时激发 + + + + + 点击选择 + + + + + 必需的设计器变量。 + + + + + 清理所有正在使用的资源。 + + 如果应释放托管资源,为 true;否则为 false。 + + + + 设计器支持所需的方法 - 不要修改 + 使用代码编辑器修改此方法的内容。 + + + + + 建立圆角路径的样式。 + + + + + 四个角都不是圆角。 + + + + + 四个角都为圆角。 + + + + + 左边两个角为圆角。 + + + + + 右边两个角为圆角。 + + + + + 上边两个角为圆角。 + + + + + 下边两个角为圆角。 + + + + + 左下角为圆角。 + + + + + 右下角为圆角。 + + + + + 画图相关API + + + + + 建立带有圆角样式的路径。 + + 用来建立路径的矩形。 + 圆角的大小。 + 圆角的样式。 + 是否把矩形长宽减 1,以便画出边框。 + 建立的路径。 + + + + 窗体皮肤 + + + + + 窗体皮肤 + + + + + 标题属性 + + + + + 是否使用父窗口的图标 + + + + + 点击最小化按钮是最小化还是隐藏 + + + + + 最大化按钮 + + + + + 最小化按钮 + + + + + 标题栏关闭按钮是否显示 + + + + + 当窗口位于后台时,是否标注显示。 + + + + + + + + + + 标题栏字体颜色 + + + + + 标题栏不处于活动状态时的字体颜色 + + + + + 标题栏背景颜色 + + + + + 标题栏不处于活动状态时的背景颜色 + + + + + 是否允许拖拉窗体边缘来改变窗体大小 + + + + + + + + + + + 画边框 + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + 热键文本框 + + + + + 热键文本框 + + + + + + + + + + + + + + + + + 在控件大小变化时发生 + + + + + + 此属性无效 + + + + + 载入热键配置 + + + + + + 保存热键 + + + + + + 是否含义热键 + + + + + 读取或设置热键 + + + + + 功能键 + + + + + 热键按键 + + + + + KeyDown事件 + + + + + + KeyDown事件 + + + + + + 必需的设计器变量。 + + + + + 清理所有正在使用的资源。 + + 如果应释放托管资源,为 true;否则为 false。 + + + + 设计器支持所需的方法 - 不要 + 使用代码编辑器修改此方法的内容。 + + + + + 可以改变文本行距(行间距)的Label + + + + + 行间距 + + + + + 可以改变文本行距(行间距)的Label + + + + + + + + + + 字体高度 + + + + + + + + + + 文本 + + + + + + + + + + + + + + + + + + + 图标列表控件 + + + + + 图标列表控件 + + + + + 图标大小 + + + + + 文本显示高度(从底部算起) + + + + + 默认图标 + + + + + 是否显示图标 + + + + + 是否显示网格线 + + + + + 角标图标合集 + + + + + 画项 + + + + + + 选择项的背景开始颜色 + + + + + 选择项的背景结束颜色 + + + + + 选择项的边框颜色 + + + + + 选择项的字体颜色 + + + + + 重绘选中时背景 + + + + + 重绘图标 + + + 区域大小 + + + + + + + + 重绘文本 + + + + + 获取文本对齐 + + + + + 水平滚动条滚动事件 + + + + + 垂直滚动条滚动事件 + + + + + + + + + + + 列表项 + + + + + 图标 + + + + + 角标图片序号,为-1表示无角标 + + + + + + + + + + + + + + + 最大高度 + + + + + 标题 + + + + + 是否显示时间 + + + + + 添加时间 + + + + + + + + + + + + + + + + + 必需的设计器变量。 + + + + + 清理所有正在使用的资源。 + + 如果应释放托管资源,为 true;否则为 false。 + + + + 设计器支持所需的方法 - 不要 + 使用代码编辑器修改此方法的内容。 + + + + + + + + + + + + + + + 最大高度 + + + + + 标题 + + + + + 是否显示时间 + + + + + 添加时间 + + + + + 内容 + + + + + 网址 + + + + + 必需的设计器变量。 + + + + + 清理所有正在使用的资源。 + + 如果应释放托管资源,为 true;否则为 false。 + + + + 设计器支持所需的方法 - 不要 + 使用代码编辑器修改此方法的内容。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 计算两个日期的时间间隔,返回的是日期值+ + + 时间值,将显示在返回的值里 + 参照时间 + + + + + + + + + + + + + + + + + + + + + 必需的设计器变量。 + + + + + 清理所有正在使用的资源。 + + 如果应释放托管资源,为 true;否则为 false。 + + + + 设计器支持所需的方法 - 不要修改 + 使用代码编辑器修改此方法的内容。 + + + + + + + + + + + + + + + 控件边框颜色 + + + + + 控件背景颜色 + + + + + 圆角弧度大小 + + + + + 圆角风格 + + + + + 必需的设计器变量。 + + + + + 清理所有正在使用的资源。 + + 如果应释放托管资源,为 true;否则为 false。 + + + + 设计器支持所需的方法 - 不要修改 + 使用代码编辑器修改此方法的内容。 + + + + + + + + + + + + + + + 图标 + + + + + 标题 + + + + + 悬浮提示 + + + + + 标题颜色 + + + + + 设置按钮 + + + + + + + 判断和设置是否选择 + + + + + 必需的设计器变量。 + + + + + 清理所有正在使用的资源。 + + 如果应释放托管资源,为 true;否则为 false。 + + + + 设计器支持所需的方法 - 不要修改 + 使用代码编辑器修改此方法的内容。 + + + + + + + + + + + + + + + 绘制边框 + + 消息 + + + + 类说明:CContextMenuStrip控件的实现用来代替系统的ContextMenuStrip控件 + + + + + + + + + + + + + + + + 重写OnCreateControl + + + + + 重写OnPaint事件 + + + + + + CreateRoundedRectanglePath + + Rectangle + + + + + + 系统热键数据类。 + + + + + 系统热键数据类 + + + + + 使多行属性失效掉 + + + + + 使只读属性失效掉 + + + + + 获取热键文本 + + + + + 功能键 + + + + + 热键按键 + + + + + + + + + + + 必需的设计器变量。 + + + + + 清理所有正在使用的资源。 + + 如果应释放托管资源,为 true;否则为 false。 + + + + 设计器支持所需的方法 - 不要 + 使用代码编辑器修改此方法的内容。 + + + + + + + + + + 在搜索时激发 + + + + + 文本变化时激发 + + + + + 文本变化时激发 + + + + + 双击时激发 + + + + + + + + + + + + + + + 文本为空时的显示效果 + + + + + 文本不选中 + + + + + 有内容时的显示效果 + + + + + 当文本框为空时,显示的内容。 + + + + + 字体 + + + + + 优先使用默认皮肤 + + + + + 背景色是否渐变 + + + + + 按钮基础背景色 + + + + + 按钮圆角部分背景颜色 + + + + + + + + + + 重新设置大小 + + + + + 点击搜索按钮 + + + + + 必需的设计器变量。 + + + + + 清理所有正在使用的资源。 + + 如果应释放托管资源,为 true;否则为 false。 + + + + 设计器支持所需的方法 - 不要修改 + 使用代码编辑器修改此方法的内容。 + + + + + + + + + + + + + + + 使用公共皮肤 + + + + + 按钮颜色 + + + + + + + + + + + + + + + + + + + + + + + + + + + 皮肤公共类 + + + + + 是否使用默认皮肤 + + + + + 按钮皮肤 + + + + + 按钮皮肤类 + + + + + 背景颜色 + + + + + 字体颜色 + + + + + 是否颜色渐变 + + + + + 类说明:帮助类 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 修改控件或窗体的边框,例如Textbox或是Form窗体 + + 消息 + 控件对象 + 边框像素 + 边框颜色 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 超级图片控件,支持加载工程内部图片、异步加载网络图片 + + + + + 超级图片控件,支持加载工程内部图片、异步加载网络图片 + + + + + 图片所在上级域名 + + + + + 图片资源所在上级文件夹 + + + + + 根据不同前缀,加载不同格式图片。i:表示工程内置图片;s:表示T_ImageDomain域名下的图片,u:表示指定url的图片;f:表示本地图片 + + + + + + 加载本地图片,加载完毕不会占用本地图片 + + + + + + 加载指定url图片 + + url位置 + 是否异步 + + + + 必需的设计器变量。 + + + + + 清理所有正在使用的资源。 + + 如果应释放托管资源,为 true;否则为 false。 + + + + 设计器支持所需的方法 - 不要 + 使用代码编辑器修改此方法的内容。 + + + + + 多标签控件 + + + + + + + + + + 选项发生变化时激发 + + + + + 标签选择的序号 + + + + + + + + + + 选择的颜色 + + + + + 多标签控件颜色 + + + + + + + + + + 必需的设计器变量。 + + + + + 清理所有正在使用的资源。 + + 如果应释放托管资源,为 true;否则为 false。 + + + + 设计器支持所需的方法 - 不要修改 + 使用代码编辑器修改此方法的内容。 + + + + + 多标签控件 + + + + + + + + + + 获取对应的标签 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 获得当前进程,以便重绘控件 + + + + + + + 是否启用热点效果 + + + + + 边框颜色 + + + + + 热点边框颜色 + + + + + 是否鼠标MouseOver状态 + + + + + 是否启用热点效果 + + + + + 边框颜色 + + + + + 热点时边框颜色 + + + + + + + + + + 鼠标移动到该控件上时 + + + + + + 当鼠标从该控件移开时 + + + + + + 当该控件获得焦点时 + + + + + + 当该控件失去焦点时 + + + + + + 获得操作系统消息 + + + + + + 必需的设计器变量。 + + + + + 清理所有正在使用的资源。 + + 如果应释放托管资源,为 true;否则为 false。 + + + + 设计器支持所需的方法 - 不要修改 + 使用代码编辑器修改此方法的内容。 + + + + + 美化文本框控件 + + + + + 文本变化时激发 + + + + + 文本变化时激发 + + + + + 双击时激发 + + + + + + + + + + 是否只能输入数字 + + + + + 是否多行 + + + + + 是否在显示不下时换行 + + + + + 最大长度 + + + + + + + + + + 背景颜色 + + + + + 右键菜单 + + + + + 字体颜色 + + + + + 选择的开始位置 + + + + + 选择的长度 + + + + + 选择的文本 + + + + + 提示文本 + + + + + 选择全部 + + + + + 密码 + + + + + 是否只读 + + + + + + + + + + + 文本为空时的显示效果 + + + + + 字体 + + + + + 有内容时的显示效果 + + + + + 当文本框为空时,显示的内容。 + + + + + + + + + + 选择文本框中的文本范围 + + 文本框中当前选定文本的第一个字符的位置。 + 要选择的字符数 + + + + 必需的设计器变量。 + + + + + 清理所有正在使用的资源。 + + 如果应释放托管资源,为 true;否则为 false。 + + + + 设计器支持所需的方法 - 不要修改 + 使用代码编辑器修改此方法的内容。 + + + + + Define some Windows message constants + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This class adds to the functionality provided in System.Windows.Forms.MenuStrip. + + It allows you to "ClickThrough" to the MenuStrip so that you don't have to click once to + bring the form into focus and once more to take the desired action + + It also implements a SuppressHighlighting property to turn off the highlighting + that occures on mouseover when the form is not active + + + + + Gets or sets whether the control honors item clicks when its containing form does + not have input focus. + + + Default value is false, which is the same behavior provided by the base ToolStrip class. + + + + + Gets or sets whether the control shows highlighting on mouseover + + + Default value is true, which is the same behavior provided by the base MenuStrip class. + + + + + This method overrides the procedure that responds to Windows messages. + + It intercepts the WM_MOUSEMOVE message + and ignores it if SuppressHighlighting is on and the TopLevelControl does not contain the focus. + Otherwise, it calls the base class procedure to handle the message. + + It also intercepts the WM_MOUSEACTIVATE message and replaces an "Activate and Eat" result with + an "Activate" result if ClickThrough is enabled. + + + + + + This class adds to the functionality provided in System.Windows.Forms.ToolStrip. + + It allows you to "ClickThrough" to the MenuStrip so that you don't have to click once to + bring the form into focus and once more to take the desired action + + It also implements a SuppressHighlighting property to turn off the highlighting + that occures on mouseover when the form is not active + + + + + Gets or sets whether the control honors item clicks when its containing form does + not have input focus. + + + Default value is false, which is the same behavior provided by the base ToolStrip class. + + + + + Gets or sets whether the control shows highlighting on mouseover + + + Default value is true, which is the same behavior provided by the base MenuStrip class. + + + + + This method overrides the procedure that responds to Windows messages. + + It intercepts the WM_MOUSEMOVE message + and ignores it if SuppressHighlighting is on and the TopLevelControl does not contain the focus. + Otherwise, it calls the base class procedure to handle the message. + + It also intercepts the WM_MOUSEACTIVATE message and replaces an "Activate and Eat" result with + an "Activate" result if ClickThrough is enabled. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 还原 + + + + + 移动 + + + + + 大小 + + + + + 最小化 + + + + + 最大化 + + + + + 关闭 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 透明图片控件 + + + + + 是否使用透明,默认为True + + + + + 设置透明度 + + + + + 要绑定的控件 + + + + + 透明图片控件 + + + + + 图片 + + + + + 初始化加载控件 + + 透明度 + 是否显示加载图片 + 图片 + + + + + + + + + + + + + + + 显示加载 + + + + + 隐藏加载 + + + + + 必需的设计器变量。 + + + + + 清理所有正在使用的资源。 + + 如果应释放托管资源,为 true;否则为 false。 + + + + 设计器支持所需的方法 - 不要修改 + 使用代码编辑器修改此方法的内容。 + + + + + 日历控件 + + + + + 单击事件 + + + + + + + 单击某个日期事件 + + + + + 日历控件 + + + + + 设置日期 + + + + + 放假数据表 + + + + + 必需的设计器变量。 + + + + + 清理所有正在使用的资源。 + + 如果应释放托管资源,为 true;否则为 false。 + + + + 设计器支持所需的方法 - 不要修改 + 使用代码编辑器修改此方法的内容。 + + + + + 日控件 + + + + + 日控件 + + + + + 当前日期 + + + + + 在发生页码变化前激发 + + + + + 设置休息状态,1为休息,-1为上班,其它为不显示 + + + + + + 日期 + + + + + 农历 + + + + + 阳历日期字体颜色 + + + + + 阳历日期字体 + + + + + 农历日期字体 + + + + + 农历部分字体颜色 + + + + + 是否选中 + + + + + 必需的设计器变量。 + + + + + 清理所有正在使用的资源。 + + 如果应释放托管资源,为 true;否则为 false。 + + + + 设计器支持所需的方法 - 不要修改 + 使用代码编辑器修改此方法的内容。 + + + + + 设置管理类,快速添加设置。 + + + + + 设置管理类,快速添加设置。 + + + + + 设置管理类,快速添加设置。 + + + + + + 存储类型 + + + + + 配置存储路径 + + + + + 设置XML内容 + + + + + 添加控件 + + + + + + + + 设置值 + + + + + + + + 添加控件 + + + + + + + + + + 添加控件 + + + + + + + + + 添加控件 + + + + + + + + + 添加控件 + + + + + + + + + 添加控件 + + + + + + + + + 添加控件 + + + + + + + + + 添加控件 + + + + + + + + + 添加控件 + + + + + + + + + 添加控件 + + + + + + + + + 添加控件 + + + + + + + + + 读取配置 + + + + + 保存配置 + + + + + 类 名:ColorHSL + 功 能:H 色相 \ S 饱和度(纯度) \ L 亮度 颜色模型 + 日 期:2015-02-08 + 修 改:2015-03-20 + 作 者:ls9512 + + + + + HSL颜色 + + + + + + + + 色相 + + + + + 饱和度(纯度) + + + + + 饱和度 + + + + + 类 名:ColorHSV + 功 能:H 色相 \ S 饱和度(纯度) \ V 明度 颜色模型 + 日 期:2015-01-22 + 修 改:2015-03-20 + 作 者:ls9512 + + + + + 构造方法 + + + + + + + + 色相 + + + + + 饱和度(纯度) + + + + + 明度 + + + + + 类 名:ColorRGB + 功 能:R 红色 \ G 绿色 \ B 蓝色 颜色模型 + 所有颜色模型的基类,RGB是用于输出到屏幕的颜色模式,所以所有模型都将转换成RGB输出 + 日 期:2015-01-22 + 修 改:2015-03-20 + 作 者:ls9512 + + + + + 构造方法 + + + + + + + + + + + + + + 红色 + + + + + 绿色 + + + + + 蓝色 + + + + + 获取实际颜色 + + + + + + 类 名:ColorHelper + 功 能:提供从RGB到HSV/HSL色彩空间的相互转换 + 日 期:2015-02-08 + 修 改:2015-03-20 + 作 者:ls9512 + + + + + RGB转换HSV + + + + + + + HSV转换RGB + + + + + + + RGB转换HSL + + + + + + + HSL转换RGB + + H, S and L input range = 0 -1.0 + + + + + RGB转CMYK + + + + + + + + + + RGB转CMYK + + + + + + + + + + + + CMYK转RGB + + + + + + + + + + Standard-RGB → XYZ,X、Y、Z 使用 D65/2°标准光源. + + + + + + + + + XYZ → Standard-RGB,X、Y、Z 使用 D65/2°标准光源. + + + + + + + + + XYZ → Adobe-RGB,X、Y、Z 使用 D65/2°标准光源.RGB Adobe 1998 + + + + + + + + + Adobe-RGB → XYZ,X、Y、Z 使用 D65/2°标准光源.RGB Adobe 1998 + + + + + + + + + Yxy转RGB + + + + + + + + + RGB转Yxy + + + + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + + + 超级颜色选择控件 + + + 分页控件 + + + + + + + + + + + + + + + + + + + + + + + + + + 获取网页颜色 + + + + + 超级颜色选择控件 + + + + + 必需的设计器变量。 + + + + + 清理所有正在使用的资源。 + + 如果应释放托管资源,为 true;否则为 false。 + + + + 设计器支持所需的方法 - 不要修改 + 使用代码编辑器修改此方法的内容。 + + + + + Chrome风格的多标签控件 + + + + + 设置选项卡处于选中状态时第一背景色. + + + + + 设置选项卡处于选中状态时第二背景色. + + + + + 设置选项卡处于非选中状态时第一背景色. + + + + + 设置选项卡处于非选中状态时第二背景色. + + + + + 设置鼠标移动到非选中状态选项卡时第一背景色. + + + + + 设置鼠标移动到非选中状态选项卡时第二背景色. + + + + + 设置选项卡工作区背景色. + + + + + 设置选项卡工作区背景图. + + + + + 是否显示关闭按钮 + + + + + 是否显示新增按钮 + + + + + 是否允许拖拽标签 + + + + + 标签最大宽度 + + + + + 标签右键菜单 + + + + + 鼠标按下标签时激发 + + + + + 鼠标放开标签时激发 + + + + + Chrome风格的多标签控件 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 设置圆角半径 + + + + + Tab文字左边距离 + + + + + + + + + + + + + + 画标签文字 + + + + + + + + + 画标签图标 + + + + + + + 画关闭按钮 + + + + + + + + 获取所有选项卡合起来的宽度 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 添加新标签 + + + + + + + + + + + + 必需的设计器变量。 + + + + + 清理所有正在使用的资源。 + + 如果应释放托管资源,为 true;否则为 false。 + + + + 设计器支持所需的方法 - 不要 + 使用代码编辑器修改此方法的内容。 + + + + + The position is not over a tab. + + + + + The position is over a tab's icon. + + + + + The position is over a tab's text. + + + + + The position is over a tab but not over its icon or its text. For owner-drawn tab controls, this value is specified if the position is anywhere over a tab. + TCHT_ONITEM is a bitwise-OR operation on TCHT_ONITEMICON and TCHT_ONITEMLABEL. + + + + + Specifies values from SetWindowPosZ enumeration. + + + + + Specified HWND_TOP enumeration value. + + + + + Specified HWND_BOTTOM enumeration value. + + + + + Specified HWND_TOPMOST enumeration value. + + + + + Specified HWND_NOTOPMOST enumeration value. + + + + + Invalidates the rectangle or region that you specify in lprcUpdate or hrgnUpdate. + You can set only one of these parameters to a non-NULL value. If both are NULL, RDW_INVALIDATE invalidates the entire window. + + + + Causes the OS to post a WM_PAINT message to the window regardless of whether a portion of the window is invalid. + + + + Causes the window to receive a WM_ERASEBKGND message when the window is repainted. + Specify this value in combination with the RDW_INVALIDATE value; otherwise, RDW_ERASE has no effect. + + + + + Validates the rectangle or region that you specify in lprcUpdate or hrgnUpdate. + You can set only one of these parameters to a non-NULL value. If both are NULL, RDW_VALIDATE validates the entire window. + This value does not affect internal WM_PAINT messages. + + + + Suppresses any pending WM_ERASEBKGND messages. + + + Excludes child windows, if any, from the repainting operation. + + + Includes child windows, if any, in the repainting operation. + + + Causes the affected windows, which you specify by setting the RDW_ALLCHILDREN and RDW_NOCHILDREN values, to receive WM_ERASEBKGND and WM_PAINT messages before the RedrawWindow returns, if necessary. + + + + Causes the affected windows, which you specify by setting the RDW_ALLCHILDREN and RDW_NOCHILDREN values, to receive WM_ERASEBKGND messages before RedrawWindow returns, if necessary. + The affected windows receive WM_PAINT messages at the ordinary time. + + + + + Specifies values from Msgs enumeration. + + + + + Specified WM_NULL enumeration value. + + + + + Specified WM_CREATE enumeration value. + + + + + Specified WM_DESTROY enumeration value. + + + + + Specified WM_MOVE enumeration value. + + + + + Specified WM_SIZE enumeration value. + + + + + Specified WM_ACTIVATE enumeration value. + + + + + Specified WM_SETFOCUS enumeration value. + + + + + Specified WM_KILLFOCUS enumeration value. + + + + + Specified WM_ENABLE enumeration value. + + + + + Specified WM_SETREDRAW enumeration value. + + + + + Specified WM_SETTEXT enumeration value. + + + + + Specified WM_GETTEXT enumeration value. + + + + + Specified WM_GETTEXTLENGTH enumeration value. + + + + + Specified WM_PAINT enumeration value. + + + + + Specified WM_CLOSE enumeration value. + + + + + Specified WM_QUERYENDSESSION enumeration value. + + + + + Specified WM_QUIT enumeration value. + + + + + Specified WM_QUERYOPEN enumeration value. + + + + + Specified WM_ERASEBKGND enumeration value. + + + + + Specified WM_SYSCOLORCHANGE enumeration value. + + + + + Specified WM_ENDSESSION enumeration value. + + + + + Specified WM_SHOWWINDOW enumeration value. + + + + + Specified WM_WININICHANGE enumeration value. + + + + + Specified WM_SETTINGCHANGE enumeration value. + + + + + Specified WM_DEVMODECHANGE enumeration value. + + + + + Specified WM_ACTIVATEAPP enumeration value. + + + + + Specified WM_FONTCHANGE enumeration value. + + + + + Specified WM_TIMECHANGE enumeration value. + + + + + Specified WM_CANCELMODE enumeration value. + + + + + Specified WM_SETCURSOR enumeration value. + + + + + Specified WM_MOUSEACTIVATE enumeration value. + + + + + Specified WM_CHILDACTIVATE enumeration value. + + + + + Specified WM_QUEUESYNC enumeration value. + + + + + Specified WM_GETMINMAXINFO enumeration value. + + + + + Specified WM_PAINTICON enumeration value. + + + + + Specified WM_ICONERASEBKGND enumeration value. + + + + + Specified WM_NEXTDLGCTL enumeration value. + + + + + Specified WM_SPOOLERSTATUS enumeration value. + + + + + Specified WM_DRAWITEM enumeration value. + + + + + Specified WM_MEASUREITEM enumeration value. + + + + + Specified WM_DELETEITEM enumeration value. + + + + + Specified WM_VKEYTOITEM enumeration value. + + + + + Specified WM_CHARTOITEM enumeration value. + + + + + Specified WM_SETFONT enumeration value. + + + + + Specified WM_GETFONT enumeration value. + + + + + Specified WM_SETHOTKEY enumeration value. + + + + + Specified WM_GETHOTKEY enumeration value. + + + + + Specified WM_QUERYDRAGICON enumeration value. + + + + + Specified WM_COMPAREITEM enumeration value. + + + + + Specified WM_GETOBJECT enumeration value. + + + + + Specified WM_COMPACTING enumeration value. + + + + + Specified WM_COMMNOTIFY enumeration value. + + + + + Specified WM_WINDOWPOSCHANGING enumeration value. + + + + + Specified WM_WINDOWPOSCHANGED enumeration value. + + + + + Specified WM_POWER enumeration value. + + + + + Specified WM_COPYDATA enumeration value. + + + + + Specified WM_CANCELJOURNAL enumeration value. + + + + + Specified WM_NOTIFY enumeration value. + + + + + Specified WM_INPUTLANGCHANGEREQUEST enumeration value. + + + + + Specified WM_INPUTLANGCHANGE enumeration value. + + + + + Specified WM_TCARD enumeration value. + + + + + Specified WM_HELP enumeration value. + + + + + Specified WM_USERCHANGED enumeration value. + + + + + Specified WM_NOTIFYFORMAT enumeration value. + + + + + Specified WM_CONTEXTMENU enumeration value. + + + + + Specified WM_STYLECHANGING enumeration value. + + + + + Specified WM_STYLECHANGED enumeration value. + + + + + Specified WM_DISPLAYCHANGE enumeration value. + + + + + Specified WM_GETICON enumeration value. + + + + + Specified WM_SETICON enumeration value. + + + + + Specified WM_NCCREATE enumeration value. + + + + + Specified VK_RMENU enumeration value. + + + + + Specified WM_NCCALCSIZE enumeration value. + + + + + Specified WM_NCHITTEST enumeration value. + + + + + Specified WM_NCPAINT enumeration value. + + + + + Specified WM_NCACTIVATE enumeration value. + + + + + Specified WM_GETDLGCODE enumeration value. + + + + + Specified WM_SYNCPAINT enumeration value. + + + + + Specified WM_NCMOUSEMOVE enumeration value. + + + + + Specified WM_NCLBUTTONDOWN enumeration value. + + + + + Specified WM_NCLBUTTONUP enumeration value. + + + + + Specified WM_NCLBUTTONDBLCLK enumeration value. + + + + + Specified WM_NCRBUTTONDOWN enumeration value. + + + + + Specified WM_NCRBUTTONUP enumeration value. + + + + + Specified WM_NCRBUTTONDBLCLK enumeration value. + + + + + Specified WM_NCMBUTTONDOWN enumeration value. + + + + + Specified WM_NCMBUTTONUP enumeration value. + + + + + Specified WM_NCMBUTTONDBLCLK enumeration value. + + + + + Specified WM_NCXBUTTONDOWN enumeration value. + + + + + Specified WM_NCXBUTTONUP enumeration value. + + + + + Specified WM_KEYDOWN enumeration value. + + + + + Specified WM_KEYUP enumeration value. + + + + + Specified WM_CHAR enumeration value. + + + + + Specified WM_DEADCHAR enumeration value. + + + + + Specified WM_SYSKEYDOWN enumeration value. + + + + + Specified WM_SYSKEYUP enumeration value. + + + + + Specified WM_SYSCHAR enumeration value. + + + + + Specified WM_SYSDEADCHAR enumeration value. + + + + + Specified WM_KEYLAST enumeration value. + + + + + Specified WM_IME_STARTCOMPOSITION enumeration value. + + + + + Specified WM_IME_ENDCOMPOSITION enumeration value. + + + + + Specified WM_IME_COMPOSITION enumeration value. + + + + + Specified WM_IME_KEYLAST enumeration value. + + + + + Specified WM_INITDIALOG enumeration value. + + + + + Specified WM_COMMAND enumeration value. + + + + + Specified WM_SYSCOMMAND enumeration value. + + + + + Specified WM_TIMER enumeration value. + + + + + Specified WM_HSCROLL enumeration value. + + + + + Specified WM_VSCROLL enumeration value. + + + + + Specified WM_INITMENU enumeration value. + + + + + Specified WM_INITMENUPOPUP enumeration value. + + + + + Specified WM_MENUSELECT enumeration value. + + + + + Specified WM_MENUCHAR enumeration value. + + + + + Specified WM_ENTERIDLE enumeration value. + + + + + Specified WM_MENURBUTTONUP enumeration value. + + + + + Specified WM_MENUDRAG enumeration value. + + + + + Specified WM_MENUGETOBJECT enumeration value. + + + + + Specified WM_UNINITMENUPOPUP enumeration value. + + + + + Specified WM_MENUCOMMAND enumeration value. + + + + + Specified WM_CTLCOLORMSGBOX enumeration value. + + + + + Specified WM_CTLCOLOREDIT enumeration value. + + + + + Specified WM_CTLCOLORLISTBOX enumeration value. + + + + + Specified WM_CTLCOLORBTN enumeration value. + + + + + Specified WM_CTLCOLORDLG enumeration value. + + + + + Specified WM_CTLCOLORSCROLLBAR enumeration value. + + + + + Specified WM_CTLCOLORSTATIC enumeration value. + + + + + Specified WM_MOUSEMOVE enumeration value. + + + + + Specified WM_LBUTTONDOWN enumeration value. + + + + + Specified WM_LBUTTONUP enumeration value. + + + + + Specified WM_LBUTTONDBLCLK enumeration value. + + + + + Specified WM_RBUTTONDOWN enumeration value. + + + + + Specified WM_RBUTTONUP enumeration value. + + + + + Specified WM_RBUTTONDBLCLK enumeration value. + + + + + Specified WM_MBUTTONDOWN enumeration value. + + + + + Specified WM_MBUTTONUP enumeration value. + + + + + Specified WM_MBUTTONDBLCLK enumeration value. + + + + + Specified WM_MOUSEWHEEL enumeration value. + + + + + Specified WM_XBUTTONDOWN enumeration value. + + + + + Specified WM_XBUTTONUP enumeration value. + + + + + Specified WM_XBUTTONDBLCLK enumeration value. + + + + + Specified WM_PARENTNOTIFY enumeration value. + + + + + Specified WM_ENTERMENULOOP enumeration value. + + + + + Specified WM_EXITMENULOOP enumeration value. + + + + + Specified WM_NEXTMENU enumeration value. + + + + + Specified WM_SIZING enumeration value. + + + + + Specified WM_CAPTURECHANGED enumeration value. + + + + + Specified WM_MOVING enumeration value. + + + + + Specified WM_DEVICECHANGE enumeration value. + + + + + Specified WM_MDICREATE enumeration value. + + + + + Specified WM_MDIDESTROY enumeration value. + + + + + Specified WM_MDIACTIVATE enumeration value. + + + + + Specified WM_MDIRESTORE enumeration value. + + + + + Specified WM_MDINEXT enumeration value. + + + + + Specified WM_MDIMAXIMIZE enumeration value. + + + + + Specified WM_MDITILE enumeration value. + + + + + Specified WM_MDICASCADE enumeration value. + + + + + Specified WM_MDIICONARRANGE enumeration value. + + + + + Specified WM_MDIGETACTIVE enumeration value. + + + + + Specified WM_MDISETMENU enumeration value. + + + + + Specified WM_ENTERSIZEMOVE enumeration value. + + + + + Specified WM_EXITSIZEMOVE enumeration value. + + + + + Specified WM_DROPFILES enumeration value. + + + + + Specified WM_MDIREFRESHMENU enumeration value. + + + + + Specified WM_IME_SETCONTEXT enumeration value. + + + + + Specified WM_IME_NOTIFY enumeration value. + + + + + Specified WM_IME_CONTROL enumeration value. + + + + + Specified WM_IME_COMPOSITIONFULL enumeration value. + + + + + Specified WM_IME_SELECT enumeration value. + + + + + Specified WM_IME_CHAR enumeration value. + + + + + Specified WM_IME_REQUEST enumeration value. + + + + + Specified WM_IME_KEYDOWN enumeration value. + + + + + Specified WM_IME_KEYUP enumeration value. + + + + + Specified WM_MOUSEHOVER enumeration value. + + + + + Specified WM_UNDO enumeration value. + + + + + Specified WM_RENDERFORMAT enumeration value. + + + + + Specified WM_RENDERALLFORMATS enumeration value. + + + + + Specified WM_DESTROYCLIPBOARD enumeration value. + + + + + Specified WM_DRAWCLIPBOARD enumeration value. + + + + + Specified WM_PAINTCLIPBOARD enumeration value. + + + + + Specified WM_VSCROLLCLIPBOARD enumeration value. + + + + + Specified WM_SIZECLIPBOARD enumeration value. + + + + + Specified WM_ASKCBFORMATNAME enumeration value. + + + + + Specified WM_CHANGECBCHAIN enumeration value. + + + + + Specified WM_HSCROLLCLIPBOARD enumeration value. + + + + + Specified WM_QUERYNEWPALETTE enumeration value. + + + + + Specified WM_PALETTEISCHANGING enumeration value. + + + + + Specified WM_PALETTECHANGED enumeration value. + + + + + Specified WM_HOTKEY enumeration value. + + + + + Specified WM_PRINT enumeration value. + + + + + Specified WM_PRINTCLIENT enumeration value. + + + + + Specified WM_HANDHELDFIRST enumeration value. + + + + + Specified WM_HANDHELDLAST enumeration value. + + + + + Specified WM_AFXFIRST enumeration value. + + + + + Specified WM_AFXLAST enumeration value. + + + + + Specified WM_PENWINFIRST enumeration value. + + + + + Specified WM_PENWINLAST enumeration value. + + + + + Specified WM_APP enumeration value. + + + + + Specified WM_USER enumeration value. + + + + + Specified WM_REFLECT enumeration value. + + + + + Specified WM_THEMECHANGED enumeration value. + + + + + + + + + + 关键词 + + + + + 密码 + + + + + 权限用户id + + + + + + + + + + + + + 返回关键词 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 树形控件,用于分类用 + + + + + 显示在第一位的名称 + + + + + 是否显示菜单 + + + + + 树形控件 + + + + + 判断指定节点是否是目标节点的子节点 + + + + + + + + + 判断当前节点,当前用户是否有权限访问 + + + + + + + + + 权限事件 + + + + + + + + 选择权限用户时发生 + + + + + 数据变化时发生 + + + + + 数据变化前发生 + + + + + 操作事件 + + + + + + + 在添加分组前发生 + + + + + 在修改分组前发生 + + + + + 在删除分组前发生 + + + + + 在设置密码前发生 + + + + + 在设置权限前发生 + + + + + 获取新的关键词分类 + + + + + + 根据id获取节点 + + + + + + + 根据节点获取节点信息 + + + + + + + 设置节点信息 + + + + + + + 设置节点关键词和密码 + + + + + + + + 设置节点密码 + + + + + + + 设置节点关键词 + + + + + + + 设置节点用户 + + + + + + + RecursionTreeControl:表示将XML文件的内容显示在TreeView控件中 + + 将要加载的XML文件中的节点元素 + 将要加载的XML文件中的节点集合 + + + + 把XML文本载入到列表中 + + + + + + 把XML文件载入到列表中 + + + + + + 将列表保存为xml文本 + + + + + + 改变所有子节点的状态 + + + + + + + 反选子节点 + + + + + + 根据关键词来选中列表 + + + + + + 根据关键词来选中列表 + + + + + + 格式化关键字(会去除重复项),以便存入数据库 + + + + + + + 去除掉重复项 + + + + + + + 获取当前选中项以及所有父项的关键词组合 + + + + + + 获取选中的 + + + + + + + + 必需的设计器变量。 + + + + + 清理所有正在使用的资源。 + + 如果应释放托管资源,为 true;否则为 false。 + + + + 设计器支持所需的方法 - 不要 + 使用代码编辑器修改此方法的内容。 + + + + + + + + + + 是否为添加 + + + + + 选择的文本 + + + + + 选择的Tag + + + + + 选择的图片序号 + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + + + + + + + + + + + + + 旧密码 + + + + + 新密码 + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + 控件状态 + + + + + 无 + + + + + 获得焦点 + + + + + 失去焦点 + + + + + 鼠标指针进入控件 + + + + + Toolbar控件 + + + + + + + + + + + + + + + 获取或设置控件显示的图片 + + + + + 重写控件焦点属性 + + + + + 自定义绘制 + + + + + + 焦点进入 + + + + + + 失去焦点 + + + + + + 禁止调整大小 + + + + + + + + + + + + + + + + + + 只响应单击鼠标左键事件 + + + + + + 按比例缩放图片 + + + + + + + 图片缩放 + + 源图片 + 缩放图片的宽度 + 缩放图片的高度 + 缩放的图片 + + + + 必需的设计器变量。 + + + + + 清理所有正在使用的资源。 + + 如果应释放托管资源,为 true;否则为 false。 + + + + 设计器支持所需的方法 - 不要 + 使用代码编辑器修改此方法的内容。 + + + + + 绘图对像 + + 绘图对像 + 图片 + 绘置的图片大小、坐标 + 绘置的图片边界 + 当前状态 + 状态总数 + + + + 绘图对像 + + 绘图对像 + 图片对像 + 绘置的图片大小、坐标 + 当前状态 + 状态总数 + + + + + + + + + 得到要绘置的图片对像 + + 图像在程序集中的地址 + + + + + 得到要绘置的图片对像 + + 图像在程序集中的路径 + 图像在程序集中的地址 + + + + + 获取资源图标 + + + + + + + 得到图程序集中的图片对像 + + 图像在程序集中的地址 + + + + + 得到图程序集中的图片对像 + + 图像在程序集中的路径 + 图像在程序集中的地址 + + + + + 颜色标签 + + + + + 行间距 + + + + + 颜色标签 + + + + + 更新 + + + + + 字体高度 + + + + + 控件高 + + + + + 控件文本 + + + + + 获取过滤掉颜色的字 + + + + + + + 改变字体 + + + + + + + + + + + + + + 分页控件 + + + + + 首页文本 + + + + + 上一页文本 + + + + + 下一页文本 + + + + + 末页文本 + + + + + 跳页文本 + + + + + 页面信息文本 + + + + + 存储SQL参数 + + + + + 最后一页的页码 + + + + + 在发生页码变化时激发 + + + + + 在发生页码变化前激发 + + + + + 设置/返回每页显示的量大小 + + + + + 设置/返回记录总数 + + + + + 设置/返回分页SQL语句,{pagecount}表示页数,{recordcount}表示记录总数,{pagesize}表示页面大小, + {pageindex}表示当前页数,{recordnum}表示当前页记录数,{pageendnum}表示当前页最后一条记录的记录数 + + + + + 设置/返回当{recordnum}小于等于0时的分页SQL语句(比如第一页),如果为空,则默认使用SQLText值。{pagecount}表示页数, + {recordcount}表示记录总数,{pagesize}表示页面大小,{pageindex}表示当前页数,{recordnum}表示当前页记录数,{pageendnum}表示当前页最后一条记录的记录数 + + + + + 获取当前页码 + + + + + + 设置分页语句 + + 数据库类型 + 表名 + 条件判断sql语句,注意不包含where,以及不包含排序语句;,如果不存在条件判断语句,请为空 + 排序语句,必须包含Order By;,如果不存在排序语句,请为空 + + + + + 获取数据库指定条件的记录总数 + + 数据库类型 + 表名 + 条件判断sql语句,注意不包含where,以及不包含排序语句;,如果不存在条件判断语句,请为空 + + + + + 设置分页语句为MySQL分页语句 + + 表名 + 条件判断sql语句,注意不包含where,以及不包含排序语句;,如果不存在条件判断语句,请为空 + 排序语句,必须包含Order By;,如果不存在排序语句,请为空 + + + + + 获取MySQL数据库指定条件的记录总数 + + 表名 + 条件判断sql语句,注意不包含where,以及不包含排序语句;,如果不存在条件判断语句,请为空 + + + + + 设置分页语句为MSSQL分页语句 + + 表名 + 条件判断sql语句,注意不包含where,以及不包含排序语句;,如果不存在条件判断语句,请为空 + 排序语句,必须包含Order By;,如果不存在排序语句,请为空 + + + + + 获取MSSQL数据库指定条件的记录总数 + + 表名 + 条件判断sql语句,注意不包含where,以及不包含排序语句;,如果不存在条件判断语句,请为空 + 排序语句,必须包含Order By;,如果不存在排序语句,请为空 + + + + + 设置分页语句为SQLite分页语句 + + 表名 + 条件判断sql语句,注意不包含where,以及不包含排序语句;,如果不存在条件判断语句,请为空 + 排序语句,必须包含Order By;,如果不存在排序语句,请为空 + + + + + 设置分页语句为SQLite分页语句 + + 表名 + 条件判断sql语句,注意不包含where,可包含order by,如果不存在条件判断语句,请为空 + + + + + 获取SQLite数据库指定条件的记录总数 + + 表名 + 条件判断sql语句,注意不包含where,可包含order by,如果不存在条件判断语句,请为空 + + + + + 返回分页SQL语句 + + + + + 分页控件 + + + + + 设置当前页为指定页 + + + + + + 下一页 + + + + + 上一页 + + + + + 末页 + + + + + 首页 + + + + + 必需的设计器变量。 + + + + + 清理所有正在使用的资源。 + + 如果应释放托管资源,为 true;否则为 false。 + + + + 设计器支持所需的方法 - 不要 + 使用代码编辑器修改此方法的内容。 + + + + + 密码控件 + + + + + + + + + + 密码 + + + + + 必需的设计器变量。 + + + + + 清理所有正在使用的资源。 + + 如果应释放托管资源,为 true;否则为 false。 + + + + 设计器支持所需的方法 - 不要 + 使用代码编辑器修改此方法的内容。 + + + + + This enum represents the possible browser commands + + + + + Used when no commans are available + + + + + Used in the new navigation events + + + + + The URL to navigate to + + + + + The name of the frame to navigate to + + + + + The flags when opening a new window + + + + + The pointer to ppDisp + + + + + Creates a new instance of WebBrowserExtendedNavigatingEventArgs + + Pointer to the automation object of the browser + The URL to go to + The name of the frame + The new window flags + + + + + + + + + Used in the new navigation events + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 查看源码 + + + + + 复制当前选中区 + + + + + 粘贴当前选中区 + + + + + 剪切当前选中区 + + + + + 全选 + + + + + 清除当前选中区的选中状态。 + + + + + 从当前选中区中删除全部超级链接。 + + + + + 从当前选中区中删除全部书签。 + + + + + 删除当前选中区 + + + + + 重做 + + + + + 撤销 + + + + + 从当前选中区中删除格式化标签。 + + + + + 点击节点 + + + + + + + + 点击节点 + + + + + + + + + 点击元素 + + 节点名 + 属性 + 属性值 + 等待毫秒数 + 第几个符合的元素,从1开始 + + + + 等待多时毫秒 + + + + + + Represents event information for the main form, when the command state of the active browser changes + + + + + Creates a new instance of the class + + A list of commands that are available + + + + Gets a list of commands that are available + + + + + An extended version of the control. + + + + + + + + + + + + 在页面弹出消息对话框时激发 + + + + + + + + + + + + + + + + + + + + + + 打开页面并等待页面加载完毕 + + 要打开的页面地址 + 小于等于0,则表示一直等待,否则表示等待指定秒后,如果依然没有加载完毕,就直接返回 + + + + 等待页面加载完毕 + + 小于等于0,则表示一直等待,否则表示等待指定秒后,如果依然没有加载完毕,就直接返回 + + + + 等待指定毫秒 + + 等待指定毫秒 + + + + 获取网页源代码,可以自动去除乱码 + + + + + + 加载html文本到浏览器中 + + + + + + + 加载html文本到浏览器中 + + + + + + 强制用本窗体打开新链接 + + + + + + + + + + + This method supports the .NET Framework infrastructure and is not intended to be used directly from your code. + Called by the control when the underlying ActiveX control is created. + + + + + + This method supports the .NET Framework infrastructure and is not intended to be used directly from your code. + Called by the control when the underlying ActiveX control is discarded. + + + + + Returns the automation object for the web browser + + + + + This method will be called to give you a chance to create your own event sink + + + + + Detaches the event sink + + + + + 在文档下载开始时激发 + + + + + Raises the event + + Empty + + You could start an animation or a notification that downloading is starting + + + + + 下载完成后触发 + + + Here you could start monitoring for script errors. + + + + + Raises the event + + Empty + + + + 在开始浏览新网页时激发. + + + + + 在打开新的网页窗口时激发 + + + + + Raises the event + + Thrown when BrowserExtendedNavigatingEventArgs is null + + + + Raises the event + + Thrown when BrowserExtendedNavigatingEventArgs is null + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 新窗口事件,只限Window XP SP2或以上系统支持 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Overridden + + The send to this procedure + + + + A list of all the available window messages + + + + + Raises the event + + + + + 在网页窗口关闭时激发 + + + Do not confuse this with DWebBrowserEvents2.Quit... That's something else. + + + + + Flags used by INewWindowManager::EvaluateNewWindow. + These values are taken into account in the decision of whether to display a pop-up window. + + + + + No information Present + + + + + The page is unloading. This flag is set in response to the onbeforeunload and onunload events. + Some pages load pop-up windows when you leave them rather than when you enter. This flag is used to identify those situations. + + + + + The call to INewWindowManager::EvaluateNewWindow is the result of a user-initiated action + (a mouse click or key press). Use this flag in conjunction with the NWMF_FIRST_USERINITED flag + to determine whether the call is a direct or indirect result of the user-initiated action. + + + + + When NWMF_USERINITED is present, this flag indicates that the call to + INewWindowManager::EvaluateNewWindow is the first query that results from this user-initiated action. + Always use this flag in conjunction with NWMF_USERINITED. + + + + + The override key (ALT) was pressed. The override key is used to bypass the pop-up manager梐llowing + all pop-up windows to display梐nd must be held down at the time that INewWindowManager::EvaluateNewWindow is called. + + + + + The new window attempting to load is the result of a call to the showHelp method. Help is sometimes displayed in a separate window, + and this flag is valuable in those cases. + + + + + The new window is a dialog box that displays HTML content. + + + + + Indicates that the EvaluateNewWindow method is being called through a marshalled Component Object Model (COM) proxy + from another thread. In this situation, the method should make a decision and return immediately without performing + blocking operations such as showing modal user interface (UI). Lengthy operations will cause the calling thread to + appear unresponsive. + + + + + HRESULT constants + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a form that supports custom theme + + + + + 标签新建按钮事件 + + + + + 标签关闭按钮事件 + + + + + 标签创建时事件 + + + + + 标签激活前事件 + + + + + 标签激活后事件 + + + + + 在标签栏创建时激发 + + + + + + + 内边距 + + + + + 默认内边距 + + + + + 标题 + + + + + 皮肤/主题 + + + + + 是否可拖动改变窗体大小 + + + + + 窗体边界大小,鼠标移动到该边界将变成指针形状,拖动可改变窗体大小 + + + + + 窗体边框大小 + + + + + 标题栏高度 + + + + + 窗体圆角程度 + + + + + 窗体圆角样式 + + + + + 控制按钮相对于右上角的偏移量 + + + + + 关闭/最大化/最小化按钮之间的距离,可以设置成负值使它们重叠 + + + + + 标题栏图标尺寸 + + + + + 窗体图标,如果设置本项,将不使用Icon属性 + + + + + 标题栏图标与窗体左边框的距离 + + + + + 标题距离左边的距离 + + + + + 窗体关闭按钮的尺寸 + + + + + 窗体最大化/还原按钮的大小 + + + + + 窗体最小化按钮的大小 + + + + + 是否显示阴影 + + + + + 窗体阴影宽度 + + + + + 使用阴影来缩放 + + + + + 窗体阴影颜色 + + + + + 阴影从里到外是逐渐变浅的,这个值设置深色部分的透明度,ARGB中的A值 + + + + + 阴影从里到外是逐渐变浅的,这个值设置浅色部分的透明度,ARGB中的A值 + + + + + 表示去掉自画的边框及标题栏后,剩下的可用的客户区区域,坐标相对于窗体左上角 + + + + + 表示去掉自画的边框及标题栏后,剩下的可用的客户区大小 + + + + + 表示MDI标签栏的区域,包括bottom-region + + + + + MGdUI皮肤 + + + + + + + + + + + + + + + + + 获取子窗体 + + + + + + 通过sendmessage方式激活子窗体以避免闪烁 + + + + + + 当子窗体关闭时激发 + + + + + + + 子窗体可视化变化 + + + + + + + 获取当前的子窗体列表 + + + + + + 判断所接收到的 wm_nc-calc-size 消息是否指示窗体即将最小化 + + + + + 判断所接收到的 wm_nc-calc-size 消息是否指示窗体即将最大化 + + + + + to make the client area to have 3D view + + + + + 双击事件 + + + + + 消息 + + + + + + 画UI + + + + + + 在画背景时激发 + + + + + + 重写该方法解决在VS设计器中,每次保存一个新的尺寸,再打开尺寸会变大的问题 + + + + + 创建控件时激发 + + + + + 窗体可见变化时激发 + + + + + + 大小改变时激发 + + + + + + 在位置变化时激发 + + + + + + 窗体激活 + + + + + + 窗体关闭后激发 + + + + + + 加载时 + + + + + + 在子窗体激活时激发 + + + + + + 标签菜单 + + + + + 窗体上移动鼠标时激发 + + + + + + 获取当前点击的标签项 + + + + + 在窗体上按下鼠标时激发 + + + + + + 在窗体上放开鼠标时激发 + + + + + + 在鼠标离开窗体时激发 + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + 该类处理mdi-bar的绘制及鼠标事件管理 + + + + + use left,top,right to location the bar in owner form, + the margin is from Form.ClientRectangle + + + + + 整个标签栏高度,包含标签栏底部区域、标签、标签顶部空隙 + + + + + 标签栏底部区域的高度 + + + + + 是否显示标签栏边框 + + + + + 是否显示标签栏背景 + + + + + 标签栏左内边距 + + + + + 标签栏右内边距 + + + + + 标签高度 + + + + + 激活的标签高度 + + + + + tab顶部与bar顶部的空间,这个值用来计算 BarHeight + + + + + 每个标签的左右边界可以不是垂直的,而是都有一个斜度 + + + + + tab与tab之间的距离,用负值可以使tab有重叠的效果 + + + + + 标签是否显示图标 + + + + + 是否显示标签关闭按钮 + + + + + 标签图标大小 + + + + + 标签图标距离左边的距离 + + + + + 标签文字距离左边的距离 + + + + + 标签关闭按钮的大小 + + + + + 标签关闭按钮距离右边的距离 + + + + + 是否显示新建标签按钮 + + + + + 新建标签按钮的大小 + + + + + 新建标签距离左边的距离 + + + + + 按钮与Bar底部的距离 + + + + + 一个tab允许的最小宽度 + + + + + 一个tab允许的最大显示宽度 + + + + + 标签正常宽度 + + + + + 同步_listTabItems与mdi主窗体实际存在的子form + + + + + 为每个tab分配空间,如果tab数目太多,则有些会被隐藏 + + + + + 重绘整个标签栏 + + + + + + 处理鼠标事件。该方法会触发一些click事件,重刷一些按钮等 + + + + + + + 该类表示一个单独的标签项 + + + + + 该标签所对应的窗体 + + + + + 最终分配到的整个tab的宽度 + + + + + 表示所对应的form是否仍未被关闭 + + + + + 是否因空间不足而被隐藏 + + + + + 返回全部显示该标签文本所需的长度 + + + + + + 返回显示全部文本时该tab所需的宽度,该宽度不超过bar-container + 规定的tabmaxwidth + + + + + + 居左 + + + + + 显示在最后一个标签后面 + + + + + 该类封装设置一个主题所需的信息,可以继承该类实现不同的主题 + + + + + 主题名称,用于标识主题,对主题进行简单描述 + + + + + 窗体边界大小,鼠标移动到该边界将变成指针形状,拖动可改变窗体大小 + + + + + 窗体边框大小 + + + + + 窗体标题栏高度 + + + + + 标题栏图标与窗体左边框的距离 + + + + + 标题栏图标尺寸 + + + + + 标题栏文本左边距 + + + + + 控制按钮(关闭按钮)相对于窗体右上角的偏移量 + + + + + 窗体关闭按钮的尺寸 + + + + + 窗体最大化/还原按钮的大小 + + + + + 窗体最小化按钮的大小 + + + + + 关闭/最大化/最小化按钮之间的距离,可以设置成负值使它们重叠 + + + + + 窗体圆角程度 + + + + + 窗体圆角样式 + + + + + 是否使用默认的圆角样式,该样式为左上角和右上角圆角, + 最好在窗体边框较粗时才使用该样式 + + + + + 是否在标题栏上绘制图标 + + + + + 是否在标题栏上绘制文本 + + + + + 是否显示窗体阴影 + + + + + 窗体阴影大小 + + + + + 拖动窗体阴影是否可以改变窗体大小 + + + + + 阴影的颜色,可以设置成其他颜色而不一定是黑色 + + + + + 阴影从里到外是逐渐变浅的,这个值设置深色部分的透明度,ARGB中的A值 + + + + + 阴影从里到外是逐渐变浅的,这个值设置浅色部分的透明度,ARGB中的A值 + + + + + 是否在客户区边界画线使其看起来有立体感 + + + + + 窗体标题栏文字是否居中显示 + + + + + 窗体边框最外一像素的颜色 + + + + + 窗体边框第二最外像素的颜色 + + + + + 窗体边框其他部分颜色,如果窗体边框大小大于2,则其他像素将用此颜色画出 + + + + + 标题栏颜色是从上到下渐变的,这个值设置上边的颜色值 + + + + + 标题栏颜色是从上到下渐变的,这个值设置下边的颜色值 + + + + + 标题栏文字颜色 + + + + + 窗体背景颜色,该值将覆盖窗体自带的BackColor属性值 + + + + + 窗体关闭按钮的颜色集合 + + + + + 窗体最大化/还原按钮的颜色集合 + + + + + 窗体最小化按钮的颜色集合 + + + + + 默认状态下关闭按钮背景图片 + + + + + 鼠标移过去时关闭按钮背景图片 + + + + + 鼠标按下时关闭按钮背景图片 + + + + + 默认状态下最大化按钮背景图片 + + + + + 鼠标移过去时最大化按钮背景图片 + + + + + 鼠标按下时最大化按钮背景图片 + + + + + 默认状态下恢复按钮背景图片 + + + + + 鼠标移过去时恢复按钮背景图片 + + + + + 鼠标按下时恢复按钮背景图片 + + + + + 默认状态下最小化按钮背景图片 + + + + + 鼠标移过去时最小化按钮背景图片 + + + + + 鼠标按下时最小化按钮背景图片 + + + + + 是否用SendMessage的方式切换子窗体,以避免子窗体切换时产生的闪烁 + + + + + Mdi-Bar与窗体左、上、右边界的距离,只用到这三个值,Bottom值没用到。 + 用这三个值来确定Mdi-Bar的宽度及其在窗体中的位置 + + + + + 内部左边空白,第一个标签将从这个空白距离之后开始 + + + + + 标签栏内部右边空白 + + + + + 标签栏背景颜色 + + + + + 标签栏边框颜色 + + + + + 标签栏背景图片 + + + + + 是否显示标签栏边框 + + + + + 标签栏下边区域的背景颜色 + + + + + 标签栏下边区域的高度 + + + + + 标签高度 + + + + + 被选中的标签高度,可以设置成与TabHeight不一样的值,以突出显示被选中状态 + + + + + 标签之间的距离,设成负值可以使标签有重叠的效果 + + + + + 标签的最大宽度,任何情况下标签都不能超过这个宽度 + + + + + 标签正常宽度,如果标签需要很短的宽度(比如20像素)就可以显示完上面的文字, + 但是Mdi-Bar上有足够的空间时,标签会以正常宽度(比如100像素)显示 + + + + + 标签最小宽度,当标签小于这个宽度时将被隐藏 + + + + + 标签梯度大小,标签可以不以矩形方式显示,而是有一个梯度/斜度。 + + + + + 标签顶部空白,这个值用于参与计算Mdi-Bar高度,计算方式为: + Mdi-Bar Height = BottomRegionHeight + TabHeight + TabTopSpace + + + + + 标签上是否显示子窗体图标 + + + + + 标签上是否显示子窗体关闭图标 + + + + + 选中状态的标签的上部背景色,与下部背景色不同时,标签背景色就有渐变效果 + + + + + 选中状态的标签的下部背景色,与上部背景色不同时,标签背景色就有渐变效果 + + + + + 标签激活时字体颜色 + + + + + 非选中状态的标签的字体颜色 + + + + + 非选中状态的标签的上部背景色 + + + + + 非选中状态的标签的下部背景色 + + + + + 标签外边框颜色 + + + + + 标签内边框颜色,这个颜色一般具有一定的透明度 + + + + + 是否显示标签边框 + + + + + 是否显示默认的新建标签按钮(NewTabBtn) + + + + + NewTabBtn与下边框的距离,这个值用来定位按钮的Y坐标 + + + + + 新建标签按钮与左边框的距离,这个值用来定位按钮的X坐标 + + + + + 新建标签按钮大小 + + + + + 按钮颜色集合 + + + + + 是否一直显示ListAllBtn,即使在没有标签被隐藏的情况下 + + + + + 《显示全部标签》按钮的位置 + + + + + 《显示全部标签》按钮与下边框的距离,这个值用来定位按钮的Y坐标 + + + + + 《显示全部标签》按钮与左边框的距离,这个值用来定位按钮的X坐标 + + + + + 《显示全部标签》按钮的颜色 + + + + + 《显示全部标签》按钮的大小 + + + + + 皮肤主题 + + + + + 设置百分比 + + + + + + + + + 引发 ValueChanged 事件 + + + + + + 引发 ThemeChanged 事件 + + + + + + 指示鼠标位于哪个区域 + + + + + 控件Value值发生变化后引发 + + + + + 控件绘制MainLine前引发, 可以设置Cancel参数来取消默认的绘制 + + + + + 控件绘制Button前引发 + + + + + 引发 ValueChanged 事件 + + + + + 引发 BeforePaintMainLine 事件 + + + + + 引发 BeforePaintButton 事件 + + + + + 将Value值加一个LargeChange量 + + + + + 将Value值减一个LargeChange量 + + + + + 将Value值加一个SmallChange量 + + + + + 将Value值减一个SmallChange量 + + + + + 提供产生各种路径的静态方法,比如圆角路径、关闭按钮上的x路径、+号路径 + + + + + 圆角样式 + + + + + 无 + + + + + 所有 + + + + + 上 + + + + + 下 + + + + + 左 + + + + + 右 + + + + + SimpleObject指的是只有一种状态(不像普通按钮一样有三种状态),并且其上的元素 + 布局比较简单的Object + + + + + + + + + + + + + + + + + + + + DevExpress风格皮肤 + + + + + DevExpress风格皮肤 + + + + + 新风格皮肤 + + + + + 新风格皮肤 + + + + + 基础皮肤 + + + + + VS2013风格皮肤 + + + + + this theme is just for chrome one quarter style + + + + + for diamond ring style only + + + + + Location of cursor hot spot returnet in WM_NCHITTEST. + + + + + On the screen background or on a dividing line between windows + (same as HTNOWHERE, except that the DefWindowProc function produces a system beep to indicate an error). + + + + + In a window currently covered by another window in the same thread + (the message will be sent to underlying windows in the same thread until one of them returns a code that is not HTTRANSPARENT). + + + + + On the screen background or on a dividing line between windows. + + + + In a client area. + + + In a title bar. + + + In a window menu or in a Close button in a child window. + + + In a size box (same as HTSIZE). + + + In a menu. + + + In a horizontal scroll bar. + + + In the vertical scroll bar. + + + In a Minimize button. + + + In a Maximize button. + + + In the left border of a resizable window + (the user can click the mouse to resize the window horizontally). + + + + In the right border of a resizable window + (the user can click the mouse to resize the window horizontally). + + + + In the upper-horizontal border of a window. + + + In the upper-left corner of a window border. + + + In the upper-right corner of a window border. + + + In the lower-horizontal border of a resizable window + (the user can click the mouse to resize the window vertically). + + + In the lower-left corner of a border of a resizable window + (the user can click the mouse to resize the window diagonally). + + + In the lower-right corner of a border of a resizable window + (the user can click the mouse to resize the window diagonally). + + + In the border of a window that does not have a sizing border. + + + In a Close button. + + + In a Help button. + + + + Contains the new coordinates of a window that has been moved or resized, that is, it is the proposed new window coordinates. + + + + + Contains the coordinates of the window before it was moved or resized. + + + + + Contains the coordinates of the window's client area before the window was moved or resized. + + + + + Pointer to a WINDOWPOS structure that contains the size and position values specified in the operation that moved or resized the window. + + + + + + + + + + 是否在这个按钮上按下了鼠标未释放 + + + + + 是否可见 + + + + + + + + + + 画两次可以加深颜色 + + + + + 用于在click事件中传回数据 + + + + + 获取或设置是否将绘制完全限制在指定的区域内 + + + + + + + + + + + + + + + + + Adapter for WinForms brushes objects for core. + + + + + The actual WinForms brush instance. + + + + + If to dispose the brush when is called.
+ Ignore dispose for cached brushes. +
+
+ + + Init. + + + + + The actual WinForms brush instance. + + + + + Adapter for WinForms context menu for core. + + + + + the underline win forms context menu + + + + + Init. + + + + + Adapter for WinForms Control for core. + + + + + the underline win forms control. + + + + + Use GDI+ text rendering to measure/draw text. + + + + + Init. + + + + + Get the underline win forms control + + + + + Adapter for WinForms Font object for core. + + + + + the underline win-forms font. + + + + + a handle to this Font. + + + + + the vertical offset of the font underline location from the top of the font. + + + + + Cached font height. + + + + + Cached font whitespace width. + + + + + Init. + + + + + the underline win-forms font. + + + + + Get the handle to this Font. + + + + + Set font metrics to be cached for the font for future use. + + the full height of the font + the vertical offset of the font underline location from the top of the font. + + + + Adapter for WinForms Font family object for core. + + + + + the underline win-forms font. + + + + + Init. + + + + + the underline win-forms font family. + + + + + Adapter for WinForms Graphics for core. + + + + + used for calculation. + + + + + used for calculation. + + + + + Used for GDI+ measure string. + + + + + The string format to use for measuring strings for GDI+ text rendering + + + + + The string format to use for rendering strings for GDI+ text rendering + + + + + The wrapped WinForms graphics object + + + + + Use GDI+ text rendering to measure/draw text. + + + + + the initialized HDC used + + + + + if to release the graphics object on dispose + + + + + If text alignment was set to RTL + + + + + Init static resources. + + + + + Init. + + the win forms graphics object to use + Use GDI+ text rendering to measure/draw text + optional: if to release the graphics object on dispose (default - false) + + + + Release current HDC to be able to use methods. + + + + + Init HDC for the current graphics object to be used to call GDI directly. + + + + + Set a resource (e.g. a font) for the specified device context. + WARNING: Calling Font.ToHfont() many times without releasing the font handle crashes the app. + + + + + Set the text color of the device context. + + + + + Change text align to Left-to-Right or Right-to-Left if required. + + + + + Special draw logic to draw transparent text using GDI.
+ 1. Create in-memory DC
+ 2. Copy background to in-memory DC
+ 3. Draw the text to in-memory DC
+ 4. Copy the in-memory DC to the proper location with alpha blend
+
+
+ + + Change text align to Left-to-Right or Right-to-Left if required. + + + + + Adapter for WinForms graphics path object for core. + + + + + The actual WinForms graphics path instance. + + + + + the last point added to the path to begin next segment from + + + + + The actual WinForms graphics path instance. + + + + + Get arc start angle for the given corner. + + + + + Adapter for WinForms Image object for core. + + + + + the underline win-forms image. + + + + + Initializes a new instance of the class. + + + + + the underline win-forms image. + + + + + Adapter for WinForms pens objects for core. + + + + + The actual WinForms brush instance. + + + + + Init. + + + + + The actual WinForms brush instance. + + + + + Adapter for WinForms platforms. + + + + + Singleton instance of global adapter. + + + + + Init installed font families and set default font families mapping. + + + + + Singleton instance of global adapter. + + + + + Low level handling of Html Renderer logic, this class is used by , + , and .
+
+ +
+ + + The internal core html container + + + + + Use GDI+ text rendering to measure/draw text. + + + + + Init. + + + + + Raised when the user clicks on a link in the html.
+ Allows canceling the execution of the link. +
+
+ + + Raised when html renderer requires refresh of the control hosting (invalidation and re-layout). + + + There is no guarantee that the event will be raised on the main thread, it can be raised on thread-pool thread. + + + + + Raised when Html Renderer request scroll to specific location.
+ This can occur on document anchor click. +
+
+ + + Raised when an error occurred during html rendering.
+
+ + There is no guarantee that the event will be raised on the main thread, it can be raised on thread-pool thread. + +
+ + + Raised when a stylesheet is about to be loaded by file path or URI by link element.
+ This event allows to provide the stylesheet manually or provide new source (file or Uri) to load from.
+ If no alternative data is provided the original source will be used.
+
+
+ + + Raised when an image is about to be loaded by file path or URI.
+ This event allows to provide the image manually, if not handled the image will be loaded from file or download from URI. +
+
+ + + returns page list + + + + + returns page list count + + + + + The internal core html container + + + + + Use GDI+ text rendering to measure/draw text.
+
+ + + GDI+ text rendering is less smooth than GDI text rendering but it natively supports alpha channel + thus allows creating transparent images. + + + While using GDI+ text rendering you can control the text rendering using , note that + using doesn't work well with transparent background. + + +
+ + + the parsed stylesheet data used for handling the html + + + + + Gets or sets a value indicating if anti-aliasing should be avoided for geometry like backgrounds and borders (default - false). + + + + + Gets or sets a value indicating if image asynchronous loading should be avoided (default - false).
+ True - images are loaded synchronously during html parsing.
+ False - images are loaded asynchronously to html parsing when downloaded from URL or loaded from disk.
+
+ + Asynchronously image loading allows to unblock html rendering while image is downloaded or loaded from disk using IO + ports to achieve better performance.
+ Asynchronously image loading should be avoided when the full html content must be available during render, like render to image. +
+
+ + + Gets or sets a value indicating if image loading only when visible should be avoided (default - false).
+ True - images are loaded as soon as the html is parsed.
+ False - images that are not visible because of scroll location are not loaded until they are scrolled to. +
+ + Images late loading improve performance if the page contains image outside the visible scroll area, especially if there is large + amount of images, as all image loading is delayed (downloading and loading into memory).
+ Late image loading may effect the layout and actual size as image without set size will not have actual size until they are loaded + resulting in layout change during user scroll.
+ Early image loading may also effect the layout if image without known size above the current scroll location are loaded as they + will push the html elements down. +
+
+ + + Is content selection is enabled for the rendered html (default - true).
+ If set to 'false' the rendered html will be static only with ability to click on links. +
+
+ + + Is the build-in context menu enabled and will be shown on mouse right click (default - true) + + + + + The scroll offset of the html.
+ This will adjust the rendered html by the given offset so the content will be "scrolled".
+
+ + Element that is rendered at location (50,100) with offset of (0,200) will not be rendered as it + will be at -100 therefore outside the client rectangle. + +
+ + + The top-left most location of the rendered html.
+ This will offset the top-left corner of the rendered html. +
+
+ + + The max width and height of the rendered html.
+ The max width will effect the html layout wrapping lines, resize images and tables where possible.
+ The max height does NOT effect layout, but will not render outside it (clip).
+ can be exceed the max size by layout restrictions (unwrappable line, set image size, etc.).
+ Set zero for unlimited (width\height separately).
+
+
+ + + The actual size of the rendered html (after layout) + + + + + Get the currently selected text segment in the html. + + + + + Copy the currently selected html segment with style. + + + + + Init with optional document and stylesheet. + + the html to init with, init empty if not given + optional: the stylesheet to init with, init default if not given + + + + Get html from the current DOM tree with style if requested. + + Optional: controls the way styles are generated when html is generated (default: ) + generated html + + + + Get attribute value of element at the given x,y location by given key.
+ If more than one element exist with the attribute at the location the inner most is returned. +
+ the location to find the attribute at + the attribute key to get value by + found attribute value or null if not found +
+ + + Get all the links in the HTML with the element rectangle and href data. + + collection of all the links in the HTML + + + + Get css link href at the given x,y location. + + the location to find the link at + css link href if exists or null + + + + Get the rectangle of html element as calculated by html layout.
+ Element if found by id (id attribute on the html element).
+ Note: to get the screen rectangle you need to adjust by the hosting control.
+
+ the id of the element to get its rectangle + the rectangle of the element or null if not found +
+ + + Measures the bounds of box and children, recursively. + + Device context to draw + + + + Render the html using the given device. + + the device to use to render + + + + Render the html using the given printer device. + + the printer device to use to render + + + + + Handle mouse down to handle selection. + + the control hosting the html to invalidate + the mouse event args + + + + Handle mouse up to handle selection and link click. + + the control hosting the html to invalidate + the mouse event args + + + + Handle mouse double click to select word under the mouse. + + the control hosting the html to set cursor and invalidate + mouse event args + + + + Handle mouse move to handle hover cursor and text selection. + + the control hosting the html to set cursor and invalidate + the mouse event args + + + + Handle mouse leave to handle hover cursor. + + the control hosting the html to set cursor and invalidate + + + + Handle key down event for selection and copy. + + the control hosting the html to invalidate + the pressed key + + + + + + + + + Create HtmlRenderer mouse event from win forms mouse event. + + + + + Create HtmlRenderer key event from win forms key event. + + + + + Provides HTML rendering using the text property.
+ WinForms control that will render html content in it's client rectangle.
+ Using and client can control how the html content effects the + size of the label. Either case scrollbars are never shown and html content outside of client bounds will be clipped. + and with AutoSize can limit the max/min size of the control
+ The control will handle mouse and keyboard events on it to support html text selection, copy-paste and mouse clicks.
+ + The major differential to use HtmlPanel or HtmlLabel is size and scrollbars.
+ If the size of the control depends on the html content the HtmlLabel should be used.
+ If the size is set by some kind of layout then HtmlPanel is more suitable, also shows scrollbars if the html contents is larger than the control client rectangle.
+
+ +

AutoSize:

+ AutoSize = AutoSizeHeightOnly = false
+ The label size will not change by the html content. MaximumSize and MinimumSize are ignored.
+
+ AutoSize = true
+ The width and height is adjustable by the html content, the width will be longest line in the html, MaximumSize.Width will restrict it but it can be lower than that.
+
+ AutoSizeHeightOnly = true
+ The width of the label is set and will not change by the content, the height is adjustable by the html content with restrictions to the MaximumSize.Height and MinimumSize.Height values.
+
+ +

LinkClicked event

+ Raised when the user clicks on a link in the html.
+ Allows canceling the execution of the link. +
+ +

StylesheetLoad event:

+ Raised when aa stylesheet is about to be loaded by file path or URI by link element.
+ This event allows to provide the stylesheet manually or provide new source (file or uri) to load from.
+ If no alternative data is provided the original source will be used.
+
+ +

ImageLoad event:

+ Raised when an image is about to be loaded by file path or URI.
+ This event allows to provide the image manually, if not handled the image will be loaded from file or download from URI. +
+ +

RenderError event:

+ Raised when an error occurred during html rendering.
+
+
+
+ + + Underline html container instance. + + + + + The current border style of the control + + + + + the raw base stylesheet data used in the control + + + + + the base stylesheet data used in the panel + + + + + the current html text set in the control + + + + + is to handle auto size of the control height only + + + + + If to use cursors defined by the operating system or .NET cursors + + + + + The text rendering hint to be used for text rendering. + + + + + Creates a new HTML Label + + + + + Raised when the BorderStyle property value changes. + + + + + Raised when the user clicks on a link in the html.
+ Allows canceling the execution of the link. +
+
+ + + Raised when an error occurred during html rendering.
+
+
+ + + Raised when aa stylesheet is about to be loaded by file path or URI by link element.
+ This event allows to provide the stylesheet manually or provide new source (file or uri) to load from.
+ If no alternative data is provided the original source will be used.
+
+
+ + + Raised when an image is about to be loaded by file path or URI.
+ This event allows to provide the image manually, if not handled the image will be loaded from file or download from URI. +
+
+ + + Gets or sets a value indicating if anti-aliasing should be avoided for geometry like backgrounds and borders (default - false). + + + + + Use GDI+ text rendering to measure/draw text.
+
+ + + GDI+ text rendering is less smooth than GDI text rendering but it natively supports alpha channel + thus allows creating transparent images. + + + While using GDI+ text rendering you can control the text rendering using , note that + using doesn't work well with transparent background. + + +
+ + + The text rendering hint to be used for text rendering. + + + + + If to use cursors defined by the operating system or .NET cursors + + + + + Gets or sets the border style. + + The border style. + + + + Is content selection is enabled for the rendered html (default - true).
+ If set to 'false' the rendered html will be static only with ability to click on links. +
+
+ + + Is the build-in context menu enabled and will be shown on mouse right click (default - true) + + + + + Set base stylesheet to be used by html rendered in the panel. + + + + + Automatically sets the size of the label by content size + + + + + Automatically sets the height of the label by content height (width is not effected). + + + + + Gets or sets the max size the control get be set by or . + + An ordered pair of type representing the width and height of a rectangle. + + + + Gets or sets the min size the control get be set by or . + + An ordered pair of type representing the width and height of a rectangle. + + + + Gets or sets the html of this control. + + + + + Get the currently selected text segment in the html. + + + + + Copy the currently selected html segment with style. + + + + + Get html from the current DOM tree with inline style. + + generated html + + + + Get the rectangle of html element as calculated by html layout.
+ Element if found by id (id attribute on the html element).
+ Note: to get the screen rectangle you need to adjust by the hosting control.
+
+ the id of the element to get its rectangle + the rectangle of the element or null if not found +
+ + + Override to support border for the control. + + + + + Perform the layout of the html in the control. + + + + + Perform paint of the html in the control. + + + + + Handle mouse move to handle hover cursor and text selection. + + + + + Handle mouse down to handle selection. + + + + + Handle mouse leave to handle cursor change. + + + + + Handle mouse up to handle selection and link click. + + + + + Handle mouse double click to select word under the mouse. + + + + + Raises the event. + + + + + Propagate the LinkClicked event from root container. + + + + + Propagate the Render Error event from root container. + + + + + Propagate the stylesheet load event from root container. + + + + + Propagate the image load event from root container. + + + + + Handle html renderer invalidate and re-layout as requested. + + + + + Override the proc processing method to set OS specific hand cursor. + + The Windows to process. + + + + Release the html container resources. + + + + + Not applicable. + + + + + Not applicable. + + + + + Not applicable. + + + + + Not applicable. + + + + + Not applicable. + + + + + Not applicable. + + + + + Provides HTML rendering using the text property.
+ WinForms control that will render html content in it's client rectangle.
+ If is true and the layout of the html resulted in its content beyond the client bounds + of the panel it will show scrollbars (horizontal/vertical) allowing to scroll the content.
+ If is false html content outside the client bounds will be clipped.
+ The control will handle mouse and keyboard events on it to support html text selection, copy-paste and mouse clicks.
+ + The major differential to use HtmlPanel or HtmlLabel is size and scrollbars.
+ If the size of the control depends on the html content the HtmlLabel should be used.
+ If the size is set by some kind of layout then HtmlPanel is more suitable, also shows scrollbars if the html contents is larger than the control client rectangle.
+
+ +

AutoScroll:

+ Allows showing scrollbars if html content is placed outside the visible boundaries of the panel. +
+ +

LinkClicked event:

+ Raised when the user clicks on a link in the html.
+ Allows canceling the execution of the link. +
+ +

StylesheetLoad event:

+ Raised when a stylesheet is about to be loaded by file path or URI by link element.
+ This event allows to provide the stylesheet manually or provide new source (file or uri) to load from.
+ If no alternative data is provided the original source will be used.
+
+ +

ImageLoad event:

+ Raised when an image is about to be loaded by file path or URI.
+ This event allows to provide the image manually, if not handled the image will be loaded from file or download from URI. +
+ +

RenderError event:

+ Raised when an error occurred during html rendering.
+
+
+
+ + + Underline html container instance. + + + + + The current border style of the control + + + + + the raw base stylesheet data used in the control + + + + + the base stylesheet data used in the control + + + + + the current html text set in the control + + + + + If to use cursors defined by the operating system or .NET cursors + + + + + The text rendering hint to be used for text rendering. + + + + + The last position of the scrollbars to know if it has changed to update mouse + + + + + Creates a new HtmlPanel and sets a basic css for it's styling. + + + + + + + + + + Raised when the BorderStyle property value changes. + + + + + Raised when the user clicks on a link in the html.
+ Allows canceling the execution of the link. +
+
+ + + Raised when an error occurred during html rendering.
+
+
+ + + Raised when a stylesheet is about to be loaded by file path or URI by link element.
+ This event allows to provide the stylesheet manually or provide new source (file or uri) to load from.
+ If no alternative data is provided the original source will be used.
+
+
+ + + Raised when an image is about to be loaded by file path or URI.
+ This event allows to provide the image manually, if not handled the image will be loaded from file or download from URI. +
+
+ + + Gets or sets a value indicating if anti-aliasing should be avoided for geometry like backgrounds and borders (default - false). + + + + + Gets or sets a value indicating if image loading only when visible should be avoided (default - false).
+ True - images are loaded as soon as the html is parsed.
+ False - images that are not visible because of scroll location are not loaded until they are scrolled to. +
+ + Images late loading improve performance if the page contains image outside the visible scroll area, especially if there is large + amount of images, as all image loading is delayed (downloading and loading into memory).
+ Late image loading may effect the layout and actual size as image without set size will not have actual size until they are loaded + resulting in layout change during user scroll.
+ Early image loading may also effect the layout if image without known size above the current scroll location are loaded as they + will push the html elements down. +
+
+ + + Use GDI+ text rendering to measure/draw text.
+
+ + + GDI+ text rendering is less smooth than GDI text rendering but it natively supports alpha channel + thus allows creating transparent images. + + + While using GDI+ text rendering you can control the text rendering using , note that + using doesn't work well with transparent background. + + +
+ + + The text rendering hint to be used for text rendering. + + + + + If to use cursors defined by the operating system or .NET cursors + + + + + Gets or sets the border style. + + The border style. + + + + Is content selection is enabled for the rendered html (default - true).
+ If set to 'false' the rendered html will be static only with ability to click on links. +
+
+ + + Is the build-in context menu enabled and will be shown on mouse right click (default - true) + + + + + Set base stylesheet to be used by html rendered in the panel. + + + + + Gets or sets a value indicating whether the container enables the user to scroll to any controls placed outside of its visible boundaries. + + + + + Gets or sets the text of this panel + + + + + + + + + + Get the currently selected text segment in the html. + + + + + Copy the currently selected html segment with style. + + + + + Get html from the current DOM tree with inline style. + + generated html + + + + Get the rectangle of html element as calculated by html layout.
+ Element if found by id (id attribute on the html element).
+ Note: to get the screen rectangle you need to adjust by the hosting control.
+
+ the id of the element to get its rectangle + the rectangle of the element or null if not found +
+ + + Adjust the scrollbar of the panel on html element by the given id.
+ The top of the html element rectangle will be at the top of the panel, if there + is not enough height to scroll to the top the scroll will be at maximum.
+
+ the id of the element to scroll to +
+ + + Override to support border for the control. + + + + + Perform the layout of the html in the control. + + + + + Perform html container layout by the current panel client size. + + + + + Perform paint of the html in the control. + + + + + Set focus on the control for keyboard scrollbars handling. + + + + + Handle mouse move to handle hover cursor and text selection. + + + + + Handle mouse leave to handle cursor change. + + + + + Handle mouse down to handle selection. + + + + + Handle mouse up to handle selection and link click. + + + + + Handle mouse double click to select word under the mouse. + + + + + Handle key down event for selection, copy and scrollbars handling. + + + + + Raises the event. + + + + + Propagate the LinkClicked event from root container. + + + + + Propagate the Render Error event from root container. + + + + + Propagate the stylesheet load event from root container. + + + + + Propagate the image load event from root container. + + + + + Handle html renderer invalidate and re-layout as requested. + + + + + On html renderer scroll request adjust the scrolling of the panel to the requested location. + + + + + Adjust the scrolling of the panel to the requested location. + + the location to adjust the scroll to + + + + call mouse move to handle paint after scroll or html change affecting mouse cursor. + + + + + Used to add arrow keys to the handled keys in . + + + + + Override the proc processing method to set OS specific hand cursor. + + The Windows to process. + + + + Release the html container resources. + + + + + Not applicable. + + + + + Not applicable. + + + + + Not applicable. + + + + + Not applicable. + + + + + Not applicable. + + + + + Not applicable. + + + + + Standalone static class for simple and direct HTML rendering.
+ For WinForms UI prefer using HTML controls: or .
+ For low-level control and performance consider using .
+
+ + + GDI vs. GDI+ text rendering
+ Windows supports two text rendering technologies: GDI and GDI+.
+ GDI is older, has better performance and looks better on standard monitors but doesn't support alpha channel for transparency.
+ GDI+ is newer, device independent so work better for printers but is slower and looks worse on monitors.
+ HtmlRender supports both GDI and GDI+ text rendering to accommodate different needs, GDI+ text rendering methods have "GdiPlus" suffix + in their name where GDI do not.
+
+ + Rendering to image
+ See https://htmlrenderer.codeplex.com/wikipage?title=Image%20generation
+ Because of GDI text rendering issue with alpha channel clear type text rendering rendering to image requires special handling.
+ Solid color background - generate an image where the background is filled with solid color and all the html is rendered on top + of the background color, GDI text rendering will be used. (RenderToImage method where the first argument is html string)
+ Image background - render html on top of existing image with whatever currently exist but it cannot have transparent pixels, + GDI text rendering will be used. (RenderToImage method where the first argument is Image object)
+ Transparent background - render html to empty image using GDI+ text rendering, the generated image can be transparent. + Text rendering can be controlled using , note that + doesn't render well on transparent background. (RenderToImageGdiPlus method)
+
+ + Overwrite stylesheet resolution
+ Exposed by optional "stylesheetLoad" delegate argument.
+ Invoked when a stylesheet is about to be loaded by file path or URL in 'link' element.
+ Allows to overwrite the loaded stylesheet by providing the stylesheet data manually, or different source (file or URL) to load from.
+ Example: The stylesheet 'href' can be non-valid URI string that is interpreted in the overwrite delegate by custom logic to pre-loaded stylesheet object
+ If no alternative data is provided the original source will be used.
+
+ + Overwrite image resolution
+ Exposed by optional "imageLoad" delegate argument.
+ Invoked when an image is about to be loaded by file path, URL or inline data in 'img' element or background-image CSS style.
+ Allows to overwrite the loaded image by providing the image object manually, or different source (file or URL) to load from.
+ Example: image 'src' can be non-valid string that is interpreted in the overwrite delegate by custom logic to resource image object
+ Example: image 'src' in the html is relative - the overwrite intercepts the load and provide full source URL to load the image from
+ Example: image download requires authentication - the overwrite intercepts the load, downloads the image to disk using custom code and provide + file path to load the image from.
+ If no alternative data is provided the original source will be used.
+ Note: Cannot use asynchronous scheme overwrite scheme.
+
+
+ + + Simple rendering
+ HtmlRender.Render(g, "Hello World]]>");
+ HtmlRender.Render(g, "Hello World]]>", 10, 10, 500, CssData.Parse("body {font-size: 20px}")");
+
+ + Image rendering
+ HtmlRender.RenderToImage("Hello World]]>", new Size(600,400));
+ HtmlRender.RenderToImage("Hello World]]>", 600);
+ HtmlRender.RenderToImage(existingImage, "Hello World]]>");
+
+
+
+ + + Adds a font family to be used in html rendering.
+ The added font will be used by all rendering function including and all WinForms controls. +
+ + The given font family instance must be remain alive while the renderer is in use.
+ If loaded to then the collection must be alive.
+ If loaded from file then the file must not be deleted. +
+ The font family to add. +
+ + + Adds a font mapping from to iff the is not found.
+ When the font is used in rendered html and is not found in existing + fonts (installed or added) it will be replaced by .
+
+ + This fonts mapping can be used as a fallback in case the requested font is not installed in the client system. + + the font family to replace + the font family to replace with +
+ + + Parse the given stylesheet to object.
+ If is true the parsed css blocks are added to the + default css data (as defined by W3), merged if class name already exists. If false only the data in the given stylesheet is returned. +
+ the stylesheet source to parse + true - combine the parsed css data with default css data, false - return only the parsed css data + the parsed css data +
+ + + Measure the size (width and height) required to draw the given html under given max width restriction.
+ If no max width restriction is given the layout will use the maximum possible width required by the content, + it can be the longest text line or full image width.
+ Use GDI text rendering, note has no effect. +
+ Device to use for measure + HTML source to render + optional: bound the width of the html to render in (default - 0, unlimited) + optional: the style to use for html rendering (default - use W3 default style) + optional: can be used to overwrite stylesheet resolution logic + optional: can be used to overwrite image resolution logic + the size required for the html +
+ + + Measure the size (width and height) required to draw the given html under given max width restriction.
+ If no max width restriction is given the layout will use the maximum possible width required by the content, + it can be the longest text line or full image width.
+ Use GDI+ text rending, use to control text rendering. +
+ Device to use for measure + HTML source to render + optional: bound the width of the html to render in (default - 0, unlimited) + optional: the style to use for html rendering (default - use W3 default style) + optional: can be used to overwrite stylesheet resolution logic + optional: can be used to overwrite image resolution logic + the size required for the html +
+ + + Renders the specified HTML source on the specified location and max width restriction.
+ Use GDI text rendering, note has no effect.
+ If is zero the html will use all the required width, otherwise it will perform line + wrap as specified in the html
+ Returned is the actual width and height of the rendered html.
+
+ Device to render with + HTML source to render + optional: the left most location to start render the html at (default - 0) + optional: the top most location to start render the html at (default - 0) + optional: bound the width of the html to render in (default - 0, unlimited) + optional: the style to use for html rendering (default - use W3 default style) + optional: can be used to overwrite stylesheet resolution logic + optional: can be used to overwrite image resolution logic + the actual size of the rendered html +
+ + + Renders the specified HTML source on the specified location and max size restriction.
+ Use GDI text rendering, note has no effect.
+ If .Width is zero the html will use all the required width, otherwise it will perform line + wrap as specified in the html
+ If .Height is zero the html will use all the required height, otherwise it will clip at the + given max height not rendering the html below it.
+ Returned is the actual width and height of the rendered html.
+
+ Device to render with + HTML source to render + the top-left most location to start render the html at + the max size of the rendered html (if height above zero it will be clipped) + optional: the style to use for html rendering (default - use W3 default style) + optional: can be used to overwrite stylesheet resolution logic + optional: can be used to overwrite image resolution logic + the actual size of the rendered html +
+ + + Renders the specified HTML source on the specified location and max size restriction.
+ Use GDI+ text rending, use to control text rendering.
+ If is zero the html will use all the required width, otherwise it will perform line + wrap as specified in the html
+ Returned is the actual width and height of the rendered html.
+
+ Device to render with + HTML source to render + optional: the left most location to start render the html at (default - 0) + optional: the top most location to start render the html at (default - 0) + optional: bound the width of the html to render in (default - 0, unlimited) + optional: the style to use for html rendering (default - use W3 default style) + optional: can be used to overwrite stylesheet resolution logic + optional: can be used to overwrite image resolution logic + the actual size of the rendered html +
+ + + Renders the specified HTML source on the specified location and max size restriction.
+ Use GDI+ text rending, use to control text rendering.
+ If .Width is zero the html will use all the required width, otherwise it will perform line + wrap as specified in the html
+ If .Height is zero the html will use all the required height, otherwise it will clip at the + given max height not rendering the html below it.
+ Returned is the actual width and height of the rendered html.
+
+ Device to render with + HTML source to render + the top-left most location to start render the html at + the max size of the rendered html (if height above zero it will be clipped) + optional: the style to use for html rendering (default - use W3 default style) + optional: can be used to overwrite stylesheet resolution logic + optional: can be used to overwrite image resolution logic + the actual size of the rendered html +
+ + + Renders the specified HTML on top of the given image.
+ will contain the rendered html in it on top of original content.
+ must not contain transparent pixels as it will corrupt the rendered html text.
+ The HTML will be layout by the given image size but may be clipped if cannot fit.
+ See "Rendering to image" remarks section on .
+
+ the image to render the html on + HTML source to render + optional: the top-left most location to start render the html at (default - 0,0) + optional: the style to use for html rendering (default - use W3 default style) + optional: can be used to overwrite stylesheet resolution logic + optional: can be used to overwrite image resolution logic +
+ + + Renders the specified HTML on top of the given image.
+ will contain the rendered html in it on top of original content.
+ must not contain transparent pixels as it will corrupt the rendered html text.
+ See "Rendering to image" remarks section on .
+
+ the image to render the html on + HTML source to render + the top-left most location to start render the html at + the max size of the rendered html (if height above zero it will be clipped) + optional: the style to use for html rendering (default - use W3 default style) + optional: can be used to overwrite stylesheet resolution logic + optional: can be used to overwrite image resolution logic +
+ + + Renders the specified HTML into a new image of the requested size.
+ The HTML will be layout by the given size but will be clipped if cannot fit.
+

+ Limitation: The image cannot have transparent background, by default it will be white.
+ See "Rendering to image" remarks section on .
+

+
+ HTML source to render + The size of the image to render into, layout html by width and clipped by height + optional: the color to fill the image with (default - white) + optional: the style to use for html rendering (default - use W3 default style) + optional: can be used to overwrite stylesheet resolution logic + optional: can be used to overwrite image resolution logic + the generated image of the html + if is . +
+ + + Renders the specified HTML into a new image of unknown size that will be determined by max width/height and HTML layout.
+ If is zero the html will use all the required width, otherwise it will perform line + wrap as specified in the html
+ If is zero the html will use all the required height, otherwise it will clip at the + given max height not rendering the html below it.
+

+ Limitation: The image cannot have transparent background, by default it will be white.
+ See "Rendering to image" remarks section on .
+

+
+ HTML source to render + optional: the max width of the rendered html, if not zero and html cannot be layout within the limit it will be clipped + optional: the max height of the rendered html, if not zero and html cannot be layout within the limit it will be clipped + optional: the color to fill the image with (default - white) + optional: the style to use for html rendering (default - use W3 default style) + optional: can be used to overwrite stylesheet resolution logic + optional: can be used to overwrite image resolution logic + the generated image of the html + if is . +
+ + + Renders the specified HTML into a new image of unknown size that will be determined by min/max width/height and HTML layout.
+ If is zero the html will use all the required width, otherwise it will perform line + wrap as specified in the html
+ If is zero the html will use all the required height, otherwise it will clip at the + given max height not rendering the html below it.
+ If (Width/Height) is above zero the rendered image will not be smaller than the given min size.
+

+ Limitation: The image cannot have transparent background, by default it will be white.
+ See "Rendering to image" remarks section on .
+

+
+ HTML source to render + optional: the min size of the rendered html (zero - not limit the width/height) + optional: the max size of the rendered html, if not zero and html cannot be layout within the limit it will be clipped (zero - not limit the width/height) + optional: the color to fill the image with (default - white) + optional: the style to use for html rendering (default - use W3 default style) + optional: can be used to overwrite stylesheet resolution logic + optional: can be used to overwrite image resolution logic + the generated image of the html + if is . +
+ + + Renders the specified HTML into a new image of the requested size.
+ The HTML will be layout by the given size but will be clipped if cannot fit.
+ The generated image have transparent background that the html is rendered on.
+ GDI+ text rending can be controlled by providing .
+ See "Rendering to image" remarks section on .
+
+ HTML source to render + The size of the image to render into, layout html by width and clipped by height + optional: (default - SingleBitPerPixelGridFit) + optional: the style to use for html rendering (default - use W3 default style) + optional: can be used to overwrite stylesheet resolution logic + optional: can be used to overwrite image resolution logic + the generated image of the html +
+ + + Renders the specified HTML into a new image of unknown size that will be determined by max width/height and HTML layout.
+ If is zero the html will use all the required width, otherwise it will perform line + wrap as specified in the html
+ If is zero the html will use all the required height, otherwise it will clip at the + given max height not rendering the html below it.
+ The generated image have transparent background that the html is rendered on.
+ GDI+ text rending can be controlled by providing .
+ See "Rendering to image" remarks section on .
+
+ HTML source to render + optional: the max width of the rendered html, if not zero and html cannot be layout within the limit it will be clipped + optional: the max height of the rendered html, if not zero and html cannot be layout within the limit it will be clipped + optional: (default - SingleBitPerPixelGridFit) + optional: the style to use for html rendering (default - use W3 default style) + optional: can be used to overwrite stylesheet resolution logic + optional: can be used to overwrite image resolution logic + the generated image of the html +
+ + + Renders the specified HTML into a new image of unknown size that will be determined by min/max width/height and HTML layout.
+ If is zero the html will use all the required width, otherwise it will perform line + wrap as specified in the html
+ If is zero the html will use all the required height, otherwise it will clip at the + given max height not rendering the html below it.
+ If (Width/Height) is above zero the rendered image will not be smaller than the given min size.
+ The generated image have transparent background that the html is rendered on.
+ GDI+ text rending can be controlled by providing .
+ See "Rendering to image" remarks section on .
+
+ HTML source to render + optional: the min size of the rendered html (zero - not limit the width/height) + optional: the max size of the rendered html, if not zero and html cannot be layout within the limit it will be clipped (zero - not limit the width/height) + optional: (default - SingleBitPerPixelGridFit) + optional: the style to use for html rendering (default - use W3 default style) + optional: can be used to overwrite stylesheet resolution logic + optional: can be used to overwrite image resolution logic + the generated image of the html +
+ + + Measure the size (width and height) required to draw the given html under given width and height restrictions.
+
+ Device to use for measure + HTML source to render + optional: bound the width of the html to render in (default - 0, unlimited) + optional: the style to use for html rendering (default - use W3 default style) + true - use GDI+ text rendering, false - use GDI text rendering + optional: can be used to overwrite stylesheet resolution logic + optional: can be used to overwrite image resolution logic + the size required for the html +
+ + + Measure the size of the html by performing layout under the given restrictions. + + the html to calculate the layout for + the minimal size of the rendered html (zero - not limit the width/height) + the maximum size of the rendered html, if not zero and html cannot be layout within the limit it will be clipped (zero - not limit the width/height) + return: the size of the html to be rendered within the min/max limits + + + + Renders the specified HTML source on the specified location and max size restriction.
+ If .Width is zero the html will use all the required width, otherwise it will perform line + wrap as specified in the html
+ If .Height is zero the html will use all the required height, otherwise it will clip at the + given max height not rendering the html below it.
+ Clip the graphics so the html will not be rendered outside the max height bound given.
+ Returned is the actual width and height of the rendered html.
+
+ Device to render with + HTML source to render + the top-left most location to start render the html at + the max size of the rendered html (if height above zero it will be clipped) + optional: the style to use for html rendering (default - use W3 default style) + true - use GDI+ text rendering, false - use GDI text rendering + optional: can be used to overwrite stylesheet resolution logic + optional: can be used to overwrite image resolution logic + the actual size of the rendered html +
+ + + Renders the specified HTML source on the specified location and max size restriction.
+ If .Width is zero the html will use all the required width, otherwise it will perform line + wrap as specified in the html
+ If .Height is zero the html will use all the required height, otherwise it will clip at the + given max height not rendering the html below it.
+ Returned is the actual width and height of the rendered html.
+
+ Device to render with + HTML source to render + the top-left most location to start render the html at + the max size of the rendered html (if height above zero it will be clipped) + optional: the style to use for html rendering (default - use W3 default style) + true - use GDI+ text rendering, false - use GDI text rendering + optional: can be used to overwrite stylesheet resolution logic + optional: can be used to overwrite image resolution logic + the actual size of the rendered html +
+ + + Copy all the bitmap bits from memory bitmap buffer to the given image. + + the source memory bitmap buffer to copy from + the destination bitmap image to copy to + + + + Provides HTML rendering on the tooltips. + + + + + the container to render and handle the html shown in the tooltip + + + + + the raw base stylesheet data used in the control + + + + + the base stylesheet data used in the panel + + + + + The text rendering hint to be used for text rendering. + + + + + The CSS class used for tooltip html root div + + + + + the control that the tooltip is currently showing on.
+ Used for link handling. +
+
+ + + timer used to handle mouse move events when mouse is over the tooltip.
+ Used for link handling. +
+
+ + + the handle of the actual tooltip window used to know when the tooltip is hidden
+ Used for link handling. +
+
+ + + If to handle links in the tooltip (default: false).
+ When set to true the mouse pointer will change to hand when hovering over a tooltip and + if clicked the event will be raised although the tooltip will be closed. +
+
+ + + Init. + + + + + Raised when the user clicks on a link in the html.
+ Allows canceling the execution of the link. +
+
+ + + Raised when an error occurred during html rendering.
+
+
+ + + Raised when aa stylesheet is about to be loaded by file path or URI by link element.
+ This event allows to provide the stylesheet manually or provide new source (file or uri) to load from.
+ If no alternative data is provided the original source will be used.
+
+
+ + + Raised when an image is about to be loaded by file path or URI.
+ This event allows to provide the image manually, if not handled the image will be loaded from file or download from URI. +
+
+ + + Use GDI+ text rendering to measure/draw text.
+
+ + + GDI+ text rendering is less smooth than GDI text rendering but it natively supports alpha channel + thus allows creating transparent images. + + + While using GDI+ text rendering you can control the text rendering using , note that + using doesn't work well with transparent background. + + +
+ + + The text rendering hint to be used for text rendering. + + + + + Set base stylesheet to be used by html rendered in the panel. + + + + + The CSS class used for tooltip html root div (default: htmltooltip)
+ Setting to 'null' clear base style on the tooltip.
+ Set custom class found in to change the base style of the tooltip. +
+
+ + + If to handle links in the tooltip (default: false).
+ When set to true the mouse pointer will change to hand when hovering over a tooltip and + if clicked the event will be raised although the tooltip will be closed. +
+
+ + + Gets or sets the max size the tooltip. + + An ordered pair of type representing the width and height of a rectangle. + + + + On tooltip appear set the html by the associated control, layout and set the tooltip size by the html size. + + + + + Draw the html using the tooltip graphics. + + + + + Adjust the location of the tooltip window to the location of the mouse and handle + if the tooltip window will try to appear outside the boundaries of the control. + + the control the tooltip is appearing on + the size of the tooltip window + + + + Propagate the LinkClicked event from root container. + + + + + Propagate the Render Error event from root container. + + + + + Propagate the stylesheet load event from root container. + + + + + Propagate the image load event from root container. + + + + + Raised on link handling timer tick, used for: + 1. Know when the tooltip is hidden by checking the visibility of the tooltip window. + 2. Call HandleMouseMove so the mouse cursor will react if over a link element. + 3. Call HandleMouseDown and HandleMouseUp to simulate click on a link if one was clicked. + + + + + Unsubscribe from events and dispose of . + + + + + Helper to encode and set HTML fragment to clipboard.
+ See http://theartofdev.wordpress.com/2012/11/11/setting-html-and-plain-text-formatting-to-clipboard/.
+ . +
+ + The MIT License (MIT) Copyright (c) 2014 Arthur Teplitzki. + +
+ + + The string contains index references to other spots in the string, so we need placeholders so we can compute the offsets.
+ The _ strings are just placeholders. We'll back-patch them actual values afterwards.
+ The string layout () also ensures that it can't appear in the body of the html because the
+ character must be escaped.
+
+
+ + + html comment to point the beginning of html fragment + + + + + html comment to point the end of html fragment + + + + + Used to calculate characters byte count in UTF-8 + + + + + Create with given html and plain-text ready to be used for clipboard or drag and drop.
+ Handle missing ]]> tags, specified start\end segments and Unicode characters. +
+ + + Windows Clipboard works with UTF-8 Unicode encoding while .NET strings use with UTF-16 so for clipboard to correctly + decode Unicode string added to it from .NET we needs to be re-encoded it using UTF-8 encoding. + + + Builds the CF_HTML header correctly for all possible HTMLs
+ If given html contains start/end fragments then it will use them in the header: + hello world]]> + If given html contains html/body tags then it will inject start/end fragments to exclude html/body tags: + hello world]]> + If given html doesn't contain html/body tags then it will inject the tags and start/end fragments properly: + world]]> + In all cases creating a proper CF_HTML header:
+ + + hello world + ]]> + + See format specification here: http://msdn.microsoft.com/library/default.asp?url=/workshop/networking/clipboard/htmlclipboard.asp +
+
+ a html fragment + the plain text +
+ + + Clears clipboard and sets the given HTML and plain text fragment to the clipboard, providing additional meta-information for HTML.
+ See for HTML fragment details.
+
+ + ClipboardHelper.CopyToClipboard("Hello World", "Hello World"); + + a html fragment + the plain text +
+ + + Clears clipboard and sets the given plain text fragment to the clipboard.
+
+ the plain text +
+ + + Generate HTML fragment data string with header that is required for the clipboard. + + the html to generate for + the resulted string + + + + Calculates the number of bytes produced by encoding the string in the string builder in UTF-8 and not .NET default string encoding. + + the string builder to count its string + optional: the start index to calculate from (default - start of string) + optional: the end index to calculate to (default - end of string) + the number of bytes required to encode the string in UTF-8 + + + + Utilities for converting WinForms entities to HtmlRenderer core entities. + + + + + Convert from WinForms point to core point. + + + + + Convert from WinForms point to core point. + + + + + Convert from core point to WinForms point. + + + + + Convert from core point to WinForms point. + + + + + Convert from WinForms size to core size. + + + + + Convert from core size to WinForms size. + + + + + Convert from core size to WinForms size. + + + + + Convert from WinForms rectangle to core rectangle. + + + + + Convert from core rectangle to WinForms rectangle. + + + + + Convert from core rectangle to WinForms rectangle. + + + + + Convert from WinForms color to core color. + + + + + Convert from core color to WinForms color. + + + + + Utility for Win32 API. + + + + + Const for BitBlt copy raster-operation code. + + + + + Const for BitBlt paint raster-operation code. + + + + + Create a compatible memory HDC from the given HDC.
+ The memory HDC can be rendered into without effecting the original HDC.
+ The returned memory HDC and must be released using . +
+ the HDC to create memory HDC from + the width of the memory HDC to create + the height of the memory HDC to create + returns used bitmap memory section that must be released when done with memory HDC + memory HDC +
+ + + Release the given memory HDC and dib section created from . + + Memory HDC to release + bitmap section to release + + + + 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. + + + In conformance with conventions for the RECT structure, the bottom-right coordinates of the returned rectangle are exclusive. In other words, + the pixel at (right, bottom) lies immediately outside the rectangle. + + A handle to the window. + A pointer to a RECT structure that receives the screen coordinates of the upper-left and lower-right corners of the window. + If the function succeeds, the return value is nonzero. + + + + 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. + + + In conformance with conventions for the RECT structure, the bottom-right coordinates of the returned rectangle are exclusive. In other words, + the pixel at (right, bottom) lies immediately outside the rectangle. + + A handle to the window. + RECT structure that receives the screen coordinates of the upper-left and lower-right corners of the window. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents an ARGB (alpha, red, green, blue) color. + + + + + Represents a color that is null. + + 1 + + + + Gets a system-defined color. + + + + + Gets a system-defined color that has an ARGB value of #FF000000. + + + + + Gets a system-defined color that has an ARGB value of #FFFFFFFF. + + + + + Gets a system-defined color that has an ARGB value of #FFF5F5F5. + + + + + Gets a system-defined color that has an ARGB value of #FFD3D3D3. + + + + + Gets the red component value of this structure. + + + + + Gets the green component value of this structure. + + + + + Gets the blue component value of this structure. + + + + + Gets the alpha component value of this structure. + + + + + Specifies whether this structure is uninitialized. + + + This property returns true if this color is uninitialized; otherwise, false. + + 1 + + + + Tests whether two specified structures are equivalent. + + + true if the two structures are equal; otherwise, false. + + + The that is to the left of the equality operator. + + + The that is to the right of the equality operator. + + 3 + + + + Tests whether two specified structures are different. + + + true if the two structures are different; otherwise, false. + + + The that is to the left of the inequality operator. + + + The that is to the right of the inequality operator. + + 3 + + + + Creates a structure from the four ARGB component (alpha, red, green, and blue) values. Although this method allows a 32-bit value to be passed for each component, the value of each component is limited to 8 bits. + + + The that this method creates. + + The alpha component. Valid values are 0 through 255. + The red component. Valid values are 0 through 255. + The green component. Valid values are 0 through 255. + The blue component. Valid values are 0 through 255. + + , , , or is less than 0 or greater than 255. + + 1 + + + + Creates a structure from the specified 8-bit color values (red, green, and blue). The alpha value is implicitly 255 (fully opaque). Although this method allows a 32-bit value to be passed for each color component, the value of each component is limited to 8 bits. + + + The that this method creates. + + + The red component value for the new . Valid values are 0 through 255. + + + The green component value for the new . Valid values are 0 through 255. + + + The blue component value for the new . Valid values are 0 through 255. + + + , , or is less than 0 or greater than 255. + + 1 + + + + Tests whether the specified object is a structure and is equivalent to this + + structure. + + + true if is a structure equivalent to this + + structure; otherwise, false. + + The object to test. + 1 + + + + Returns a hash code for this structure. + + + An integer value that specifies the hash code for this . + + 1 + + + + Converts this structure to a human-readable string. + + + + + Specifies the style of dashed lines drawn with a object. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 自定义 + + + + + Specifies style information applied to text. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Even class for handling keyboard events in . + + + + + is control is pressed + + + + + is 'A' key is pressed + + + + + is 'C' key is pressed + + + + + Init. + + + + + is control is pressed + + + + + is 'A' key is pressed + + + + + is 'C' key is pressed + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Even class for handling keyboard events in . + + + + + Is the left mouse button participated in the event + + + + + Init. + + + + + Is the left mouse button participated in the event + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents an ordered pair of floating-point x- and y-coordinates that defines a point in a two-dimensional plane. + + + + + Represents a new instance of the class with member data left uninitialized. + + 1 + + + + Initializes a new instance of the class with the specified coordinates. + + The horizontal position of the point. + The vertical position of the point. + + + + + + Gets a value indicating whether this is empty. + + + true if both and + + are 0; otherwise, false. + + 1 + + + + Gets or sets the x-coordinate of this . + + + The x-coordinate of this . + + 1 + + + + Gets or sets the y-coordinate of this . + + + The y-coordinate of this . + + 1 + + + + Translates the by the specified + + . + + + The translated . + + + The to translate. + + + The that specifies the numbers to add to the x- and y-coordinates of the + + . + + + + + Translates a by the negative of a specified + + . + + + The translated . + + + The to translate. + + + The that specifies the numbers to subtract from the coordinates of + + . + + + + + Compares two structures. The result specifies whether the values of the + + and properties of the two + + structures are equal. + + + true if the and + + values of the left and right + + structures are equal; otherwise, false. + + + A to compare. + + + A to compare. + + 3 + + + + Determines whether the coordinates of the specified points are not equal. + + + true to indicate the and + + values of and + + are not equal; otherwise, false. + + + A to compare. + + + A to compare. + + 3 + + + + Translates a given by a specified + + . + + + The translated . + + + The to translate. + + + The that specifies the numbers to add to the coordinates of + + . + + + + + Translates a by the negative of a specified size. + + + The translated . + + + The to translate. + + + The that specifies the numbers to subtract from the coordinates of + + . + + + + + Specifies whether this contains the same coordinates as the specified + + . + + + This method returns true if is a and has the same coordinates as this + + . + + + The to test. + + 1 + + + + Returns a hash code for this structure. + + + An integer value that specifies a hash value for this structure. + + 1 + + + + Converts this to a human readable string. + + + A string that represents this . + + 1 + + + + Stores a set of four floating-point numbers that represent the location and size of a rectangle. + + + + + Represents an instance of the class with its members uninitialized. + + + + + Initializes a new instance of the class with the specified location and size. + + The x-coordinate of the upper-left corner of the rectangle. + The y-coordinate of the upper-left corner of the rectangle. + The width of the rectangle. + The height of the rectangle. + + + + Initializes a new instance of the class with the specified location and size. + + A that represents the upper-left corner of the rectangular region. + A that represents the width and height of the rectangular region. + + + + Gets or sets the coordinates of the upper-left corner of this structure. + + A that represents the upper-left corner of this structure. + + + + Gets or sets the size of this . + + A that represents the width and height of this structure. + + + + Gets or sets the x-coordinate of the upper-left corner of this structure. + + + The x-coordinate of the upper-left corner of this structure. + + + + + Gets or sets the y-coordinate of the upper-left corner of this structure. + + + The y-coordinate of the upper-left corner of this structure. + + + + + Gets or sets the width of this structure. + + + The width of this structure. + + + + + Gets or sets the height of this structure. + + + The height of this structure. + + + + + Gets the x-coordinate of the left edge of this structure. + + + The x-coordinate of the left edge of this structure. + + + + + Gets the y-coordinate of the top edge of this structure. + + + The y-coordinate of the top edge of this structure. + + + + + Gets the x-coordinate that is the sum of and + + of this structure. + + + The x-coordinate that is the sum of and + + of this structure. + + + + + Gets the y-coordinate that is the sum of and + + of this structure. + + + The y-coordinate that is the sum of and + + of this structure. + + + + + Tests whether the or + + property of this has a value of zero. + + + This property returns true if the or + + property of this has a value of zero; otherwise, false. + + + + + Tests whether two structures have equal location and size. + + + This operator returns true if the two specified structures have equal + , , , and properties. + + + The structure that is to the left of the equality operator. + + + The structure that is to the right of the equality operator. + + + + + Tests whether two structures differ in location or size. + + + This operator returns true if any of the , + , , or + properties of the two structures are unequal; otherwise false. + + + The structure that is to the left of the inequality operator. + + + The structure that is to the right of the inequality operator. + + + + + Creates a structure with upper-left corner and lower-right corner at the specified locations. + + + The new that this method creates. + + The x-coordinate of the upper-left corner of the rectangular region. + The y-coordinate of the upper-left corner of the rectangular region. + The x-coordinate of the lower-right corner of the rectangular region. + The y-coordinate of the lower-right corner of the rectangular region. + + + + Tests whether is a with the same location and size of this + . + + + This method returns true if is a and its X, Y, Width, and Height properties are equal to the corresponding properties of this + ; otherwise, false. + + + The to test. + + + + + Determines if the specified point is contained within this structure. + + + This method returns true if the point defined by and is contained within this + + structure; otherwise false. + + The x-coordinate of the point to test. + The y-coordinate of the point to test. + + + + Determines if the specified point is contained within this structure. + + + This method returns true if the point represented by the parameter is contained within this + + structure; otherwise false. + + The to test. + + + + Determines if the rectangular region represented by is entirely contained within this + + structure. + + + This method returns true if the rectangular region represented by is entirely contained within the rectangular region represented by this + + ; otherwise false. + + + The to test. + + + + + Inflates this structure by the specified amount. + + + The amount to inflate this structure horizontally. + + + The amount to inflate this structure vertically. + + + + + Inflates this by the specified amount. + + The amount to inflate this rectangle. + + + + Creates and returns an inflated copy of the specified structure. The copy is inflated by the specified amount. The original rectangle remains unmodified. + + + The inflated . + + + The to be copied. This rectangle is not modified. + + The amount to inflate the copy of the rectangle horizontally. + The amount to inflate the copy of the rectangle vertically. + + + + Replaces this structure with the intersection of itself and the specified + + structure. + + The rectangle to intersect. + + + + Returns a structure that represents the intersection of two rectangles. If there is no intersection, and empty + + is returned. + + + A third structure the size of which represents the overlapped area of the two specified rectangles. + + A rectangle to intersect. + A rectangle to intersect. + + + + Determines if this rectangle intersects with . + + + This method returns true if there is any intersection. + + The rectangle to test. + + + + Creates the smallest possible third rectangle that can contain both of two rectangles that form a union. + + + A third structure that contains both of the two rectangles that form the union. + + A rectangle to union. + A rectangle to union. + + + + Adjusts the location of this rectangle by the specified amount. + + The amount to offset the location. + + + + Adjusts the location of this rectangle by the specified amount. + + The amount to offset the location horizontally. + The amount to offset the location vertically. + + + + Gets the hash code for this structure. For information about the use of hash codes, see Object.GetHashCode. + + The hash code for this + + + + Converts the Location and Size of this to a human-readable string. + + + A string that contains the position, width, and height of this structure for example, "{X=20, Y=20, Width=100, Height=50}". + + + + + Stores an ordered pair of floating-point numbers, typically the width and height of a rectangle. + + + + + Gets a structure that has a + + and + + value of 0. + + + A structure that has a + + and + + value of 0. + + 1 + + + + Initializes a new instance of the structure from the specified existing + + structure. + + + The structure from which to create the new + + structure. + + + + + Initializes a new instance of the structure from the specified structure. + + The structure from which to initialize this structure. + + + + Initializes a new instance of the structure from the specified dimensions. + + + The width component of the new structure. + + + The height component of the new structure. + + + + + Gets a value that indicates whether this structure has zero width and height. + + + This property returns true when this structure has both a width and height of zero; otherwise, false. + + 1 + + + + Gets or sets the horizontal component of this structure. + + + The horizontal component of this structure, typically measured in pixels. + + 1 + + + + Gets or sets the vertical component of this structure. + + + The vertical component of this structure, typically measured in pixels. + + 1 + + + + Converts the specified structure to a + structure. + + The structure to which this operator converts. + The structure to be converted + + + + + Adds the width and height of one structure to the width and height of another + + structure. + + + A structure that is the result of the addition operation. + + + The first structure to add. + + + The second structure to add. + + 3 + + + + Subtracts the width and height of one structure from the width and height of another + + structure. + + + A that is the result of the subtraction operation. + + + The structure on the left side of the subtraction operator. + + + The structure on the right side of the subtraction operator. + + 3 + + + + Tests whether two structures are equal. + + + This operator returns true if and have equal width and height; otherwise, false. + + + The structure on the left side of the equality operator. + + + The structure on the right of the equality operator. + + 3 + + + + Tests whether two structures are different. + + + This operator returns true if and differ either in width or height; false if + + and are equal. + + + The structure on the left of the inequality operator. + + + The structure on the right of the inequality operator. + + 3 + + + + Adds the width and height of one structure to the width and height of another + + structure. + + + A structure that is the result of the addition operation. + + + The first structure to add. + + + The second structure to add. + + + + + Subtracts the width and height of one structure from the width and height of another + + structure. + + + A structure that is a result of the subtraction operation. + + + The structure on the left side of the subtraction operator. + + + The structure on the right side of the subtraction operator. + + + + + Tests to see whether the specified object is a structure with the same dimensions as this + + structure. + + + This method returns true if is a and has the same width and height as this + + ; otherwise, false. + + + The to test. + + 1 + + + + Returns a hash code for this structure. + + + An integer value that specifies a hash value for this structure. + + 1 + + + + Converts a structure to a structure. + + + Returns a structure. + + + + + Creates a human-readable string that represents this structure. + + + A string that represents this structure. + + 1 + + + + + + + Platform adapter to bridge platform specific objects to HTML Renderer core library.
+ Core uses abstract renderer objects (RAdapter/RControl/REtc...) to access platform specific functionality, the concrete platforms + implements those objects to provide concrete platform implementation. Those allowing the core library to be platform agnostic. + + Platforms: WinForms, WPF, Metro, PDF renders, etc.
+ Objects: UI elements(Controls), Graphics(Render context), Colors, Brushes, Pens, Fonts, Images, Clipboard, etc.
+
+
+ + It is best to have a singleton instance of this class for concrete implementation!
+ This is because it holds caches of default CssData, Images, Fonts and Brushes. +
+
+ + + cache of brush color to brush instance + + + + + cache of pen color to pen instance + + + + + cache of all the font used not to create same font again and again + + + + + default CSS parsed data singleton + + + + + image used to draw loading image icon + + + + + image used to draw error image icon + + + + + Init. + + + + + Get the default CSS stylesheet data. + + + + + Resolve color value from given color name. + + the color name + color value + + + + Get cached pen instance for the given color. + + the color to get pen for + pen instance + + + + Get cached solid brush instance for the given color. + + the color to get brush for + brush instance + + + + Get linear gradient color brush from to . + + the rectangle to get the brush for + the start color of the gradient + the end color of the gradient + the angle to move the gradient from start color to end color in the rectangle + linear gradient color brush instance + + + + Convert image object returned from to . + + the image returned from load event + converted image or null + + + + Create an object from the given stream. + + the stream to create image from + new image instance + + + + Check if the given font exists in the system by font family name. + + the font name to check + true - font exists by given family name, false - otherwise + + + + Adds a font family to be used. + + The font family to add. + + + + Adds a font mapping from to iff the is not found.
+ When the font is used in rendered html and is not found in existing + fonts (installed or added) it will be replaced by .
+
+ the font family to replace + the font family to replace with +
+ + + Get font instance by given font family name, size and style. + + the font family name + font size + font style + font instance + + + + Get image to be used while HTML image is loading. + + + + + Get image to be used if HTML image load failed. + + + + + Get data object for the given html and plain text data.
+ The data object can be used for clipboard or drag-drop operation.
+ Not relevant for platforms that don't render HTML on UI element. +
+ the html data + the plain text data + drag-drop data object +
+ + + Set the given text to the clipboard
+ Not relevant for platforms that don't render HTML on UI element. +
+ the text to set +
+ + + Set the given html and plain text data to clipboard.
+ Not relevant for platforms that don't render HTML on UI element. +
+ the html data + the plain text data +
+ + + Set the given image to clipboard.
+ Not relevant for platforms that don't render HTML on UI element. +
+ the image object to set to clipboard +
+ + + Create a context menu that can be used on the control
+ Not relevant for platforms that don't render HTML on UI element. +
+ new context menu +
+ + + Save the given image to file by showing save dialog to the client.
+ Not relevant for platforms that don't render HTML on UI element. +
+ the image to save + the name of the image for save dialog + the extension of the image for save dialog + optional: the control to show the dialog on +
+ + + Get font instance by given font family name, size and style. + + the font family name + font size + font style + font instance + + + + Get font instance by given font family instance, size and style.
+ Used to support custom fonts that require explicit font family instance to be created. +
+ the font family instance + font size + font style + font instance +
+ + + Resolve color value from given color name. + + the color name + color value + + + + Get cached pen instance for the given color. + + the color to get pen for + pen instance + + + + Get cached solid brush instance for the given color. + + the color to get brush for + brush instance + + + + Get linear gradient color brush from to . + + the rectangle to get the brush for + the start color of the gradient + the end color of the gradient + the angle to move the gradient from start color to end color in the rectangle + linear gradient color brush instance + + + + Convert image object returned from to . + + the image returned from load event + converted image or null + + + + Create an object from the given stream. + + the stream to create image from + new image instance + + + + Get font instance by given font family name, size and style. + + the font family name + font size + font style + font instance + + + + Get font instance by given font family instance, size and style.
+ Used to support custom fonts that require explicit font family instance to be created. +
+ the font family instance + font size + font style + font instance +
+ + + Get data object for the given html and plain text data.
+ The data object can be used for clipboard or drag-drop operation. +
+ the html data + the plain text data + drag-drop data object +
+ + + Set the given text to the clipboard + + the text to set + + + + Set the given html and plain text data to clipboard. + + the html data + the plain text data + + + + Set the given image to clipboard. + + + + + + Create a context menu that can be used on the control + + new context menu + + + + Save the given image to file by showing save dialog to the client. + + the image to save + the name of the image for save dialog + the extension of the image for save dialog + optional: the control to show the dialog on + + + + Adapter for platform specific brush objects - used to fill graphics (rectangles, polygons and paths).
+ The brush can be solid color, gradient or image. +
+
+ + + + + + + + Adapter for platform specific context menu - used to create and show context menu at specific location.
+ Not relevant for platforms that don't render HTML on UI element. +
+
+ + + The total number of items in the context menu + + + + + Add divider item to the context menu.
+ The divider is a non clickable place holder used to separate items. +
+
+ + + Add item to the context menu with the given text that will raise the given event when clicked. + the text to set on the new context menu itemif to set the item as enabled or disabledthe event to raise when the item is clicked + + + + Remove the last item from the context menu iff it is a divider + + + + + Show the context menu in the given parent control at the given location. + the parent control to show inthe location to show at relative to the parent control + + + + + + + + + Adapter for platform specific control object - used to handle updating the control that the html is rendered on.
+ Not relevant for platforms that don't render HTML on UI element. +
+
+ + + The platform adapter. + + + + + Init control with platform adapter. + + + + + The platform adapter. + + + + + Is the left mouse button is currently in pressed state + + + + + Is the right mouse button is currently in pressed state + + + + + Get the current location of the mouse relative to the control + + + + + Set the cursor over the control to default cursor + + + + + Set the cursor over the control to hand cursor + + + + + Set the cursor over the control to I beam cursor + + + + + Do drag-drop copy operation for the given data object. + + the drag-drop data object + + + + Measure the width of string under max width restriction calculating the number of characters that can fit and the width those characters take.
+
+ the string to measure + the font to measure string with + the max width to calculate fit characters + the number of characters that will fit under maxWidth restriction + the width that only the characters that fit into max width take +
+ + + Invalidates the entire surface of the control and causes the control to be redrawn. + + + + + Adapter for platform specific font object - used to render text using specific font. + + + + + Gets the em-size of this Font measured in the units specified by the Unit property. + + + + + The line spacing, in pixels, of this font. + + + + + Get the vertical offset of the font underline location from the top of the font. + + + + + Get the left padding, in pixels, of the font. + + + + + + + + + + + + Adapter for platform specific font family object - define the available font families to use.
+ Required for custom fonts handling: fonts that are not installed on the system. +
+
+ + + Gets the name of this Font Family. + + + + + Adapter for platform specific graphics rendering object - used to render graphics and text in platform specific context.
+ The core HTML Renderer components use this class for rendering logic, extending this + class in different platform: WinForms, WPF, Metro, PDF, etc. +
+
+ + + the global adapter + + + + + Te clipping bound stack as clips are pushed/poped to/from the graphics + + + + + Init. + + + + + Get color pen. + + the color to get the pen for + pen instance + + + + Get solid color brush. + + the color to get the brush for + solid color brush instance + + + + Get linear gradient color brush from to . + + the rectangle to get the brush for + the start color of the gradient + the end color of the gradient + the angle to move the gradient from start color to end color in the rectangle + linear gradient color brush instance + + + + Gets a Rectangle structure that bounds the clipping region of this Graphics. + + A rectangle structure that represents a bounding rectangle for the clipping region of this Graphics. + + + + Pop the latest clip push. + + + + + Push the clipping region of this Graphics to interception of current clipping rectangle and the given rectangle. + + Rectangle to clip to. + + + + Push the clipping region of this Graphics to exclude the given rectangle from the current clipping rectangle. + + Rectangle to exclude clipping in. + + + + Set the graphics smooth mode to use anti-alias.
+ Use to return back the mode used. +
+ the previous smooth mode before the change +
+ + + Return to previous smooth mode before anti-alias was set as returned from . + + the previous mode to set + + + + Get TextureBrush object that uses the specified image and bounding rectangle. + + The Image object with which this TextureBrush object fills interiors. + A Rectangle structure that represents the bounding rectangle for this TextureBrush object. + The dimension by which to translate the transformation + + + + Get GraphicsPath object. + + graphics path instance + + + + Measure the width and height of string when drawn on device context HDC + using the given font . + + the string to measure + the font to measure string with + the size of the string + + + + Measure the width of string under max width restriction calculating the number of characters that can fit and the width those characters take.
+ Not relevant for platforms that don't render HTML on UI element. +
+ the string to measure + the font to measure string with + the max width to calculate fit characters + the number of characters that will fit under maxWidth restriction + the width that only the characters that fit into max width take +
+ + + Draw the given string using the given font and foreground color at given location. + + the string to draw + the font to use to draw the string + the text color to set + the location to start string draw (top-left) + used to know the size of the rendered text for transparent text support + is to render the string right-to-left (true - RTL, false - LTR) + + + + Draws a line connecting the two points specified by the coordinate pairs. + + Pen that determines the color, width, and style of the line. + The x-coordinate of the first point. + The y-coordinate of the first point. + The x-coordinate of the second point. + The y-coordinate of the second point. + + + + Draws a rectangle specified by a coordinate pair, a width, and a height. + + A Pen that determines the color, width, and style of the rectangle. + The x-coordinate of the upper-left corner of the rectangle to draw. + The y-coordinate of the upper-left corner of the rectangle to draw. + The width of the rectangle to draw. + The height of the rectangle to draw. + + + + Fills the interior of a rectangle specified by a pair of coordinates, a width, and a height. + + Brush that determines the characteristics of the fill. + The x-coordinate of the upper-left corner of the rectangle to fill. + The y-coordinate of the upper-left corner of the rectangle to fill. + Width of the rectangle to fill. + Height of the rectangle to fill. + + + + Draws the specified portion of the specified at the specified location and with the specified size. + + Image to draw. + Rectangle structure that specifies the location and size of the drawn image. The image is scaled to fit the rectangle. + Rectangle structure that specifies the portion of the object to draw. + + + + Draws the specified Image at the specified location and with the specified size. + + Image to draw. + Rectangle structure that specifies the location and size of the drawn image. + + + + Draws a GraphicsPath. + + Pen that determines the color, width, and style of the path. + GraphicsPath to draw. + + + + Fills the interior of a GraphicsPath. + + Brush that determines the characteristics of the fill. + GraphicsPath that represents the path to fill. + + + + Fills the interior of a polygon defined by an array of points specified by Point structures. + + Brush that determines the characteristics of the fill. + Array of Point structures that represent the vertices of the polygon to fill. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Adapter for platform specific graphics path object - used to render (draw/fill) path shape. + + + + + Start path at the given point. + + + + + Add stright line to the given point from te last point. + + + + + Add circular arc of the given size to the given point from the last point. + + + + + Release path resources. + + + + + The 4 corners that are handled in arc rendering. + + + + + + + + + + + + + + + + + + + + + + + + + Adapter for platform specific image object - used to render images. + + + + + Get the width, in pixels, of the image. + + + + + Get the height, in pixels, of the image. + + + + + + + + + + Adapter for platform specific pen objects - used to draw graphics (lines, rectangles and paths) + + + + + Gets or sets the width of this Pen, in units of the Graphics object used for drawing. + + + + + Gets or sets the style used for dashed lines drawn with this Pen. + + + + + Holds parsed stylesheet css blocks arranged by media and classes.
+ +
+ + To learn more about CSS blocks visit CSS spec: http://www.w3.org/TR/CSS21/syndata.html#block + +
+ + + used to return empty array + + + + + dictionary of media type to dictionary of css class name to the cssBlocks collection with all the data. + + + + + Init. + + + + + Parse the given stylesheet to object.
+ If is true the parsed css blocks are added to the + default css data (as defined by W3), merged if class name already exists. If false only the data in the given stylesheet is returned. +
+ Platform adapter + the stylesheet source to parse + true - combine the parsed css data with default css data, false - return only the parsed css data + the parsed css data +
+ + + dictionary of media type to dictionary of css class name to the cssBlocks collection with all the data + + + + + Check if there are css blocks for the given class selector. + + the class selector to check for css blocks by + optional: the css media type (default - all) + true - has css blocks for the class, false - otherwise + + + + Get collection of css blocks for the requested class selector.
+ the can be: class name, html element name, html element and + class name (elm.class), hash tag with element id (#id).
+ returned all the blocks that word on the requested class selector, it can contain simple + selector or hierarchy selector. +
+ the class selector to get css blocks by + optional: the css media type (default - all) + collection of css blocks, empty collection if no blocks exists (never null) +
+ + + Add the given css block to the css data, merging to existing block if required. + + + If there is no css blocks for the same class it will be added to data collection.
+ If there is already css blocks for the same class it will check for each existing block + if the hierarchical selectors match (or not exists). if do the two css blocks will be merged into + one where the new block properties overwrite existing if needed. if the new block doesn't mach any + existing it will be added either to the beginning of the list if it has no hierarchical selectors or at the end.
+ Css block without hierarchical selectors must be added to the beginning of the list so more specific block + can overwrite it when the style is applied. +
+ the media type to add the CSS to + the css block to add +
+ + + Combine this CSS data blocks with CSS blocks for each media.
+ Merge blocks if exists in both. +
+ the CSS data to combine with +
+ + + Create deep copy of the css data with cloned css blocks. + + cloned object + + + + CSS Specification's Default Style Sheet for HTML 4 + + + http://www.w3.org/TR/CSS21/sample.html + + + + + Border types + + + + + Represents a CSS Box of text or replaced elements. + + + The Box can contains other boxes, that's the way that the CSS Tree + is composed. + + To know more about boxes visit CSS spec: + http://www.w3.org/TR/CSS21/box.html + + + + + the parent css box of this css box in the hierarchy + + + + + the root container for the hierarchy + + + + + the html tag that is associated with this css box, null if anonymous box + + + + + the inner text of the box + + + + + Do not use or alter this flag + + + Flag that indicates that CssTable algorithm already made fixes on it. + + + + + handler for loading background image + + + + + Init. + + optional: the parent of this css box in html + optional: the html tag associated with this css box + + + + Gets the HtmlContainer of the Box. + WARNING: May be null. + + + + + Gets or sets the parent box of this box + + + + + Gets the children boxes of this box + + + + + Is the box is of "br" element. + + + + + is the box "Display" is "Inline", is this is an inline box and not block. + + + + + is the box "Display" is "Block", is this is an block box and not inline. + + + + + Is the css box clickable (by default only "a" element is clickable) + + + + + Get the href link of the box (by default get "href" attribute) + + + + + Gets the containing block-box of this box. (The nearest parent box with display=block) + + + + + Gets the HTMLTag that hosts this box + + + + + Gets if this box represents an image + + + + + Tells if the box is empty or contains just blank spaces + + + + + Gets or sets the inner text of the box + + + + + Gets the line-boxes of this box (if block box) + + + + + Gets the linebox(es) that contains words of this box (if inline) + + + + + Gets the rectangles where this box should be painted + + + + + Gets the BoxWords of text in the box + + + + + Gets the first word of the box + + + + + Gets or sets the first linebox where content of this box appear + + + + + Gets or sets the last linebox where content of this box appear + + + + + Create new css box for the given parent with the given html tag.
+
+ the html tag to define the box + the box to add the new box to it as child + the new box +
+ + + Create new css box for the given parent with the given optional html tag and insert it either + at the end or before the given optional box.
+ If no html tag is given the box will be anonymous.
+ If no before box is given the new box will be added at the end of parent boxes collection.
+ If before box doesn't exists in parent box exception is thrown.
+
+ + To learn more about anonymous inline boxes visit: http://www.w3.org/TR/CSS21/visuren.html#anonymous + + the box to add the new box to it as child + optional: the html tag to define the box + optional: to insert as specific location in parent box + the new box +
+ + + Create new css block box. + + the new block box + + + + Create new css block box for the given parent with the given optional html tag and insert it either + at the end or before the given optional box.
+ If no html tag is given the box will be anonymous.
+ If no before box is given the new box will be added at the end of parent boxes collection.
+ If before box doesn't exists in parent box exception is thrown.
+
+ + To learn more about anonymous block boxes visit CSS spec: + http://www.w3.org/TR/CSS21/visuren.html#anonymous-block-level + + the box to add the new block box to it as child + optional: the html tag to define the box + optional: to insert as specific location in parent box + the new block box +
+ + + Measures the bounds of box and children, recursively.
+ Performs layout of the DOM structure creating lines by set bounds restrictions. +
+ Device context to use +
+ + + Paints the fragment + + Device context to use + + + + Prints the fragment + + Device context to use + + + + + + Set this box in + + + + + + Move all child boxes from to this box. + + the box to move all its child boxes from + + + + Splits the text into words and saves the result + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Measures the bounds of box and children, recursively.
+ Performs layout of the DOM structure creating lines by set bounds restrictions.
+
+ Device context to use +
+ + + Assigns words its width and height + + + + + + Get the parent of this css properties instance. + + + + + + Gets the index of the box to be used on a (ordered) list + + + + + + Creates the + + + + + + Searches for the first word occurrence inside the box, on the specified linebox + + + + + + + + Gets the specified Attribute, returns string.Empty if no attribute specified + + Attribute to retrieve + Attribute value or string.Empty if no attribute specified + + + + Gets the value of the specified attribute of the source HTML tag. + + Attribute to retrieve + Value to return if attribute is not specified + Attribute value or defaultValue if no attribute specified + + + + Gets the minimum width that the box can be.
+ The box can be as thin as the longest word plus padding.
+ The check is deep thru box tree.
+
+ the min width of the box +
+ + + Gets the longest word (in width) inside the box, deeply. + + + + + + + + + Get the total margin value (left and right) from the given box to the given end box.
+
+ the box to start calculation from. + the total margin +
+ + + Gets the maximum bottom of the boxes inside the startBox + + + + + + + + Get the and width of the box content.
+
+ The minimum width the content must be so it won't overflow (largest word + padding). + The total width the content can take without line wrapping (with padding). +
+ + + Get the and of the box words content and .
+
+ the box to calculate for + the width that allows for each word to fit (width of the longest word) + the max width a single line of words can take without wrapping + the total amount of padding the content has + + +
+ + + Gets if this box has only inline siblings (including itself) + + + + + + Gets the rectangles where inline box will be drawn. See Remarks for more info. + + Rectangles where content should be placed + + Inline boxes can be split across different LineBoxes, that's why this method + Delivers a rectangle for each LineBox related to this box, if inline. + + + Inherits inheritable values from parent. + + + + + Gets the result of collapsing the vertical margins of the two boxes + + the previous box under the same parent + Resulting top margin + + + + Calculate the actual right of the box by the actual right of the child boxes if this box actual right is not set. + + the calculated actual right value + + + + Gets the result of collapsing the vertical margins of the two boxes + + Resulting bottom margin + + + + Deeply offsets the top of the box and its contents + + + + + + Paints the fragment + + the device to draw to + + + + Prints the fragment + + the device to draw to + + + + + + Paints the background of the box + + the device to draw into + the bounding rectangle to draw in + is it the first rectangle of the element + is it the last rectangle of the element + + + + Paint all the words in the box. + + the device to draw into + the current scroll offset to offset the words + + + + Paints the text decoration (underline/strike-through/over-line) + + the device to draw into + + + + + + + Offsets the rectangle of the specified linebox by the specified gap, + and goes deep for rectangles of children in that linebox. + + + + + + + Resets the array + + + + + On image load process complete with image request refresh for it to be painted. + + the image loaded or null if failed + the source rectangle to draw in the image (empty - draw everything) + is the callback was called async to load image call + + + + Get brush for the text depending if there is selected text color set. + + + + + Get brush for selection background depending if it has external and if alpha is required for images. + + + used for images so they will have alpha effect + + + + ToString override. + + + + + + CSS box for iframe element.
+ If the iframe is of embedded YouTube or Vimeo video it will show image with play. +
+
+ + + the image word of this image box + + + + + is the iframe is of embeded video + + + + + the title of the video + + + + + the url of the video thumbnail image + + + + + link to the video on the site + + + + + handler used for image loading by source + + + + + is image load is finished, used to know if no image is found + + + + + Init. + + the parent box of this box + the html tag data of this box + + + + Is the css box clickable ("a" element is clickable) + + + + + Get the href link of the box (by default get "href" attribute) + + + + + is the iframe is of embeded video + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Load YouTube video data (title, image, link) by calling YouTube API. + + + + + Parse YouTube API response to get video data (title, image, link). + + + + + Load Vimeo video data (title, image, link) by calling Vimeo API. + + + + + Parse Vimeo API response to get video data (title, image, link). + + + + + Handle error occurred during video data load to handle if the video was not found. + + the exception that occurred during data load web request + the name of the video source (YouTube/Vimeo/Etc.) + + + + Create image handler for downloading video image if found and release the WebClient instance used for API call. + + + + + Paints the fragment + + the device to draw to + + + + Draw video image over the iframe if found. + + + + + Draw video title on top of the iframe if found. + + + + + Draw play over the iframe if we found link url. + + + + + Assigns words its width and height + + the device to use + + + + Set error image border on the image box. + + + + + On image load process is complete with image or without update the image box. + + the image loaded or null if failed + the source rectangle to draw in the image (empty - draw everything) + is the callback was called async to load image call + + + + CSS box for hr element. + + + + + Init. + + the parent box of this box + the html tag data of this box + + + + Measures the bounds of box and children, recursively.
+ Performs layout of the DOM structure creating lines by set bounds restrictions. +
+ Device context to use +
+ + + Paints the fragment + + the device to draw to + + + + CSS box for image element. + + + + + the image word of this image box + + + + + handler used for image loading by source + + + + + is image load is finished, used to know if no image is found + + + + + Init. + + the parent box of this box + the html tag data of this box + + + + Get the image of this image box. + + + + + Paints the fragment + + the device to draw to + + + + Assigns words its width and height + + the device to use + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Set error image border on the image box. + + + + + On image load process is complete with image or without update the image box. + + the image loaded or null if failed + the source rectangle to draw in the image (empty - draw everything) + is the callback was called async to load image call + + + + Base class for css box to handle the css properties.
+ Has field and property for every css property that can be set, the properties add additional parsing like + setting the correct border depending what border value was set (single, two , all four).
+ Has additional fields to control the location and size of the box and 'actual' css values for some properties + that require additional calculations and parsing.
+
+
+ + + Gets or sets the location of the box + + + + + Gets or sets the size of the box + + + + + the width of whitespace between words + + + + + Gets or sets the location of the box + + + + + Gets or sets the size of the box + + + + + Gets the bounds of the box + + + + + Gets the width available on the box, counting padding and margin. + + + + + Gets the right of the box. When setting, it will affect only the width of the box. + + + + + Gets or sets the bottom of the box. + (When setting, alters only the Size.Height of the box) + + + + + Gets the left of the client rectangle (Where content starts rendering) + + + + + Gets the top of the client rectangle (Where content starts rendering) + + + + + Gets the right of the client rectangle + + + + + Gets the bottom of the client rectangle + + + + + Gets the client rectangle + + + + + Gets the actual height + + + + + Gets the actual height + + + + + Gets the actual top's padding + + + + + Gets the actual padding on the left + + + + + Gets the actual Padding of the bottom + + + + + Gets the actual padding on the right + + + + + Gets the actual top's Margin + + + + + The margin top value if was effected by margin collapse. + + + + + Gets the actual Margin on the left + + + + + Gets the actual Margin of the bottom + + + + + Gets the actual Margin on the right + + + + + Gets the actual top border width + + + + + Gets the actual Left border width + + + + + Gets the actual Bottom border width + + + + + Gets the actual Right border width + + + + + Gets the actual top border Color + + + + + Gets the actual Left border Color + + + + + Gets the actual Bottom border Color + + + + + Gets the actual Right border Color + + + + + Gets the actual length of the north west corner + + + + + Gets the actual length of the north east corner + + + + + Gets the actual length of the south east corner + + + + + Gets the actual length of the south west corner + + + + + Gets a value indicating if at least one of the corners of the box is rounded + + + + + Gets the actual width of whitespace between words. + + + + + + Gets the actual color for the text. + + + + + Gets the actual background color of the box + + + + + Gets the second color that creates a gradient for the background + + + + + Gets the actual angle specified for the background gradient + + + + + Gets the actual font of the parent + + + + + Gets the font that should be actually used to paint the text of the box + + + + + Gets the line height + + + + + Gets the text indentation (on first line only) + + + + + Gets the actual horizontal border spacing for tables + + + + + Gets the actual vertical border spacing for tables + + + + + Get the parent of this css properties instance. + + + + + + Gets the height of the font in the specified units + + + + + + Ensures that the specified length is converted to pixels if necessary + + + + + + Set the style/width/color for all 4 borders on the box.
+ if null is given for a value it will not be set. +
+ optional: the style to set + optional: the width to set + optional: the color to set +
+ + + Measures the width of whitespace between words (set ). + + + + + Inherits inheritable values from specified box. + + Set to true to inherit all CSS properties instead of only the ineritables + Box to inherit the properties + + + + Helps on CSS Layout. + + + + + Measure image box size by the width\height set on the box and the actual rendered image size.
+ If no image exists for the box error icon will be set. +
+ the image word to measure +
+ + + Creates line boxes for the specified blockbox + + + + + + + Applies special vertical alignment for table-cells + + + + + + + Recursively flows the content of the box using the inline model + + Device Info + Blockbox that contains the text flow + Current box to flow its content + Maximum reached right + Space to use between rows of text + x starting coordinate for when breaking lines of text + Current linebox being used + Current x coordinate that will be the left of the next word + Current y coordinate that will be the top of the next word + Maximum right reached so far + Maximum bottom reached so far + + + + Adjust the position of absolute elements by letf and top margins. + + + + + Recursively creates the rectangles of the blockBox, by bubbling from deep to outside of the boxes + in the rectangle structure + + + + + Applies vertical and horizontal alignment to words in lineboxes + + + + + + + Applies right to left direction to words + + + + + + + Applies RTL direction to all the words on the line. + + the line to apply RTL to + + + + Applies RTL direction to specific box words on the line. + + + + + + + Applies vertical alignment to the linebox + + + + + + + Applies centered alignment to the text on the linebox + + + + + + + Applies centered alignment to the text on the linebox + + + + + + + Applies right alignment to the text on the linebox + + + + + + + Simplest alignment, just arrange words. + + + + + + + Layout engine for tables executing the complex layout of tables with rows/columns/headers/etc. + + + + + the main box of the table + + + + + + + + + + collection of all rows boxes + + + + + collection of all columns boxes + + + + + + + + + + Init. + + + + + + Get the table cells spacing for all the cells in the table.
+ Used to calculate the spacing the table has in addition to regular padding and borders. +
+ the table box to calculate the spacing for + the calculated spacing +
+ + + + + + + + + + Analyzes the Table and assigns values to this CssTable object. + To be called from the constructor + + + + + Get the table boxes into the proper fields. + + + + + Insert EmptyBoxes for vertical cell spanning. + + + + + Determine Row and Column Count, and ColumnWidths + + + + + + + + + + + + While table width is larger than it should, and width is reductable.
+ If table max width is limited by we need to lower the columns width even if it will result in clipping
+
+
+ + + Check for minimum sizes (increment widths if necessary) + + + + + Layout the cells by the calculated table layout + + + + + + Gets the spanned width of a cell (With of all columns it spans minus one). + + + + + Gets the cell column index checking its position and other cells colspans + + + + + + + + Gets the cells width, taking colspan and being in the specified column + + + + + + + + Gets the colspan of the specified box + + + + + + Gets the rowspan of the specified box + + + + + + Recursively measures words inside the box + + the box to measure + Device to use + + + + Tells if the columns widths can be reduced, + by checking the minimum widths of all cells + + + + + + Tells if the specified column can be reduced, + by checking its minimum width + + + + + + + Gets the available width for the whole table. + It also sets the value of WidthSpecified + + + + The table's width can be larger than the result of this method, because of the minimum + size that individual boxes. + + + + + Gets the available width for the whole table. + It also sets the value of WidthSpecified + + + + The table's width can be larger than the result of this method, because of the minimum + size that individual boxes. + + + + + Calculate the min and max width for each column of the table by the content in all rows.
+ the min width possible without clipping content
+ the max width the cell content can take without wrapping
+
+ if to measure only columns that have no calculated width + return the min width for each column - the min width possible without clipping content + return the max width for each column - the max width the cell content can take without wrapping +
+ + + Gets the width available for cells + + + + It takes away the cell-spacing from + + + + + Gets the current sum of column widths + + + + + + Gets the span attribute of the tag of the specified box + + + + + + Gets the minimum width of each column + + + + + Gets the actual horizontal spacing of the table + + + + + Gets the actual horizontal spacing of the table + + + + + Gets the actual vertical spacing of the table + + + + + Represents and gets info about a CSS Length + + + http://www.w3.org/TR/CSS21/syndata.html#length-units + + + + + Creates a new CssLength from a length specified on a CSS style sheet or fragment + + Length as specified in the Style Sheet or style fragment + + + + Gets the number in the length + + + + + Gets if the length has some parsing error + + + + + Gets if the length represents a precentage (not actually a length) + + + + + Gets if the length is specified in relative units + + + + + Gets the unit of the length + + + + + Gets the length as specified in the string + + + + + If length is in Ems, returns its value in points + + Em size factor to multiply + Points size of this em + If length has an error or isn't in ems + + + + If length is in Ems, returns its value in pixels + + Pixel size factor to multiply + Pixels size of this em + If length has an error or isn't in ems + + + + Returns the length formatted ready for CSS interpreting. + + + + + + Represents a line of text. + + + To learn more about line-boxes see CSS spec: + http://www.w3.org/TR/CSS21/visuren.html + + + + + Creates a new LineBox + + + + + Gets a list of boxes related with the linebox. + To know the words of the box inside this linebox, use the method. + + + + + Gets the words inside the linebox + + + + + Gets the owner box + + + + + Gets a List of rectangles that are to be painted on this linebox + + + + + Get the height of this box line (the max height of all the words) + + + + + Get the bottom of this box line (the max bottom of all the words) + + + + + Lets the linebox add the word an its box to their lists if necessary. + + + + + + Return the words of the specified box that live in this linebox + + + + + + + Updates the specified rectangle of the specified box. + + + + + + + + + + Copies the rectangles to their specified box + + + + + Sets the baseline of the words of the specified box to certain height + + Device info + box to check words + baseline + + + + Check if the given word is the last selected word in the line.
+ It can either be the last word in the line or the next word has no selection. +
+ the word to check + +
+ + + Returns the words of the linebox + + + + + + Represents a word inside an inline box + + + Because of performance, words of text are the most atomic + element in the project. It should be characters, but come on, + imagine the performance when drawing char by char on the device.
+ It may change for future versions of the library. +
+
+ + + the CSS box owner of the word + + + + + Rectangle + + + + + If the word is selected this points to the selection handler for more data + + + + + Init. + + the CSS box owner of the word + + + + Gets the Box where this word belongs. + + + + + Gets or sets the bounds of the rectangle + + + + + Left of the rectangle + + + + + Top of the rectangle + + + + + Width of the rectangle + + + + + Get the full width of the word including the spacing. + + + + + Gets the actual width of whitespace between words. + + + + + Height of the rectangle + + + + + Gets or sets the right of the rectangle. When setting, it only affects the Width of the rectangle. + + + + + Gets or sets the bottom of the rectangle. When setting, it only affects the Height of the rectangle. + + + + + If the word is selected this points to the selection handler for more data + + + + + was there a whitespace before the word chars (before trim) + + + + + was there a whitespace after the word chars (before trim) + + + + + Gets the image this words represents (if one exists) + + + + + Gets if the word represents an image. + + + + + Gets a bool indicating if this word is composed only by spaces. + Spaces include tabs and line breaks + + + + + Gets if the word is composed by only a line break + + + + + Gets the text of the word + + + + + is the word is currently selected + + + + + the selection start index if the word is partially selected (-1 if not selected or fully selected) + + + + + the selection end index if the word is partially selected (-1 if not selected or fully selected) + + + + + the selection start offset if the word is partially selected (-1 if not selected or fully selected) + + + + + the selection end offset if the word is partially selected (-1 if not selected or fully selected) + + + + + Gets or sets an offset to be considered in measurements + + + + + Represents this word for debugging purposes + + + + + + Represents a word inside an inline box + + + + + the image object if it is image word (can be null if not loaded) + + + + + the image rectangle restriction as returned from image load event + + + + + Creates a new BoxWord which represents an image + + the CSS box owner of the word + + + + Gets the image this words represents (if one exists) + + + + + Gets if the word represents an image. + + + + + the image rectange restriction as returned from image load event + + + + + Represents this word for debugging purposes + + + + + + Represents a word inside an inline box + + + + + The word text + + + + + was there a whitespace before the word chars (before trim) + + + + + was there a whitespace after the word chars (before trim) + + + + + Init. + + the CSS box owner of the word + the word chars + was there a whitespace before the word chars (before trim) + was there a whitespace after the word chars (before trim) + + + + was there a whitespace before the word chars (before trim) + + + + + was there a whitespace after the word chars (before trim) + + + + + Gets a bool indicating if this word is composed only by spaces. + Spaces include tabs and line breaks + + + + + Gets if the word is composed by only a line break + + + + + Gets the text of the word + + + + + Represents this word for debugging purposes + + + + + + Used to make space on vertical cell combination + + + + + the index of the row where box starts + + + + + the index of the row where box ends + + + + + Gets the index of the row where box starts + + + + + Gets the index of the row where box ends + + + + + Represents the possible units of the CSS lengths + + + http://www.w3.org/TR/CSS21/syndata.html#length-units + + + + + CSS boxes that have ":hover" selector on them. + + + + + the box that has :hover css on + + + + + the :hover style block data + + + + + Init. + + + + + the box that has :hover css on + + + + + the :hover style block data + + + + + the name of the html tag + + + + + if the tag is single placed; in other words it doesn't have a separate closing tag; + + + + + collection of attributes and their value the html tag has + + + + + Init. + + the name of the html tag + if the tag is single placed; in other words it doesn't have a separate closing tag; + collection of attributes and their value the html tag has + + + + Gets the name of this tag + + + + + Gets collection of attributes and their value the html tag has + + + + + Gets if the tag is single placed; in other words it doesn't have a separate closing tag;
+ e.g. <br> +
+
+ + + is the html tag has attributes. + + true - has attributes, false - otherwise + + + + Gets a boolean indicating if the attribute list has the specified attribute + + attribute name to check if exists + true - attribute exists, false - otherwise + + + + Get attribute value for given attribute name or null if not exists. + + attribute name to get by + optional: value to return if attribute is not specified + attribute value or null if not found + + + + Represents a block of CSS property values.
+ Contains collection of key-value pairs that are CSS properties for specific css class.
+ Css class can be either custom or html tag name. +
+ + To learn more about CSS blocks visit CSS spec: http://www.w3.org/TR/CSS21/syndata.html#block + +
+ + + the name of the css class of the block + + + + + the CSS block properties and values + + + + + additional selectors to used in hierarchy (p className1 > className2) + + + + + is the css block has :hover pseudo-class + + + + + Creates a new block from the block's source + + the name of the css class of the block + the CSS block properties and values + optional: additional selectors to used in hierarchy + optional: is the css block has :hover pseudo-class + + + + the name of the css class of the block + + + + + additional selectors to used in hierarchy (p className1 > className2) + + + + + Gets the CSS block properties and its values + + + + + is the css block has :hover pseudo-class + + + + + Merge the other block properties into this css block.
+ Other block properties can overwrite this block properties. +
+ the css block to merge with +
+ + + Create deep copy of the CssBlock. + + new CssBlock with same data + + + + Check if the two css blocks are the same (same class, selectors and properties). + + the other block to compare to + true - the two blocks are the same, false - otherwise + + + + Check if the selectors of the css blocks is the same. + + the other block to compare to + true - the selectors on blocks are the same, false - otherwise + + + + Check if the two css blocks are the same (same class, selectors and properties). + + the other block to compare to + true - the two blocks are the same, false - otherwise + + + + Serves as a hash function for a particular type. + + A hash code for the current . + + + + Returns a that represents the current . + + + + + Holds single class selector in css block hierarchical selection (p class1 > div.class2) + + + + + the name of the css class of the block + + + + + is the selector item has to be direct parent + + + + + Creates a new block from the block's source + + the name of the css class of the block + + + + + the name of the css class of the block + + + + + is the selector item has to be direct parent + + + + + Returns a that represents the current . + + + + + Controls the way styles are generated when html is generated. + + + + + styles are not generated at all + + + + + style are inserted in style attribute for each html tag + + + + + style section is generated in the head of the html + + + + + Callback used in to allow setting image externally and async.
+ The callback can provide path to image file path, URL or the actual image to use.
+ If is given (not ) then only the specified rectangle will + be used from the loaded image and not all of it, also the rectangle will be used for size and not the actual image size.
+
+ the path to the image to load (file path or URL) + the image to use + optional: limit to specific rectangle in the loaded image +
+ + + Invoked when an image is about to be loaded by file path, URL or inline data in 'img' element or background-image CSS style.
+ Allows to overwrite the loaded image by providing the image object manually, or different source (file or URL) to load from.
+ Example: image 'src' can be non-valid string that is interpreted in the overwrite delegate by custom logic to resource image object
+ Example: image 'src' in the html is relative - the overwrite intercepts the load and provide full source URL to load the image from
+ Example: image download requires authentication - the overwrite intercepts the load, downloads the image to disk using custom code and + provide file path to load the image from. Can also use the asynchronous image overwrite not to block HTML rendering is applicable.
+ If no alternative data is provided the original source will be used.
+
+
+ + + use to cancel the image loading by html renderer, the provided image will be used. + + + + + the source of the image (file path or uri) + + + + + collection of all the attributes that are defined on the image element + + + + + Callback used to allow setting image externally and async. + + + + + Init. + + the source of the image (file path or Uri) + collection of all the attributes that are defined on the image element + Callback used to allow setting image externally and async. + + + + the source of the image (file path, URL or inline data) + + + + + collection of all the attributes that are defined on the image element or CSS style + + + + + Indicate the image load is handled asynchronously. + Cancel this image loading and overwrite the image asynchronously using callback method.
+
+
+ + + Callback to overwrite the loaded image with error image.
+ Can be called directly from delegate handler or asynchronously after setting to True.
+
+
+ + + Callback to overwrite the loaded image with image to load from given URI.
+ Can be called directly from delegate handler or asynchronously after setting to True.
+
+ the path to the image to load (file path or URL) +
+ + + Callback to overwrite the loaded image with image to load from given URI.
+ Can be called directly from delegate handler or asynchronously after setting to True.
+ Only the specified rectangle (x,y,width,height) will be used from the loaded image and not all of it, also + the rectangle will be used for size and not the actual image size.
+
+ the path to the image to load (file path or URL) + + + + +
+ + + Callback to overwrite the loaded image with given image object.
+ Can be called directly from delegate handler or asynchronously after setting to True.
+ If imageRectangle is given (not ) then only the specified rectangle will + be used from the loaded image and not all of it, also the rectangle will be used for size and not the actual image size.
+
+ the image to load +
+ + + Callback to overwrite the loaded image with given image object.
+ Can be called directly from delegate handler or asynchronously after setting to True.
+ Only the specified rectangle (x,y,width,height) will be used from the loaded image and not all of it, also + the rectangle will be used for size and not the actual image size.
+
+ the image to load + + + + +
+ + + Raised when the user clicks on a link in the html. + + + + + the link href that was clicked + + + + + collection of all the attributes that are defined on the link element + + + + + use to cancel the execution of the link + + + + + Init. + + the link href that was clicked + + + + + the link href that was clicked + + + + + collection of all the attributes that are defined on the link element + + + + + use to cancel the execution of the link + + + + + + + + + + + Exception thrown when client code subscribed to LinkClicked event thrown exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Raised when html renderer requires refresh of the control hosting (invalidation and re-layout).
+ It can happen if some async event has occurred that requires re-paint and re-layout of the html.
+ Example: async download of image is complete. +
+
+ + + is re-layout is required for the refresh + + + + + Init. + + is re-layout is required for the refresh + + + + is re-layout is required for the refresh + + + + + + + + + + + Raised when an error occurred during html rendering. + + + + + error type that is reported + + + + + the error message + + + + + the exception that occurred (can be null) + + + + + Init. + + the type of error to report + the error message + optional: the exception that occurred + + + + error type that is reported + + + + + the error message + + + + + the exception that occurred (can be null) + + + + + + + + + + + Enum of possible error types that can be reported. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Raised when Html Renderer request scroll to specific location.
+ This can occur on document anchor click. +
+
+ + + the location to scroll to + + + + + Init. + + the location to scroll to + + + + the x location to scroll to + + + + + the x location to scroll to + + + + + + + + + + + Invoked when a stylesheet is about to be loaded by file path or URL in 'link' element.
+ Allows to overwrite the loaded stylesheet by providing the stylesheet data manually, or different source (file or URL) to load from.
+ Example: The stylesheet 'href' can be non-valid URI string that is interpreted in the overwrite delegate by custom logic to pre-loaded stylesheet object
+ If no alternative data is provided the original source will be used.
+
+
+ + + the source of the stylesheet as found in the HTML (file path or URL) + + + + + collection of all the attributes that are defined on the link element + + + + + provide the new source (file path or URL) to load stylesheet from + + + + + provide the stylesheet to load + + + + + provide the stylesheet data to load + + + + + Init. + + the source of the image (file path or URL) + collection of all the attributes that are defined on the image element + + + + the source of the stylesheet as found in the HTML (file path or URL) + + + + + collection of all the attributes that are defined on the link element + + + + + provide the new source (file path or URL) to load stylesheet from + + + + + provide the stylesheet to load + + + + + provide the stylesheet data to load + + + + + Holds data on link element in HTML.
+ Used to expose data outside of HTML Renderer internal structure. +
+
+ + + the id of the link element if present + + + + + the href data of the link + + + + + the rectangle of element as calculated by html layout + + + + + Init. + + + + + the id of the link element if present + + + + + the href data of the link + + + + + the rectangle of element as calculated by html layout + + + + + Is the link is directed to another element in the html + + + + + Return the id of the element this anchor link is referencing. + + + + + + + + + + + Contains all the paint code to paint different background images. + + + + + Draw the background image of the given box in the given rectangle.
+ Handle background-repeat and background-position values. +
+ the device to draw into + the box to draw its background image + the handler that loads image to draw + the rectangle to draw image in +
+ + + Get top-left location to start drawing the image at depending on background-position value. + + the background-position value + the rectangle to position image in + the size of the image + the top-left location + + + + Draw the background image at the required location repeating it over the X axis.
+ Adjust location to left if starting location doesn't include all the range (adjusted to center or right). +
+
+ + + Draw the background image at the required location repeating it over the Y axis.
+ Adjust location to top if starting location doesn't include all the range (adjusted to center or bottom). +
+
+ + + Draw the background image at the required location repeating it over the X and Y axis.
+ Adjust location to left-top if starting location doesn't include all the range (adjusted to center or bottom/right). +
+
+ + + Contains all the complex paint code to paint different style borders. + + + + + used for all border paint to use the same points and not create new array each time. + + + + + Draws all the border of the box with respect to style, width, etc. + + the device to draw into + the box to draw borders for + the bounding rectangle to draw in + is it the first rectangle of the element + is it the last rectangle of the element + + + + Draw simple border. + + Desired border + the device to draw to + Box which the border corresponds + the brush to use + the bounding rectangle to draw in + Beveled border path, null if there is no rounded corners + + + + Draw specific border (top/bottom/left/right) with the box data (style/width/rounded).
+
+ desired border to draw + the box to draw its borders, contain the borders data + the device to draw into + the rectangle the border is enclosing + Specifies if the border is for a starting line (no bevel on left) + Specifies if the border is for an ending line (no bevel on right) +
+ + + Set rectangle for inset/outset border as it need diagonal connection to other borders. + + Desired border + Box which the border corresponds + the rectangle the border is enclosing + Specifies if the border is for a starting line (no bevel on left) + Specifies if the border is for an ending line (no bevel on right) + Beveled border path, null if there is no rounded corners + + + + Makes a border path for rounded borders.
+ To support rounded dotted/dashed borders we need to use arc in the border path.
+ Return null if the border is not rounded.
+
+ the device to draw into + Desired border + Box which the border corresponds + the rectangle the border is enclosing + Beveled border path, null if there is no rounded corners +
+ + + Get pen to be used for border draw respecting its style. + + + + + Get the border color for the given box border. + + + + + Get the border width for the given box border. + + + + + Get the border style for the given box border. + + + + + Makes the specified color darker for inset/outset borders. + + + + + Handle context menu. + + + + + select all text + + + + + copy selected text + + + + + copy the link source + + + + + open link (as left mouse click) + + + + + copy the source of the image + + + + + copy image to clipboard + + + + + save image to disk + + + + + open video in browser + + + + + copy video url to browser + + + + + the selection handler linked to the context menu handler + + + + + the html container the handler is on + + + + + the last context menu shown + + + + + the control that the context menu was shown on + + + + + the css rectangle that context menu shown on + + + + + the css link box that context menu shown on + + + + + Init context menu items strings. + + + + + Init. + + the selection handler linked to the context menu handler + the html container the handler is on + + + + Show context menu clicked on given rectangle. + + the parent control to show the context menu on + the rectangle that was clicked to show context menu + the link that was clicked to show context menu on + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + 2 + + + + Dispose of the last used context menu. + + + + + Handle link click. + + + + + Copy the href of a link to clipboard. + + + + + Open save as dialog to save the image + + + + + Copy the image source to clipboard. + + + + + Copy image object to clipboard. + + + + + Copy selected text. + + + + + Select all text. + + + + + Utilities for fonts and fonts families handling. + + + + + + + + + + Allow to map not installed fonts to different + + + + + collection of all installed and added font families to check if font exists + + + + + cache of all the font used not to create same font again and again + + + + + Init. + + + + + Check if the given font family exists by name + + the font to check + true - font exists by given family name, false - otherwise + + + + Adds a font family to be used. + + The font family to add. + + + + Adds a font mapping from to iff the is not found.
+ When the font is used in rendered html and is not found in existing + fonts (installed or added) it will be replaced by .
+
+ the font family to replace + the font family to replace with +
+ + + Get cached font instance for the given font properties.
+ Improve performance not to create same font multiple times. +
+ cached font instance +
+ + + Get cached font if it exists in cache or null if it is not. + + + + + create font (try using existing font family to support custom fonts) + + + + + Handler for all loading image logic.
+

+ Loading by .
+ Loading by file path.
+ Loading by URI.
+

+
+ + + Supports sync and async image loading. + + + If the image object is created by the handler on calling dispose of the handler the image will be released, this + makes release of unused images faster as they can be large.
+ Disposing image load handler will also cancel download of image from the web. +
+
+
+ + + the container of the html to handle load image for + + + + + callback raised when image load process is complete with image or without + + + + + the web client used to download image from URL (to cancel on dispose) + + + + + Must be open as long as the image is in use + + + + + the image instance of the loaded image + + + + + the image rectangle restriction as returned from image load event + + + + + to know if image load event callback was sync or async raised + + + + + flag to indicate if to release the image object on box dispose (only if image was loaded by the box) + + + + + is the handler has been disposed + + + + + Init. + + the container of the html to handle load image for + callback raised when image load process is complete with image or without + + + + the image instance of the loaded image + + + + + the image rectangle restriction as returned from image load event + + + + + Set image of this image box by analyzing the src attribute.
+ Load the image from inline base64 encoded string.
+ Or from calling property/method on the bridge object that returns image or URL to image.
+ Or from file path
+ Or from URI. +
+ + File path and URI image loading is executed async and after finishing calling + on the main thread and not thread-pool. + + the source of the image to load + the collection of attributes on the element to use in event + the image object (null if failed) +
+ + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Set the image using callback from load image event, use the given data. + + the path to the image to load (file path or uri) + the image to load + optional: limit to specific rectangle of the image and not all of it + + + + Load the image from inline base64 encoded string data. + + the source that has the base64 encoded image + + + + Extract image object from inline base64 encoded data in the src of the html img element. + + the source that has the base64 encoded image + image from base64 data string or null if failed + + + + Load image from path of image file or URL. + + the file path or uri to load image from + + + + Load the image file on thread-pool thread and calling after. + + the file path to get the image from + + + + Load the image file on thread-pool thread and calling after.
+ Calling on the main thread and not thread-pool. +
+ the file path to get the image from +
+ + + Load image from the given URI by downloading it.
+ Create local file name in temp folder from the URI, if the file already exists use it as it has already been downloaded. + If not download the file using . +
+
+ + + Download the requested file in the URI to the given file path.
+ Use async sockets API to download from web, . +
+
+ + + Download the requested file in the URI to the given file path.
+ Use async sockets API to download from web, . +
+ key value pair of URL and file info to download the file to +
+ + + On download image complete to local file use to load the image file.
+ If the download canceled do nothing, if failed report error. +
+
+ + + On download image complete to local file use to load the image file.
+ If the download canceled do nothing, if failed report error. +
+
+ + + Flag image load complete and request refresh for re-layout and invalidate. + + + + + Release the image and client objects. + + + + + Handler for text selection in the html. + + + + + the root of the handled html tree + + + + + handler for showing context menu on right click + + + + + the mouse location when selection started used to ignore small selections + + + + + the starting word of html selection
+ where the user started the selection, if the selection is backwards then it will be the last selected word. +
+
+ + + the ending word of html selection
+ where the user ended the selection, if the selection is backwards then it will be the first selected word. +
+
+ + + the selection start index if the first selected word is partially selected (-1 if not selected or fully selected) + + + + + the selection end index if the last selected word is partially selected (-1 if not selected or fully selected) + + + + + the selection start offset if the first selected word is partially selected (-1 if not selected or fully selected) + + + + + the selection end offset if the last selected word is partially selected (-1 if not selected or fully selected) + + + + + is the selection goes backward in the html, the starting word comes after the ending word in DFS traversing.
+
+
+ + + used to ignore mouse up after selection + + + + + current selection process is after double click (full word selection) + + + + + used to know if selection is in the control or started outside so it needs to be ignored + + + + + used to handle drag and drop + + + + + is the cursor on the control has been changed by the selection handler + + + + + used to know if double click selection is requested + + + + + used to know if drag and drop was already started not to execute the same operation over + + + + + Init. + + the root of the handled html tree + + + + Select all the words in the html. + + the control hosting the html to invalidate + + + + Select the word at the given location if found. + + the control hosting the html to invalidate + the location to select word at + + + + Handle mouse down to handle selection. + + the control hosting the html to invalidate + the location of the mouse on the html + + + + + Handle mouse up to handle selection and link click. + + the control hosting the html to invalidate + is the left mouse button has been released + is the mouse up should be ignored + + + + Handle mouse move to handle hover cursor and text selection. + + the control hosting the html to set cursor and invalidate + the location of the mouse on the html + + + + On mouse leave change the cursor back to default. + + the control hosting the html to set cursor and invalidate + + + + Copy the currently selected html segment to clipboard.
+ Copy rich html text and plain text. +
+
+ + + Get the currently selected text segment in the html.
+
+
+ + + Copy the currently selected html segment with style.
+
+
+ + + The selection start index if the first selected word is partially selected (-1 if not selected or fully selected)
+ if the given word is not starting or ending selection word -1 is returned as full word selection is in place. +
+ + Handles backward selecting by returning the selection end data instead of start. + + the word to return the selection start index for + data value or -1 if not applicable +
+ + + The selection end index if the last selected word is partially selected (-1 if not selected or fully selected)
+ if the given word is not starting or ending selection word -1 is returned as full word selection is in place. +
+ + Handles backward selecting by returning the selection end data instead of start. + + the word to return the selection end index for +
+ + + The selection start offset if the first selected word is partially selected (-1 if not selected or fully selected)
+ if the given word is not starting or ending selection word -1 is returned as full word selection is in place. +
+ + Handles backward selecting by returning the selection end data instead of start. + + the word to return the selection start offset for +
+ + + The selection end offset if the last selected word is partially selected (-1 if not selected or fully selected)
+ if the given word is not starting or ending selection word -1 is returned as full word selection is in place. +
+ + Handles backward selecting by returning the selection end data instead of start. + + the word to return the selection end offset for +
+ + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + 2 + + + + Handle html text selection by mouse move over the html with left mouse button pressed.
+ Calculate the words in the selected range and set their selected property. +
+ the control hosting the html to invalidate + the mouse location + true - partial word selection allowed, false - only full words selection +
+ + + Clear the current selection. + + + + + Clear the selection from all the words in the css box recursively. + + the css box to selectionStart clear at + + + + Start drag and drop operation on the currently selected html segment. + + the control to start the drag and drop on + + + + Select all the words that are under DOM hierarchy.
+
+ the box to start select all at +
+ + + Check if the current selection is non empty, has some selection data. + + + true - partial word selection allowed, false - only full words selection + true - is non empty selection, false - empty selection + + + + Select all the words that are between word and word in the DOM hierarchy.
+
+ the root of the DOM sub-tree the selection is in + selection start word limit + selection end word limit +
+ + + Select all the words that are between word and word in the DOM hierarchy. + + the current traversal node + selection start word limit + selection end word limit + used to know the traversal is currently in selected range + + + + + Calculate the character index and offset by characters for the given word and given offset.
+ . +
+ used to create graphics to measure string + the word to calculate its index and offset + the location to calculate for + to set the starting or ending char and offset data +
+ + + Calculate the character index and offset by characters for the given word and given offset.
+ If the location is below the word line then set the selection to the end.
+ If the location is to the right of the word then set the selection to the end.
+ If the offset is to the left of the word set the selection to the beginning.
+ Otherwise calculate the width of each substring to find the char the location is on. +
+ used to create graphics to measure string + the word to calculate its index and offset + the location to calculate for + is to include the first character in the calculation + return the index of the char under the location + return the offset of the char under the location +
+ + + Check if the selection direction is forward or backward.
+ Is the selection start word is before the selection end word in DFS traversal. +
+
+ + + Handler for loading a stylesheet data. + + + + + Load stylesheet data from the given source.
+ The source can be local file or web URI.
+ First raise event to allow the client to overwrite the stylesheet loading.
+ If the stylesheet is downloaded from URI we will try to correct local URIs to absolute.
+
+ the container of the html to handle load stylesheet for + the source of the element to load the stylesheet by + the attributes of the link element + return the stylesheet string that has been loaded (null if failed or is given) + return stylesheet data object that was provided by overwrite (null if failed or is given) +
+ + + Load stylesheet string from given source (file path or uri). + + the container of the html to handle load stylesheet for + the file path or uri to load the stylesheet from + the stylesheet string + + + + Load the stylesheet from local file by given path. + + the container of the html to handle load stylesheet for + the stylesheet file to load + the loaded stylesheet string + + + + Load the stylesheet from uri by downloading the string. + + the container of the html to handle load stylesheet for + the uri to download from + the loaded stylesheet string + + + + Make relative URLs absolute in the stylesheet using the URI of the stylesheet. + + the stylesheet to correct + the stylesheet uri to use to create absolute URLs + Corrected stylesheet + + + + Low level handling of Html Renderer logic.
+ Allows html layout and rendering without association to actual control, those allowing to handle html rendering on any graphics object.
+ Using this class will require the client to handle all propagation's of mouse/keyboard events, layout/paint calls, scrolling offset, + location/size/rectangle handling and UI refresh requests.
+
+ + + MaxSize and ActualSize:
+ The max width and height of the rendered html.
+ The max width will effect the html layout wrapping lines, resize images and tables where possible.
+ The max height does NOT effect layout, but will not render outside it (clip).
+ can exceed the max size by layout restrictions (unwrap-able line, set image size, etc.).
+ Set zero for unlimited (width/height separately).
+
+ + ScrollOffset:
+ This will adjust the rendered html by the given offset so the content will be "scrolled".
+ Element that is rendered at location (50,100) with offset of (0,200) will not be rendered + at -100, therefore outside the client rectangle. +
+ + LinkClicked event
+ Raised when the user clicks on a link in the html.
+ Allows canceling the execution of the link to overwrite by custom logic.
+ If error occurred in event handler it will propagate up the stack. +
+ + StylesheetLoad event:
+ Raised when a stylesheet is about to be loaded by file path or URL in 'link' element.
+ Allows to overwrite the loaded stylesheet by providing the stylesheet data manually, or different source (file or URL) to load from.
+ Example: The stylesheet 'href' can be non-valid URI string that is interpreted in the overwrite delegate by custom logic to pre-loaded stylesheet object
+ If no alternative data is provided the original source will be used.
+
+ + ImageLoad event:
+ Raised when an image is about to be loaded by file path, URL or inline data in 'img' element or background-image CSS style.
+ Allows to overwrite the loaded image by providing the image object manually, or different source (file or URL) to load from.
+ Example: image 'src' can be non-valid string that is interpreted in the overwrite delegate by custom logic to resource image object
+ Example: image 'src' in the html is relative - the overwrite intercepts the load and provide full source URL to load the image from
+ Example: image download requires authentication - the overwrite intercepts the load, downloads the image to disk using custom code and provide + file path to load the image from.
+ If no alternative data is provided the original source will be used.
+
+ + Refresh event:
+ Raised when html renderer requires refresh of the control hosting (invalidation and re-layout).
+ There is no guarantee that the event will be raised on the main thread, it can be raised on thread-pool thread. +
+ + RenderError event:
+ Raised when an error occurred during html rendering.
+
+
+
+ + + + + + + + + + + + + parser for CSS data + + + + + the root css box of the parsed html + + + + + list of all css boxes that have ":hover" selector on them + + + + + Handler for text selection in the html. + + + + + the text fore color use for selected text + + + + + the back-color to use for selected text + + + + + the parsed stylesheet data used for handling the html + + + + + Is content selection is enabled for the rendered html (default - true).
+ If set to 'false' the rendered html will be static only with ability to click on links. +
+
+ + + Is the build-in context menu enabled (default - true) + + + + + Gets or sets a value indicating if anti-aliasing should be avoided + for geometry like backgrounds and borders + + + + + Gets or sets a value indicating if image asynchronous loading should be avoided (default - false).
+
+
+ + + Gets or sets a value indicating if image loading only when visible should be avoided (default - false).
+
+
+ + + the top-left most location of the rendered html + + + + + the max width and height of the rendered html, effects layout, actual size cannot exceed this values.
+ Set zero for unlimited.
+
+
+ + + Gets or sets the scroll offset of the document for scroll controls + + + + + The actual size of the rendered html (after layout) + + + + + Init. + + + + + + + + + + parser for CSS data + + + + + Raised when the user clicks on a link in the html.
+ Allows canceling the execution of the link. +
+
+ + + Raised when html renderer requires refresh of the control hosting (invalidation and re-layout). + + + There is no guarantee that the event will be raised on the main thread, it can be raised on thread-pool thread. + + + + + Raised when Html Renderer request scroll to specific location.
+ This can occur on document anchor click. +
+
+ + + Raised when an error occurred during html rendering.
+
+ + There is no guarantee that the event will be raised on the main thread, it can be raised on thread-pool thread. + +
+ + + Raised when a stylesheet is about to be loaded by file path or URI by link element.
+ This event allows to provide the stylesheet manually or provide new source (file or Uri) to load from.
+ If no alternative data is provided the original source will be used.
+
+
+ + + Raised when an image is about to be loaded by file path or URI.
+ This event allows to provide the image manually, if not handled the image will be loaded from file or download from URI. +
+
+ + + the parsed stylesheet data used for handling the html + + + + + Gets or sets a value indicating if anti-aliasing should be avoided for geometry like backgrounds and borders (default - false). + + + + + Gets or sets a value indicating if image asynchronous loading should be avoided (default - false).
+ True - images are loaded synchronously during html parsing.
+ False - images are loaded asynchronously to html parsing when downloaded from URL or loaded from disk.
+
+ + Asynchronously image loading allows to unblock html rendering while image is downloaded or loaded from disk using IO + ports to achieve better performance.
+ Asynchronously image loading should be avoided when the full html content must be available during render, like render to image. +
+
+ + + Gets or sets a value indicating if image loading only when visible should be avoided (default - false).
+ True - images are loaded as soon as the html is parsed.
+ False - images that are not visible because of scroll location are not loaded until they are scrolled to. +
+ + Images late loading improve performance if the page contains image outside the visible scroll area, especially if there is large + amount of images, as all image loading is delayed (downloading and loading into memory).
+ Late image loading may effect the layout and actual size as image without set size will not have actual size until they are loaded + resulting in layout change during user scroll.
+ Early image loading may also effect the layout if image without known size above the current scroll location are loaded as they + will push the html elements down. +
+
+ + + Is content selection is enabled for the rendered html (default - true).
+ If set to 'false' the rendered html will be static only with ability to click on links. +
+
+ + + Is the build-in context menu enabled and will be shown on mouse right click (default - true) + + + + + The scroll offset of the html.
+ This will adjust the rendered html by the given offset so the content will be "scrolled".
+
+ + Element that is rendered at location (50,100) with offset of (0,200) will not be rendered as it + will be at -100 therefore outside the client rectangle. + +
+ + + The top-left most location of the rendered html.
+ This will offset the top-left corner of the rendered html. +
+
+ + + The max width and height of the rendered html.
+ The max width will effect the html layout wrapping lines, resize images and tables where possible.
+ The max height does NOT effect layout, but will not render outside it (clip).
+ can be exceed the max size by layout restrictions (unwrapable line, set image size, etc.).
+ Set zero for unlimited (width\height separately).
+
+
+ + + The actual size of the rendered html (after layout) + + + + + Get the currently selected text segment in the html. + + + + + Copy the currently selected html segment with style. + + + + + the root css box of the parsed html + + + + + the text fore color use for selected text + + + + + the back-color to use for selected text + + + + + Init with optional document and stylesheet. + + the html to init with, init empty if not given + optional: the stylesheet to init with, init default if not given + + + + + + + + + + Clear the content of the HTML container releasing any resources used to render previously existing content. + + + + + Get html from the current DOM tree with style if requested. + + Optional: controls the way styles are generated when html is generated (default: ) + generated html + + + + Get attribute value of element at the given x,y location by given key.
+ If more than one element exist with the attribute at the location the inner most is returned. +
+ the location to find the attribute at + the attribute key to get value by + found attribute value or null if not found +
+ + + Get all the links in the HTML with the element rectangle and href data. + + collection of all the links in the HTML + + + + Get css link href at the given x,y location. + + the location to find the link at + css link href if exists or null + + + + Get the rectangle of html element as calculated by html layout.
+ Element if found by id (id attribute on the html element).
+ Note: to get the screen rectangle you need to adjust by the hosting control.
+
+ the id of the element to get its rectangle + the rectangle of the element or null if not found +
+ + + Measures the bounds of box and children, recursively. + + Device context to draw + + + + Render the html using the given device. + + the device to use to render + + + + Render the html using the given device. + + the device to use to render + + + + + Handle mouse down to handle selection. + + the control hosting the html to invalidate + the location of the mouse + + + + Handle mouse up to handle selection and link click. + + the control hosting the html to invalidate + the location of the mouse + the mouse event data + + + + Handle mouse double click to select word under the mouse. + + the control hosting the html to set cursor and invalidate + the location of the mouse + + + + Handle mouse move to handle hover cursor and text selection. + + the control hosting the html to set cursor and invalidate + the location of the mouse + + + + Handle mouse leave to handle hover cursor. + + the control hosting the html to set cursor and invalidate + + + + Handle key down event for selection and copy. + + the control hosting the html to invalidate + the pressed key + + + + Raise the stylesheet load event with the given event args. + + the event args + + + + Raise the image load event with the given event args. + + the event args + + + + Request invalidation and re-layout of the control hosting the renderer. + + is re-layout is required for the refresh + + + + Report error in html render process. + + the type of error to report + the error message + optional: the exception that occured + + + + Handle link clicked going over event and using if not canceled. + + the control hosting the html to invalidate + the location of the mouse + the link that was clicked + + + + Add css box that has ":hover" selector to be handled on mouse hover. + + the box that has the hover selector + the css block with the css data with the selector + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + 2 + + + + Adjust the offset of the given location by the current scroll offset. + + the location to adjust + the adjusted location + + + + Check if the mouse is currently on the html container.
+ Relevant if the html container is not filled in the hosted control (location is not zero and the size is not the full size of the control). +
+
+ + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + General utilities. + + + + + Measure the size of the html by performing layout under the given restrictions. + + the graphics to use + the html to calculate the layout for + the minimal size of the rendered html (zero - not limit the width/height) + the maximum size of the rendered html, if not zero and html cannot be layout within the limit it will be clipped (zero - not limit the width/height) + return: the size of the html to be rendered within the min/max limits + + + + Perform the layout of the html container by given size restrictions returning the final size.
+ The layout can be effected by the HTML content in the if or + is set to true.
+ Handle minimum and maximum size restrictions.
+ Handle auto size and auto size for height only. if is true + is ignored.
+
+ the graphics used for layout + the html container to layout + the current size + the min size restriction - can be empty for no restriction + the max size restriction - can be empty for no restriction + if to modify the size (width and height) by html content layout + if to modify the height by html content layout +
+ + + Parser to parse CSS stylesheet source string into CSS objects. + + + + + split CSS rule + + + + + + + + + + Utility for value parsing. + + + + + The chars to trim the css class name by + + + + + Init. + + + + + Parse the given stylesheet source to CSS blocks dictionary.
+ The CSS blocks are organized into two level buckets of media type and class name.
+ Root media type are found under 'all' bucket.
+ If is true the parsed css blocks are added to the + default css data (as defined by W3), merged if class name already exists. If false only the data in the given stylesheet is returned. +
+ raw css stylesheet to parse + true - combine the parsed css data with default css data, false - return only the parsed css data + the CSS data with parsed CSS objects (never null) +
+ + + Parse the given stylesheet source to CSS blocks dictionary.
+ The CSS blocks are organized into two level buckets of media type and class name.
+ Root media type are found under 'all' bucket.
+ The parsed css blocks are added to the given css data, merged if class name already exists. +
+ the CSS data to fill with parsed CSS objects + raw css stylesheet to parse +
+ + + Parse single CSS block source into CSS block instance. + + the name of the css class of the block + the CSS block to parse + the created CSS block instance + + + + Parse a complex font family css property to check if it contains multiple fonts and if the font exists.
+ returns the font family name to use or 'inherit' if failed. +
+ the font-family value to parse + parsed font-family value +
+ + + Parses a color value in CSS style; e.g. #ff0000, red, rgb(255,0,0), rgb(100%, 0, 0) + + color string value to parse + color value + + + + Remove comments from the given stylesheet. + + the stylesheet to remove comments from + stylesheet without comments + + + + Parse given stylesheet for CSS blocks
+ This blocks are added under the "all" keyword. +
+ the CSS data to fill with parsed CSS objects + the stylesheet to parse +
+ + + Parse given stylesheet for media CSS blocks
+ This blocks are added under the specific media block they are found. +
+ the CSS data to fill with parsed CSS objects + the stylesheet to parse +
+ + + Feeds the style with a block about the specific media.
+ When no media is specified, "all" will be used. +
+ + the CSS block to handle + optional: the media (default - all) +
+ + + Parse single CSS block source into CSS block instance. + + the name of the css class of the block + the CSS block to parse + the created CSS block instance + + + + Parse css block selector to support hierarchical selector (p class1 > class2). + + the class selector to parse + return the main class the css block is on + returns the hierarchy of classes or null if single class selector + + + + Parse the properties of the given css block into a key-value dictionary. + + the raw css block to parse + dictionary with parsed css block properties + + + + Add the given property to the given properties collection, if the property is complex containing + multiple css properties then parse them and add the inner properties. + + the name of the css property to add + the value of the css property to add + the properties collection to add to + + + + Parse length property to add only valid lengths. + + the name of the css property to add + the value of the css property to add + the properties collection to add to + + + + Parse color property to add only valid color. + + the name of the css property to add + the value of the css property to add + the properties collection to add to + + + + Parse a complex font property value that contains multiple css properties into specific css properties. + + the value of the property to parse to specific values + the properties collection to add the specific properties to + + + + + + the value of the property to parse + parsed value + + + + Parse a complex font family css property to check if it contains multiple fonts and if the font exists.
+ returns the font family name to use or 'inherit' if failed. +
+ the value of the property to parse + parsed font-family value +
+ + + Parse a complex border property value that contains multiple css properties into specific css properties. + + the value of the property to parse to specific values + the left, top, right or bottom direction of the border to parse + the properties collection to add the specific properties to + + + + Parse a complex margin property value that contains multiple css properties into specific css properties. + + the value of the property to parse to specific values + the properties collection to add the specific properties to + + + + Parse a complex border style property value that contains multiple css properties into specific css properties. + + the value of the property to parse to specific values + the properties collection to add the specific properties to + + + + Parse a complex border width property value that contains multiple css properties into specific css properties. + + the value of the property to parse to specific values + the properties collection to add the specific properties to + + + + Parse a complex border color property value that contains multiple css properties into specific css properties. + + the value of the property to parse to specific values + the properties collection to add the specific properties to + + + + Parse a complex padding property value that contains multiple css properties into specific css properties. + + the value of the property to parse to specific values + the properties collection to add the specific properties to + + + + Split multi direction value into the proper direction values (left, top, right, bottom). + + + + + Split the value by the specified separator; e.g. Useful in values like 'padding:5 4 3 inherit' + + Value to be splitted + + Splitted and trimmed values + + + + + + + + + + + + + Parse the given substring to extract border width substring. + Assume given substring is not empty and all indexes are valid!
+
+ found border width value or null +
+ + + Parse the given substring to extract border style substring.
+ Assume given substring is not empty and all indexes are valid!
+
+ found border width value or null +
+ + + Parse the given substring to extract border style substring.
+ Assume given substring is not empty and all indexes are valid!
+
+ found border width value or null +
+ + + Parse CSS properties values like numbers, Urls, etc. + + + + + + + + + + Init. + + + + + Check if the given substring is a valid double number. + Assume given substring is not empty and all indexes are valid!
+
+ true - valid double number, false - otherwise +
+ + + Check if the given substring is a valid double number. + Assume given substring is not empty and all indexes are valid!
+
+ true - valid int number, false - otherwise +
+ + + Check if the given string is a valid length value. + + the string value to check + true - valid, false - invalid + + + + Evals a number and returns it. If number is a percentage, it will be multiplied by hundredPercent + + Number to be parsed + Number that represents the 100% if parsed number is a percentage + Parsed number. Zero if error while parsing. + + + + Parses a length. Lengths are followed by an unit identifier (e.g. 10px, 3.1em) + + Specified length + Equivalent to 100 percent when length is percentage + if the length is in pixels and the length is font related it needs to use 72/96 factor + + the parsed length value with adjustments + + + + Parses a length. Lengths are followed by an unit identifier (e.g. 10px, 3.1em) + + Specified length + Equivalent to 100 percent when length is percentage + + + the parsed length value with adjustments + + + + Parses a length. Lengths are followed by an unit identifier (e.g. 10px, 3.1em) + + Specified length + Equivalent to 100 percent when length is percentage + + + if the length is in pixels and the length is font related it needs to use 72/96 factor + Allows the return double to be in points. If false, result will be pixels + the parsed length value with adjustments + + + + Get the unit to use for the length, use default if no unit found in length string. + + + + + Check if the given color string value is valid. + + color string value to parse + true - valid, false - invalid + + + + Parses a color value in CSS style; e.g. #ff0000, red, rgb(255,0,0), rgb(100%, 0, 0) + + color string value to parse + Color value + + + + Parses a color value in CSS style; e.g. #ff0000, RED, RGB(255,0,0), RGB(100%, 0, 0) + + color substring value to parse + substring start idx + substring length + return the parsed color + true - valid color, false - otherwise + + + + Parses a border value in CSS style; e.g. 1px, 1, thin, thick, medium + + + + + + + + Get color by parsing given hex value color string (#A28B34). + + true - valid color, false - otherwise + + + + Get color by parsing given RGB value color string (RGB(255,180,90)) + + true - valid color, false - otherwise + + + + Get color by parsing given RGBA value color string (RGBA(255,180,90,180)) + + true - valid color, false - otherwise + + + + Get color by given name, including .NET name. + + true - valid color, false - otherwise + + + + Parse the given decimal number string to positive int value.
+ Start at given , ignore whitespaces and take + as many digits as possible to parse to int. +
+ the string to parse + the index to start parsing at + parsed int or 0 +
+ + + Parse the given decimal number string to positive int value. + Assume given substring is not empty and all indexes are valid!
+
+ int value, -1 if not valid +
+ + + Parse the given hex number string to positive int value. + Assume given substring is not empty and all indexes are valid!
+
+ int value, -1 if not valid +
+ + + Handle css DOM tree generation from raw html and stylesheet. + + + + + Parser for CSS + + + + + Init. + + + + + Generate css tree by parsing the given html and applying the given css style data on it. + + the html to parse + the html container to use for reference resolve + the css data to use + the root of the generated tree + + + + Read styles defined inside the dom structure in links and style elements.
+ If the html tag is "style" tag parse it content and add to the css data for all future tags parsing.
+ If the html tag is "link" that point to style data parse it content and add to the css data for all future tags parsing.
+
+ the box to parse style data in + the html container to use for reference resolve + the style data to fill with found styles + check if the css data has been modified by the handled html not to change the base css data +
+ + + Applies style to all boxes in the tree.
+ If the html tag has style defined for each apply that style to the css box of the tag.
+ If the html tag has "class" attribute and the class name has style defined apply that style on the tag css box.
+ If the html tag has "style" attribute parse it and apply the parsed style on the tag css box.
+
+ the box to apply the style to + the style data for the html +
+ + + Set the selected text style (selection text color and background color). + + + the style data + + + + Assigns the given css classes to the given css box checking if matching.
+ Support multiple classes in single attribute separated by whitespace. +
+ the css box to assign css to + the css data to use to get the matching css blocks +
+ + + Assigns the given css style blocks to the given css box checking if matching. + + the css box to assign css to + the css data to use to get the matching css blocks + the class selector to search for css blocks + + + + Check if the given css block is assignable to the given css box.
+ the block is assignable if it has no hierarchical selectors or if the hierarchy matches.
+ Special handling for ":hover" pseudo-class.
+
+ the box to check assign to + the block to check assign of + true - the block is assignable to the box, false - otherwise +
+ + + Check if the given css block is assignable to the given css box by validating the selector.
+
+ the box to check assign to + the block to check assign of + true - the block is assignable to the box, false - otherwise +
+ + + Assigns the given css style block properties to the given css box. + + the css box to assign css to + the css block to assign + + + + Check if the given style is allowed to be set on the given css box.
+ Used to prevent invalid CssBoxes creation like table with inline display style. +
+ the css box to assign css to + the style key to cehck + the style value to check + true - style allowed, false - not allowed +
+ + + Clone css data if it has not already been cloned.
+ Used to preserve the base css data used when changed by style inside html. +
+
+ + + + + + + + + + Converts an HTML length into a Css length + + + + + + + Cascades to the TD's the border spacified in the TABLE tag. + + + + + + + Cascades to the TD's the border spacified in the TABLE tag. + + + + + + + Execute action on all the "td" cells of the table.
+ Handle if there is "theader" or "tbody" exists. +
+ the table element + the action to execute +
+ + + Go over all the text boxes (boxes that have some text that will be rendered) and + remove all boxes that have only white-spaces but are not 'preformatted' so they do not effect + the rendered html. + + the current box to correct its sub-tree + + + + Go over all image boxes and if its display style is set to block, put it inside another block but set the image to inline. + + the current box to correct its sub-tree + + + + Correct the DOM tree recursively by replacing "br" html boxes with anonymous blocks that respect br spec.
+ If the "br" tag is after inline box then the anon block will have zero height only acting as newline, + but if it is after block box then it will have min-height of the font size so it will create empty line. +
+ the current box to correct its sub-tree + used to know if the br is following a box so it should create an empty line or not so it only + move to a new line +
+ + + Correct DOM tree if there is block boxes that are inside inline blocks.
+ Need to rearrange the tree so block box will be only the child of other block box. +
+ the current box to correct its sub-tree +
+ + + Rearrange the DOM of the box to have block box with boxes before the inner block box and after. + + the box that has the problem + + + + Split bad box that has inline and block boxes into two parts, the left - before the block box + and right - after the block box. + + the parent box that has the problem + the box to split into different boxes + the left block box that is created for the split + + + + Makes block boxes be among only block boxes and all inline boxes have block parent box.
+ Inline boxes should live in a pool of Inline boxes only so they will define a single block.
+ At the end of this process a block box will have only block siblings and inline box will have + only inline siblings. +
+ the current box to correct its sub-tree +
+ + + Check if the given box contains only inline child boxes in all subtree. + + the box to check + true - only inline child boxes, false - otherwise + + + + Check if the given box contains inline and block child boxes. + + the box to check + true - has variant child boxes, false - otherwise + + + + + + + + + Parses the source html to css boxes tree structure. + + the html source to parse + + + + Add html text anon box to the current box, this box will have the rendered text
+ Adding box also for text that contains only whitespaces because we don't know yet if + the box is preformatted. At later stage they will be removed if not relevant. +
+ the html source to parse + the start of the html part + the index of the next html tag + the current box in html tree parsing +
+ + + Parse the html part, the part from prev parsing index to the beginning of the next html tag.
+
+ the html source to parse + the index of the next html tag + the current box in html tree parsing + the end of the parsed part, the new start index +
+ + + Parse raw html tag source to object.
+ Extract attributes found on the tag. +
+ the html source to parse + the start index of the tag in the source + the length of the tag from the start index in the source + return the name of the html tag + return the dictionary of tag attributes + true - the tag is closing tag, false - otherwise +
+ + + Extract html tag attributes from the given sub-string. + + the html source to parse + the start index of the tag attributes in the source + the length of the tag attributes from the start index in the source + return the dictionary of tag attributes + + + + Collection of regular expressions used when parsing + + + + + Extracts the media types from a media at-rule; e.g. @media print, 3d, screen { + + + + + Extracts defined blocks in CSS. + WARNING: Blocks will include blocks inside at-rules. + + + + + Extracts a number; e.g. 5, 6, 7.5, 0.9 + + + + + Extracts css percentages from the string; e.g. 100% .5% 5.4% + + + + + Extracts CSS lengths; e.g. 9px 3pt .89em + + + + + Extracts line-height values (normal, numbers, lengths, percentages) + + + + + Extracts font-family values + + + + + Extracts CSS font-styles; e.g. normal italic oblique + + + + + Extracts CSS font-variant values; e.g. normal, small-caps + + + + + Extracts font-weight values; e.g. normal, bold, bolder... + + + + + Exracts font sizes: xx-small, larger, small, 34pt, 30%, 2em + + + + + Gets the font-size[/line-height]? on the font shorthand property. + Check http://www.w3.org/TR/CSS21/fonts.html#font-shorthand + + + + + the regexes cache that is used by the parser so not to create regex each time + + + + + Get CSS at rule from the given stylesheet. + + the stylesheet data to retrieve the rule from + the index to start the search for the rule, on return will be the value of the end of the found rule + the found at rule or null if not exists + + + + Extracts matches from the specified source + + Regular expression to extract matches + Source to extract matches + Collection of matches + + + + Searches the specified regex on the source + + + + + + + + Searches the specified regex on the source + + + + + + + + + Get regex instance for the given regex string. + + the regex string to use + the regex instance + + + + Static class that contains argument-checking methods + + + + + Validate given condition is true, otherwise throw exception. + + Exception type to throw. + Condition to assert. + Exception message in-case of assert failure. + + + + Validate given argument isn't Null. + + argument to validate + Name of the argument checked + if is Null + + + + Validate given argument isn't . + + argument to validate + Name of the argument checked + if is + + + + Validate given argument isn't Null or empty. + + argument to validate + Name of the argument checked + if is Null or empty + + + + Validate given argument isn't Null. + + Type expected of arg + argument to validate + Name of the argument checked + if is Null + arg cast as T + + + + Validate given argument isn't Null or empty AND argument value is the path of existing file. + + argument to validate + Name of the argument checked + if is Null or empty + if arg file-path not exist + + + + Utility methods for general stuff. + + + + + Table to convert numbers into roman digits + + + + + Check if the given char is of Asian range. + + the character to check + true - Asian char, false - otherwise + + + + Check if the given char is a digit character (0-9) and (0-9, a-f for HEX) + + the character to check + optional: is hex digit check + true - is digit, false - not a digit + + + + Convert the given char to digit. + + the character to check + optional: is hex digit check + true - is digit, false - not a digit + + + + Get size that is max of and for width and height separately. + + + + + Get Uri object for the given path if it is valid uri path. + + the path to get uri for + uri or null if not valid + + + + Get the first value in the given dictionary. + + the type of dictionary key + the type of dictionary value + the dictionary + optional: the default value to return of no elements found in dictionary + first element or default value + + + + Get file info object for the given path if it is valid file path. + + the path to get file info for + file info or null if not valid + + + + Get web client response content type. + + the web client to get the response content type from + response content type or null + + + + Gets the representation of the online uri on the local disk. + + The online image uri. + The path of the file on the disk. + + + + Get substring seperated by whitespace starting from the given idex. + + the string to get substring in + the index to start substring search from + return the length of the found string + the index of the substring, -1 if no valid sub-string found + + + + Compare that the substring of is equal to + Assume given substring is not empty and all indexes are valid!
+
+ true - equals, false - not equals +
+ + + Replaces invalid filename chars to '_' + + The possibly-not-valid filename + A valid filename. + + + + Convert number to alpha numeric system by the requested style (UpperAlpha, LowerRoman, Hebrew, etc.). + + the number to convert + the css style to convert by + converted string + + + + Convert the given integer into alphabetic numeric format (D, AU, etc.) + + the number to convert + is to use lowercase + the roman number string + + + + Convert the given integer into alphabetic numeric format (alpha, AU, etc.) + + the number to convert + the roman number string + + + + Convert the given integer into roman numeric format (II, VI, IX, etc.) + + the number to convert + if to use lowercase letters for roman digits + the roman number string + + + + Convert the given integer into given alphabet numeric system. + + the number to convert + the alphabet system to use + the number string + + + + Convert the given integer into given alphabet numeric system. + + the number to convert + the alphabet system to use + the number string + + + + String constants to avoid typing errors. + + + + + Centimeters + + + + + Millimeters + + + + + Pixels + + + + + Inches + + + + + Em - The font size of the relevant font + + + + + The 'x-height' of the relevan font + + + + + Points + + + + + Picas + + + + + Default font size in points. Change this value to modify the default font size. + + + + + Default font used for the generic 'serif' family + + + + + Utility method for handling CSS stuff. + + + + + Brush for selection background + + + + + Brush for selection background + + + + + Gets the white space width of the specified box + + + + + + + + Get CSS box property value by the CSS name.
+ Used as a mapping between CSS property and the class property. +
+ the CSS box to get it's property value + the name of the CSS property + the value of the property, null if no such property exists +
+ + + Set CSS box property value by the CSS name.
+ Used as a mapping between CSS property and the class property. +
+ the CSS box to set it's property value + the name of the CSS property + the value to set +
+ + + Utility class for traversing DOM structure and execution stuff on it. + + + + + Check if the given location is inside the given box deep.
+ Check inner boxes and all lines that the given box spans to. +
+ the box to check + the location to check + true - location inside the box, false - otherwise +
+ + + Check if the given box contains only inline child boxes. + + the box to check + true - only inline child boxes, false - otherwise + + + + Recursively searches for the parent with the specified HTML Tag name + + + + + + + + Gets the previous sibling of this box. + + Box before this one on the tree. Null if its the first + + + + Gets the previous sibling of this box. + + Box before this one on the tree. Null if its the first + + + + fix word space for first word in inline tag. + + the box to check + + + + Gets the next sibling of this box. + + Box before this one on the tree. Null if its the first + + + + Get attribute value by given key starting search from given box, search up the tree until + attribute found or root. + + the box to start lookup at + the attribute to get + the value of the attribute or null if not found + + + + Get css box under the given sub-tree at the given x,y location, get the inner most.
+ the location must be in correct scroll offset. +
+ the box to start search from + the location to find the box by + Optional: if to get only visible boxes (default - true) + css link box if exists or null +
+ + + Collect all link boxes found in the HTML tree. + + the box to start search from + collection to add all link boxes to + + + + Get css link box under the given sub-tree at the given x,y location.
+ the location must be in correct scroll offset. +
+ the box to start search from + the location to find the box by + css link box if exists or null +
+ + + Get css box under the given sub-tree with the given id.
+
+ the box to start search from + the id to find the box by + css box if exists or null +
+ + + Get css line box under the given sub-tree at the given y location or the nearest line from the top.
+ the location must be in correct scroll offset. +
+ the box to start search from + the location to find the box at + css word box if exists or null +
+ + + Get css word box under the given sub-tree at the given x,y location.
+ the location must be in correct scroll offset. +
+ the box to start search from + the location to find the box at + css word box if exists or null +
+ + + Get css word box under the given sub-tree at the given x,y location.
+ the location must be in correct scroll offset. +
+ the line box to search in + the location to find the box at + css word box if exists or null +
+ + + Find the css line box that the given word is in. + + the word to search for it's line box + line box that the word is in + + + + Get selected plain text of the given html sub-tree. + + the DOM box to get selected text from its sub-tree + the selected plain text string + + + + Generate html from the given DOM tree.
+ Generate all the style inside the html, in header or for every tag depending on value. +
+ the box of the html generate html from + Optional: controls the way styles are generated when html is generated + Optional: true - generate only selected html subset, false - generate all (default - false) + generated html +
+ + + Generate textual tree representation of the css boxes tree starting from the given root.
+ Used for debugging html parsing. +
+ the root to generate tree from + generated tree +
+ + + Get selected plain text of the given html sub-tree.
+ Append all the selected words. +
+ the builder to append the selected text to + the DOM box to get selected text from its sub-tree + the index of the last word appended +
+ + + Collect the boxes that have at least one word down the hierarchy that is selected recursively.
+
+ the box to check its sub-tree + the collection to add the selected tags to +
+ + + Collect the boxes that have at least one word down the hierarchy that is selected recursively.
+ Use to handle boxes that are between selected words but don't have selected word inside.
+
+ the box to check its sub-tree + the hash to add the selected boxes to + used to handle boxes that are between selected words but don't have selected word inside + is the current box is in selected sub-tree +
+ + + find the box the is the root of selected boxes (the first box to contain multiple selected boxes) + + the root of the boxes tree + the selected boxes to find selection root in + the box that is the root of selected boxes + + + + Check if the given box has a names child box (has html tag) recursively. + + the box to check + true - in sub-tree there is a named box, false - otherwise + + + + Write the given html DOM sub-tree into the given string builder.
+ If are given write html only from those tags. +
+ used to parse CSS data + the string builder to write html into + the html sub-tree to write + Controls the way styles are generated when html is generated + Control if to generate only selected boxes, if given only boxes found in hash will be generated + the box the is the root of selected boxes (the first box to contain multiple selected boxes) +
+ + + Write the given html tag with all its attributes and styles. + + used to parse CSS data + the string builder to write html into + the css box with the html tag to write + Controls the way styles are generated when html is generated + + + + Clean the given style collection by removing default styles so only custom styles remain.
+ Return new collection where the old remains unchanged. +
+ the box the styles apply to, used to know the default style + the collection of styles to clean + new cleaned styles collection +
+ + + Write stylesheet data inline into the html. + + the string builder to write stylesheet into + the css data to write to the head + + + + Get the selected word with respect to partial selected words. + + the word to append + is to get selected text or all the text in the word + + + + Generate textual tree representation of the css boxes tree starting from the given root.
+ Used for debugging html parsing. +
+ the box to generate for + the string builder to generate to + the current indent level to set indent of generated text +
+ + + Defines HTML strings + + + + + List of html tags that don't have content + + + + + the html encode\decode pairs + + + + + the html decode only pairs + + + + + Init. + + + + + Is the given html tag is single tag or can have content. + + the tag to check (must be lower case) + true - is single tag, false - otherwise + + + + Decode html encoded string to regular string.
+ Handles <, >, "&. +
+ the string to decode + decoded string +
+ + + Encode regular string into html encoded string.
+ Handles <, >, "&. +
+ the string to encode + encoded string +
+ + + Decode html special charecters encoded using char entity code (€) + + the string to decode + decoded string + + + + Decode html special charecters encoded using char entity name + + the string to decode + decoded string + + + + Provides some drawing functionality + + + + + Check if the given color is visible if painted (has alpha and color values) + + the color to check + true - visible, false - not visible + + + + Clip the region the graphics will draw on by the overflow style of the containing block.
+ Recursively travel up the tree to find containing block that has overflow style set to hidden. if not + block found there will be no clipping and null will be returned. +
+ the graphics to clip + the box that is rendered to get containing blocks + true - was clipped, false - not clipped +
+ + + Draw image loading icon. + + the device to draw into + + the rectangle to draw icon in + + + + Draw image failed to load icon. + + the device to draw into + + the rectangle to draw icon in + + + + Creates a rounded rectangle using the specified corner radius
+ NW-----NE + | | + | | + SW-----SE +
+ the device to draw into + Rectangle to round + Radius of the north east corner + Radius of the north west corner + Radius of the south east corner + Radius of the south west corner + GraphicsPath with the lines of the rounded rectangle ready to be painted +
+ + + Represents sub-string of a full string starting at specific location with a specific length. + + + + + the full string that this sub-string is part of + + + + + the start index of the sub-string + + + + + the length of the sub-string starting at + + + + + Init sub-string that is the full string. + + the full string that this sub-string is part of + + + + Init. + + the full string that this sub-string is part of + the start index of the sub-string + the length of the sub-string starting at + is null + + + + the full string that this sub-string is part of + + + + + the start index of the sub-string + + + + + the length of the sub-string starting at + + + + + Get string char at specific index. + + the idx to get the char at + char at index + + + + Is the sub-string is empty string. + + true - empty string, false - otherwise + + + + Is the sub-string is empty string or contains only whitespaces. + + true - empty or whitespace string, false - otherwise + + + + Is the sub-string contains only whitespaces (at least one). + + true - empty or whitespace string, false - otherwise + + + + Get a string of the sub-string.
+ This will create a new string object! +
+ new string that is the sub-string represented by this instance +
+ + + Retrieves a substring from this instance. The substring starts at a specified character position and has a specified length. + + The zero-based starting character position of a substring in this instance. + The number of characters in the substring. + A String equivalent to the substring of length length that begins at startIndex in this instance, or + Empty if startIndex is equal to the length of this instance and length is zero. + + + + Collection of regular expressions used when parsing + + + + + Extracts CSS style comments; e.g. /* comment */ + + + + + Extracts the media types from a media at-rule; e.g. @media print, 3d, screen { + + + + + Extracts defined blocks in CSS. + WARNING: Blocks will include blocks inside at-rules. + + + + + Extracts a number; e.g. 5, 6, 7.5, 0.9 + + + + + Extracts css percentages from the string; e.g. 100% .5% 5.4% + + + + + Extracts CSS lengths; e.g. 9px 3pt .89em + + + + + Extracts CSS colors; e.g. black white #fff #fe98cd rgb(5,5,5) rgb(45%, 0, 0) + + + + + Extracts line-height values (normal, numbers, lengths, percentages) + + + + + Extracts CSS border styles; e.g. solid none dotted + + + + + Extracts CSS border widthe; e.g. 1px thin 3em + + + + + Extracts font-family values + + + + + Extracts CSS font-styles; e.g. normal italic oblique + + + + + Extracts CSS font-variant values; e.g. normal, small-caps + + + + + Extracts font-weight values; e.g. normal, bold, bolder... + + + + + Exracts font sizes: xx-small, larger, small, 34pt, 30%, 2em + + + + + Gets the font-size[/line-height]? on the font shorthand property. + Check http://www.w3.org/TR/CSS21/fonts.html#font-shorthand + + + + + Extracts HTML tags + + + + + Extracts attributes from a HTML tag; e.g. att=value, att="value" + + + + + the regexes cache that is used by the parser so not to create regex each time + + + + + Get CSS at rule from the given stylesheet. + + the stylesheet data to retrieve the rule from + the index to start the search for the rule, on return will be the value of the end of the found rule + the found at rule or null if not exists + + + + Extracts matches from the specified source + + Regular expression to extract matches + Source to extract matches + Collection of matches + + + + Searches the specified regex on the source + + + + + + + + Searches the specified regex on the source + + + + + + + + + Get regex instance for the given regex string. + + the regex string to use + the regex instance + + + + 线条图 + + + 作者: Kingthy + 日期: 2007-09-11 + MSN: Kingthy@gmail.com + 转载请注明原作者,当你有更新修改时如果方便的希望能发一份给我.谢谢 + + + + + + + + + + + 画值 + + 画布 + X轴数据 + + + + 走势图 + + + 作者: Kingthy + 日期: 2007-09-11 + MSN: Kingthy@gmail.com + 转载请注明原作者,当你有更新修改时如果方便的希望能发一份给我.谢谢 + + + + + + + + + + 初始化参数 + + + + + 返回或设置X轴间隔 + + + + + 标题 + + + + + 返回图片的宽度 + + + + + 返回或设置图片的高度 + + + + + X轴的间距 + + + + + Y轴的间距 + + + + + 标题的颜色 + + + + + 标题的字体 + + + + + 背景颜色 + + + + + X轴的颜色 + + + + + Y轴的颜色 + + + + + 返回X轴数据的最大值(供给Painter调用) + + + + + 返回图片数据 + + + + + 画布 + + + + + 作图器 + + + + + 释放内容资源 + + + + + 获取X轴中的最大值 + + + + + + + 获取所有X轴列中的最大值 + + + + + + + 初始化图片 + + X轴的数据 + + + + + 画一条走势图 + + + + + + 画多条走势图 + + + + + + 作图器的基础类 + + + 作者: Kingthy + 日期: 2007-09-11 + MSN: Kingthy@gmail.com + 转载请注明原作者,当你有更新修改时如果方便的希望能发一份给我.谢谢 + + + + + + + + + + + 返回此作图器的相关链走势图 + + + + + 获取某值在Y轴上的位置 + + 当前点的值 + 点坐标 + + + + 画XY轴线 + + 画布 + X轴的数据 + + + + 画标题 + + + + + + 画走势线 + + 画布 + X轴数据 + + + + 方块图 + + + 作者: Kingthy + 日期: 2007-09-11 + MSN: Kingthy@gmail.com + 转载请注明原作者,当你有更新修改时如果方便的希望能发一份给我.谢谢 + + + + + + + + + + + 画值 + + 画布 + X轴数据 + + + + 走势图的X轴数据 + + + 作者: Kingthy + 日期: 2007-09-11 + MSN: Kingthy@gmail.com + 转载请注明原作者,当你有更新修改时如果方便的希望能发一份给我.谢谢 + + + + + + + + + + + + + + + + + + 标题 + + + + + 值 + + + + + 标题的颜色 + + + + + 标题的字体 + + + + + 值的颜色 + + + + + 值的字体 + + + + + 绘制颜色 + + + + + 值是否可见 + + + + + 克隆自身 + + + + + + 定义X轴的数据集合 + + + 作者: Kingthy + 日期: 2007-09-11 + MSN: Kingthy@gmail.com + 转载请注明原作者,当你有更新修改时如果方便的希望能发一份给我.谢谢 + + + + + + + + + + + + + + + + 添加一批数据 + + 轴的标题 + + + + 添加一批数据 + + 轴的标题 + 轴的值 + + + + 重置轴的值 + + 轴的值 + + + + 克隆数据 + + + + + + Indicates the behavior of a key when a cell "on the edge" is being edited. + and the normal behavior of that key would exceed the edge. For example, + for a key that normally moves one column to the left, the "edge" would be + the left most column, since the normal action of the key cannot be taken + (since there are no more columns to the left). + + + + + 按键将被忽略 + + + + + 按键将导致单元格编辑环绕到相对边缘的单元格。 + + + + + 按键将Wrap,但该列将更改为相应的相邻列。这只对正常操作为ChangeRow的键有意义。 + + + + + 按键将Wrap,但该行将更改为相应的相邻行。这只对正常操作为ChangeColumn的键有意义. + + + + + 该键将导致当前编辑操作结束。 + + + + + Indicates the normal behaviour of a key when used during a cell edit + operation. + + + + + The key press will be ignored + + + + + The key press will end the current edit and begin an edit + operation on the next editable cell to the left. + + + + + The key press will end the current edit and begin an edit + operation on the next editable cell to the right. + + + + + The key press will end the current edit and begin an edit + operation on the row above. + + + + + The key press will end the current edit and begin an edit + operation on the row below + + + + + The key press will cancel the current edit + + + + + The key press will finish the current edit operation + + + + + Custom verb that can be used for specialized actions. + + + + + Custom verb that can be used for specialized actions. + + + + + Custom verb that can be used for specialized actions. + + + + + Custom verb that can be used for specialized actions. + + + + + Custom verb that can be used for specialized actions. + + + + + Custom verb that can be used for specialized actions. + + + + + Custom verb that can be used for specialized actions. + + + + + Custom verb that can be used for specialized actions. + + + + + Custom verb that can be used for specialized actions. + + + + + Custom verb that can be used for specialized actions. + + + + + Instances of this class handle key presses during a cell edit operation. + + + + + 设置给定键的行为 + + + + + + + + 处理按键操作 + + + + True if the key was completely handled. + + + + Gets or sets the ObjectListView on which the current key is being handled. + This cannot be null. + + + + + Gets the row of the cell that is currently being edited + + + + + Gets the index of the column of the cell that is being edited + + + + + Gets or sets the map that remembers the normal behaviour of keys + + + + + Gets or sets the map that remembers the desired behaviour of keys + on edge cases. + + + + + Setup the default key mapping + + + + + Handle the end edit command + + + + + Handle the cancel edit command + + + + + Placeholder that subclasses can override to handle any custom verbs + + + + + + + + Handle a change row command + + + + + + + Handle a change column command + + + + + + + Start editing the indicated cell if that cell is not already being edited + + The row to edit + The cell within that row to edit + + + + Gets the adjacent item to the given item in the given direction. + If that item is disabled, continue in that direction until an enabled item is found. + + The row whose neighbour is sought + The direction of the adjacentness + An OLVListView adjacent to the given item, or null if there are no more enabled items in that direction. + + + + Gets the adjacent item to the given item in the given direction, wrapping if needed. + + The row whose neighbour is sought + The direction of the adjacentness + An OLVListView adjacent to the given item, or null if there are no more items in that direction. + + + + Gets a collection of columns that are editable in the order they are shown to the user + + + + + These items allow combo boxes to remember a value and its description. + + + + + + + + + + + + + + + + + Returns a string that represents the current object. + + + A string that represents the current object. + + 2 + + + + This editor shows and auto completes values from the given listview column. + + + + + Create an AutoCompleteCellEditor + + + + + + + This combo box is specialised to allow editing of an enum. + + + + + + + + + + + This editor simply shows and edits integer values. + + + + + + + + + + Gets or sets the value shown by this editor + + + + + This editor simply shows and edits unsigned integer values. + + This class can't be made public because unsigned int is not a + CLS-compliant type. If you want to use, just copy the code to this class + into your project and use it from there. + + + + This editor simply shows and edits boolean values. + + + + + + + + + + This editor simply shows and edits boolean values using a checkbox + + + + + Gets or sets the value shown by this editor + + + + + Gets or sets how the checkbox will be aligned + + + + + This editor simply shows and edits floating point values. + + You can intercept the CellEditStarting event if you want + to change the characteristics of the editor. For example, by increasing + the number of decimal places. + + + + + + + + + Gets or sets the value shown by this editor + + + + + A delegate that creates an editor for the given value + + The model from which that value came + The column for which the editor is being created + A representative value of the type to be edited. This value may not be the exact + value for the column/model combination. It could be simply representative of + the appropriate type of value. + A control which can edit the given value + + + + An editor registry gives a way to decide what cell editor should be used to edit + the value of a cell. Programmers can register non-standard types and the control that + should be used to edit instances of that type. + + + All ObjectListViews share the same editor registry. + + + + + Create an EditorRegistry + + + + + Register that values of 'type' should be edited by instances of 'controlType'. + + The type of value to be edited + The type of the Control that will edit values of 'type' + + ObjectListView.EditorRegistry.Register(typeof(Color), typeof(MySpecialColorEditor)); + + + + + Register the given delegate so that it is called to create editors + for values of the given type + + The type of value to be edited + The delegate that will create a control that can edit values of 'type' + + ObjectListView.EditorRegistry.Register(typeof(Color), CreateColorEditor); + ... + public Control CreateColorEditor(Object model, OLVColumn column, Object value) + { + return new MySpecialColorEditor(); + } + + + + + Register a delegate that will be called to create an editor for values + that have not been handled. + + The delegate that will create a editor for all other types + + + + Register a delegate that will be given a chance to create a control + before any other option is considered. + + The delegate that will create a control + + + + Remove the registered handler for the given type + + Does nothing if the given type doesn't exist + The type whose registration is to be removed + + + + Create and return an editor that is appropriate for the given value. + Return null if no appropriate editor can be found. + + The model involved + The column to be edited + The value to be edited. This value may not be the exact + value for the column/model combination. It could be simply representative of + the appropriate type of value. + A Control that can edit the given type of values + + + + Create and return an editor that will edit values of the given type + + A enum type + + + + A DataListView is a ListView that can be bound to a datasource (which would normally be a DataTable or DataView). + + + This listview keeps itself in sync with its source datatable by listening for change events. + The DataListView will automatically create columns to show all of the data source's columns/properties, if there is not already + a column showing that property. This allows you to define one or two columns in the designer and then have the others generated automatically. + If you don't want any column to be auto generated, set to false. + These generated columns will be only the simplest view of the world, and would look more interesting with a few delegates installed. + This listview will also automatically generate missing aspect getters to fetch the values from the data view. + Changing data sources is possible, but error prone. Before changing data sources, the programmer is responsible for modifying/resetting + the column collection to be valid for the new data source. + Internally, a CurrencyManager controls keeping the data source in-sync with other users of the data source (as per normal .NET + behavior). This means that the model objects in the DataListView are DataRowView objects. If you write your own AspectGetters/Setters, + they will be given DataRowView objects. + + + + + Make a DataListView + + + + + + + + + + + Gets or sets whether or not columns will be automatically generated to show the + columns when the DataSource is set. + + This must be set before the DataSource is set. It has no effect afterwards. + + + + Get or set the DataSource that will be displayed in this list view. + + The DataSource should implement either , , + or . Some common examples are the following types of objects: + + + + + + + + When binding to a list container (i.e. one that implements the + interface, such as ) + you must also set the property in order + to identify which particular list you would like to display. You + may also set the property even when + DataSource refers to a list, since can + also be used to navigate relations between lists. + When a DataSource is set, the control will create OLVColumns to show any + data source columns that are not already shown. + If the DataSource is changed, you will have to remove any previously + created columns, since they will be configured for the previous DataSource. + . + + + + + Gets or sets the name of the list or table in the data source for which the DataListView is displaying data. + + If the data source is not a DataSet or DataViewManager, this property has no effect + + + + Gets or sets the DataSourceAdaptor that does the bulk of the work needed + for data binding. + + + Adaptors cannot be shared between controls. Each DataListView needs its own adapter. + + + + + Add the given collection of model objects to this control. + + A collection of model objects + This is a no-op for data lists, since the data + is controlled by the DataSource. Manipulate the data source + rather than this view of the data source. + + + + Insert the given collection of objects before the given position + + Where to insert the objects + The objects to be inserted + This is a no-op for data lists, since the data + is controlled by the DataSource. Manipulate the data source + rather than this view of the data source. + + + + Remove the given collection of model objects from this control. + + This is a no-op for data lists, since the data + is controlled by the DataSource. Manipulate the data source + rather than this view of the data source. + + + + Change the Unfreeze behaviour + + + + + Handles parent binding context changes + + Unused EventArgs. + + + + A DataTreeListView is a TreeListView that calculates its hierarchy based on + information in the data source. + + + Like a , a DataTreeListView sources all its information + from a combination of and . + can be a DataTable, DataSet, + or anything that implements . + + + To function properly, the DataTreeListView requires: + + the table to have a column which holds a unique for the row. The name of this column must be set in . + the table to have a column which holds id of the hierarchical parent of the row. The name of this column must be set in . + a value which identifies which rows are the roots of the tree (). + + The hierarchy structure is determined finding all the rows where the parent key is equal to . These rows + become the root objects of the hierarchy. + + Like a TreeListView, the hierarchy must not contain cycles. Bad things will happen if the data is cyclic. + + + + + Gets or sets whether or not columns will be automatically generated to show the + columns when the DataSource is set. + + This must be set before the DataSource is set. It has no effect afterwards. + + + + Get or set the DataSource that will be displayed in this list view. + + The DataSource should implement either , , + or . Some common examples are the following types of objects: + + + + + + + + When binding to a list container (i.e. one that implements the + interface, such as ) + you must also set the property in order + to identify which particular list you would like to display. You + may also set the property even when + DataSource refers to a list, since can + also be used to navigate relations between lists. + + + + + Gets or sets the name of the list or table in the data source for which the DataListView is displaying data. + + If the data source is not a DataSet or DataViewManager, this property has no effect + + + + Gets or sets the name of the property/column that uniquely identifies each row. + + + + The value contained by this column must be unique across all rows + in the data source. Odd and unpredictable things will happen if two + rows have the same id. + + Null cannot be a valid key value. + + + + + Gets or sets the name of the property/column that contains the key of + the parent of a row. + + + + The test condition for deciding if one row is the parent of another is functionally + equivilent to this: + + Object.Equals(candidateParentRow[this.KeyAspectName], row[this.ParentKeyAspectName]) + + + Unlike key value, parent keys can be null but a null parent key can only be used + to identify root objects. + + + + + Gets or sets the value that identifies a row as a root object. + When the ParentKey of a row equals the RootKeyValue, that row will + be treated as root of the TreeListView. + + + + The test condition for deciding a root object is functionally + equivilent to this: + + Object.Equals(candidateRow[this.ParentKeyAspectName], this.RootKeyValue) + + + The RootKeyValue can be null. Actually, it can be any value that can + be compared for equality against a basic type. + If this is set to the wrong value (i.e. to a value that no row + has in the parent id column), the list will be empty. + + + + + Gets or sets the value that identifies a row as a root object. + . The RootKeyValue can be of any type, + but the IDE cannot sensibly represent a value of any type, + so this is a typed wrapper around that property. + + + If you want the root value to be something other than a string, + you will have set it yourself. + + + + + Gets or sets whether or not the key columns (id and parent id) should + be shown to the user. + + This must be set before the DataSource is set. It has no effect + afterwards. + + + + Gets or sets the DataSourceAdaptor that does the bulk of the work needed + for data binding. + + + + + An IDragSource controls how drag out from the ObjectListView will behave + + + + + A drag operation is beginning. Return the data object that will be used + for data transfer. Return null to prevent the drag from starting. The data + object will normally include all the selected objects. + + + The returned object is later passed to the GetAllowedEffect() and EndDrag() + methods. + + What ObjectListView is being dragged from. + Which mouse button is down? + What item was directly dragged by the user? There may be more than just this + item selected. + The data object that will be used for data transfer. This will often be a subclass + of DataObject, but does not need to be. + + + + What operations are possible for this drag? This controls the icon shown during the drag + + The data object returned by StartDrag() + A combination of DragDropEffects flags + + + + The drag operation is complete. Do whatever is necessary to complete the action. + + The data object returned by StartDrag() + The value returned from GetAllowedEffects() + + + + A do-nothing implementation of IDragSource that can be safely subclassed. + + + + + See IDragSource documentation + + + + + + + + + See IDragSource documentation + + + + + + + See IDragSource documentation + + + + + + + A reasonable implementation of IDragSource that provides normal + drag source functionality. It creates a data object that supports + inter-application dragging of text and HTML representation of + the dragged rows. It can optionally force a refresh of all dragged + rows when the drag is complete. + + Subclasses can override GetDataObject() to add new + data formats to the data transfer object. + + + + Construct a SimpleDragSource + + + + + Construct a SimpleDragSource that refreshes the dragged rows when + the drag is complete + + + + + + Gets or sets whether the dragged rows should be refreshed when the + drag operation is complete. + + + + + Create a DataObject when the user does a left mouse drag operation. + See IDragSource for further information. + + + + + + + + + Which operations are allowed in the operation? By default, all operations are supported. + + + All opertions are supported + + + + The drag operation is finished. Refreshe the dragged rows if so configured. + + + + + + + Create a data object that will be used to as the data object + for the drag operation. + + + Subclasses can override this method add new formats to the data object. + + The ObjectListView that is the source of the drag + A data object for the drag + + + + Objects that implement this interface can acts as the receiver for drop + operation for an ObjectListView. + + + + + Gets or sets the ObjectListView that is the drop sink + + + + + Draw any feedback that is appropriate to the current drop state. + + + Any drawing is done over the top of the ListView. This operation should disturb + the Graphic as little as possible. Specifically, do not erase the area into which + you draw. + + A Graphic for drawing + The contents bounds of the ListView (not including any header) + + + + The user has released the drop over this control + + + Implementators should set args.Effect to the appropriate DragDropEffects. This value is returned + to the originator of the drag. + + + + + + A drag has entered this control. + + Implementators should set args.Effect to the appropriate DragDropEffects. + + + + + Change the cursor to reflect the current drag operation. + + + + + + The drag has left the bounds of this control + + + + + The drag is moving over this control. + + This is where any drop target should be calculated. + Implementators should set args.Effect to the appropriate DragDropEffects. + + + + + + Should the drag be allowed to continue? + + + + + + This is a do-nothing implementation of IDropSink that is a useful + base class for more sophisticated implementations. + + + + + Gets or sets the ObjectListView that is the drop sink + + + + + Draw any feedback that is appropriate to the current drop state. + + + Any drawing is done over the top of the ListView. This operation should disturb + the Graphic as little as possible. Specifically, do not erase the area into which + you draw. + + A Graphic for drawing + The contents bounds of the ListView (not including any header) + + + + The user has released the drop over this control + + + Implementators should set args.Effect to the appropriate DragDropEffects. This value is returned + to the originator of the drag. + + + + + + A drag has entered this control. + + Implementators should set args.Effect to the appropriate DragDropEffects. + + + + + The drag has left the bounds of this control + + + + + The drag is moving over this control. + + This is where any drop target should be calculated. + Implementators should set args.Effect to the appropriate DragDropEffects. + + + + + + Change the cursor to reflect the current drag operation. + + You only need to override this if you want non-standard cursors. + The standard cursors are supplied automatically. + + + + + Should the drag be allowed to continue? + + + You only need to override this if you want the user to be able + to end the drop in some non-standard way, e.g. dragging to a + certain point even without releasing the mouse, or going outside + the bounds of the application. + + + + + + This is called when the mouse leaves the drop region and after the + drop has completed. + + + + + The enum indicates which target has been found for a drop operation + + + + + No applicable target has been found + + + + + The list itself is the target of the drop + + + + + An item is the target + + + + + Between two items (or above the top item or below the bottom item) + can be the target. This is not actually ever a target, only a value indicate + that it is valid to drop between items + + + + + Above an item is the target + + + + + Below an item is the target + + + + + A subitem is the target of the drop + + + + + On the right of an item is the target (not currently used) + + + + + On the left of an item is the target (not currently used) + + + + + This class represents a simple implementation of a drop sink. + + + Actually, it should be called CleverDropSink -- it's far from simple and can do quite a lot in its own right. + + + + + Make a new drop sink + + + + + Get or set the locations where a drop is allowed to occur (OR-ed together) + + + + + Gets or sets whether this sink allows model objects to be dragged from other lists. Defaults to true. + + + + + Gets or sets whether the ObjectListView should scroll when the user drags + something near to the top or bottom rows. Defaults to true. + + AutoScroll does not scroll horizontally. + + + + Gets the billboard overlay that will be used to display feedback + messages during a drag operation. + + Set this to null to stop the feedback. + + + + Get or set whether a drop can occur between items of the list + + + + + Get or set whether a drop can occur on the listview itself + + + + + Get or set whether a drop can occur on items in the list + + + + + Get or set whether a drop can occur on a subitem in the list + + + + + Gets or sets whether the drop sink should draw feedback onto the given list + during the drag operation. Defaults to true. + + If this is false, you will have to give the user feedback in some + other fashion, like cursor changes + + + + Get or set the index of the item that is the target of the drop + + + + + Get the item that is the target of the drop + + + + + Get or set the location of the target of the drop + + + + + Get or set the index of the subitem that is the target of the drop + + + + + Get or set the color that will be used to provide drop feedback + + + + + Get whether the alt key was down during this drop event + + + + + Get whether any modifier key was down during this drop event + + + + + Get whether the control key was down during this drop event + + + + + Get whether the left mouse button was down during this drop event + + + + + Get whether the right mouse button was down during this drop event + + + + + Get whether the right mouse button was down during this drop event + + + + + Get whether the shift key was down during this drop event + + + + + Get or set the state of the keys during this drop event + + + + + Gets or sets whether the drop sink will automatically use cursors + based on the drop effect. By default, this is true. If this is + set to false, you must set the Cursor yourself. + + + + + Triggered when the sink needs to know if a drop can occur. + + + Handlers should set Effect to indicate what is possible. + Handlers can change any of the DropTarget* setttings to change + the target of the drop. + + + + + Triggered when the drop is made. + + + + + Triggered when the sink needs to know if a drop can occur + AND the source is an ObjectListView + + + Handlers should set Effect to indicate what is possible. + Handlers can change any of the DropTarget* setttings to change + the target of the drop. + + + + + Triggered when the drop is made. + AND the source is an ObjectListView + + + + + Cleanup the drop sink when the mouse has left the control or + the drag has finished. + + + + + Draw any feedback that is appropriate to the current drop state. + + + Any drawing is done over the top of the ListView. This operation should disturb + the Graphic as little as possible. Specifically, do not erase the area into which + you draw. + + A Graphic for drawing + The contents bounds of the ListView (not including any header) + + + + The user has released the drop over this control + + + + + + A drag has entered this control. + + Implementators should set args.Effect to the appropriate DragDropEffects. + + + + + Change the cursor to reflect the current drag operation. + + + + + + The drag is moving over this control. + + + + + + Trigger the Dropped events + + + + + + Trigger CanDrop + + + + + + Trigger Dropped + + + + + + Trigger ModelCanDrop + + + + + + Trigger ModelDropped + + + + + + Handle the timer tick event, which is sent when the listview should + scroll + + + + + When the mouse is at the given point, what should the target of the drop be? + + This method should update the DropTarget* members of the given arg block + + The mouse point, in client co-ordinates + + + + What sort of action is possible when the mouse is at the given point? + + + + + + + + + + Based solely on the state of the modifier keys, what drop operation should + be used? + + The drop operation that matches the state of the keys + + + + Should the listview be made to scroll when the mouse is at the given point? + + + + + + Update the state of our sink to reflect the information that + may have been written into the drop event args. + + + + + + Draw the feedback that shows that the background is the target + + + + + + + Draw the feedback that shows that an item (or a subitem) is the target + + + + + DropTargetItem and DropTargetSubItemIndex tells what is the target + + + + + Draw the feedback that shows the drop will occur before target + + + + + + + Draw the feedback that shows the drop will occur after target + + + + + + + Return a GraphicPath that is round corner rectangle. + + + + + + + + Calculate the target rectangle when the given item (and possible subitem) + is the target of the drop. + + + + + + + + Draw a "between items" line at the given co-ordinates + + + + + + + + + + This drop sink allows items within the same list to be rearranged, + as well as allowing items to be dropped from other lists. + + + + This class can only be used on plain ObjectListViews and FastObjectListViews. + The other flavours have no way to implement the insert operation that is required. + + + This class does not work with grouping. + + + This class works when the OLV is sorted, but it is up to the programmer + to decide what rearranging such lists "means". Example: if the control is sorting + students by academic grade, and the user drags a "Fail" grade student up amonst the "A+" + students, it is the responsibility of the programmer to makes the appropriate changes + to the model and redraw/rebuild the control so that the users action makes sense. + + + Users of this class should listen for the CanDrop event to decide + if models from another OLV can be moved to OLV under this sink. + + + + + + Create a RearrangingDropSink + + + + + Create a RearrangingDropSink + + + + + + Trigger OnModelCanDrop + + + + + + Trigger OnModelDropped + + + + + + Do the work of processing the dropped items + + + + + + When a drop sink needs to know if something can be dropped, or + to notify that a drop has occured, it uses an instance of this class. + + + + + Create a OlvDropEventArgs + + + + + Get the original drag-drop event args + + + + + Get the data object that is being dragged + + + + + Get the drop sink that originated this event + + + + + Get or set the index of the item that is the target of the drop + + + + + Get or set the location of the target of the drop + + + + + Get or set the index of the subitem that is the target of the drop + + + + + Get the item that is the target of the drop + + + + + Get or set the drag effect that should be used for this operation + + + + + Get or set if this event was handled. No further processing will be done for a handled event. + + + + + Get or set the feedback message for this operation + + + If this is not null, it will be displayed as a feedback message + during the drag. + + + + + Get the ObjectListView that is being dropped on + + + + + Get the location of the mouse (in target ListView co-ords) + + + + + Get the drop action indicated solely by the state of the modifier keys + + + + + These events are triggered when the drag source is an ObjectListView. + + + + + Create a ModelDropEventArgs + + + + + Gets the model objects that are being dragged. + + + + + Gets the ObjectListView that is the source of the dragged objects. + + + + + Get the model object that is being dropped upon. + + This is only value for TargetLocation == Item + + + + Refresh all the objects involved in the operation + + + + + A data transfer object that knows how to transform a list of model + objects into a text and HTML representation. + + + + + Create a data object from the selected objects in the given ObjectListView + + The source of the data object + + + + Create a data object which operates on the given model objects + in the given ObjectListView + + The source of the data object + The model objects to be put into the data object + + + + Gets or sets whether hidden columns will also be included in the text + and HTML representation. If this is false, only visible columns will + be included. + + + + + Gets or sets whether column headers will also be included in the text + and HTML representation. + + + + + Gets the ObjectListView that is being used as the source of the data + + + + + Gets the model objects that are to be placed in the data object + + + + + Put a text and HTML representation of our model objects + into the data object. + + + + + Create an exporter for the data contained in this object + + + + + + Make a HTML representation of our model objects + + + + + Convert the fragment of HTML into the Clipboards HTML format. + + The HTML format is found here http://msdn2.microsoft.com/en-us/library/aa767917.aspx + + The HTML to put onto the clipboard. It must be valid HTML! + A string that can be put onto the clipboard and will be recognized as HTML + + + + A FastDataListView virtualizes the display of data from a DataSource. It operates on + DataSets and DataTables in the same way as a DataListView, but does so much more efficiently. + + + + A FastDataListView still has to load all its data from the DataSource. If you have SQL statement + that returns 1 million rows, all 1 million rows will still need to read from the database. + However, once the rows are loaded, the FastDataListView will only build rows as they are displayed. + + + + + + + + + + + + 获取或设置在设置DataSource时是否自动生成列以显示列。 + + 必须在设置DataSource之前设置此设置。之后就没有效果了。 + + + + 获取或设置将在此列表视图中显示的VirtualListDataSource。 + + VirtualListDataSource应实现 , , + 或 . 以下是一些常见的对象类型 + + + + + + + + 绑定到列表容器时 (即,实现 接口, 比如 ) + 您还必须实现 属性,以便标识要显示的特定列表。您也可以设置 属性, + 即使当VirtualListDataSource引用列表时也是如此, 因为 还可以用于导航列表之间的关系. + + + + + Gets or sets the name of the list or table in the data source for which the DataListView is displaying data. + + If the data source is not a DataSet or DataViewManager, this property has no effect + + + + Gets or sets the DataSourceAdaptor that does the bulk of the work needed + for data binding. + + + + + Create the DataSourceAdapter that this control will use. + + A DataSourceAdapter configured for this list + Subclasses should override this to create their + own specialized adapters + + + + Change the Unfreeze behaviour + + + + + A FastObjectListView trades function for speed. + + + On my mid-range laptop, this view builds a list of 10,000 objects in 0.1 seconds, + as opposed to a normal ObjectListView which takes 10-15 seconds. Lists of up to 50,000 items should be + able to be handled with sub-second response times even on low end machines. + + A FastObjectListView is implemented as a virtual list with many of the virtual modes limits (e.g. no sorting) + fixed through coding. There are some functions that simply cannot be provided. Specifically, a FastObjectListView cannot: + + use Tile view + show groups on XP + + + + + + + Make a FastObjectListView + + + + + Gets the collection of objects that survive any filtering that may be in place. + + + + + Get/set the collection of objects that this list will show + + + + The contents of the control will be updated immediately after setting this property. + + This method preserves selection, if possible. Use SetObjects() if + you do not want to preserve the selection. Preserving selection is the slowest part of this + code and performance is O(n) where n is the number of selected rows. + This method is not thread safe. + + + + + Move the given collection of objects to the given index. + + This operation only makes sense on non-grouped ObjectListViews. + + + + + + 删除任何排序并恢复到模型对象的给定顺序 + + To be really honest, Unsort() doesn't work on FastObjectListViews since + the original ordering of model objects is lost when Sort() is called. So this method + effectively just turns off sorting. + + + + 为FastObjectListView提供数据源 + + + This class isn't intended to be used directly, but it is left as a public + class just in case someone wants to subclass it. + + + + + Create a FastObjectListDataSource + + + + + + Get n'th object + + + + + + + How many items are in the data source + + + + + + Get the index of the given model + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Remove the given collection of models from this source. + + + + + + + + + + + + Update/replace the nth object with the given object + + + + + + + Apply the given filters to this data source. One or both may be null. + + + + + + + Gets the full list of objects being used for this fast list. + This list is unfiltered. + + + + + Gets the list of objects from ObjectList which survive any installed filters. + + + + + Rebuild the map that remembers which model object is displayed at which line + + + + + Build our filtered list from our full list. + + + + + Concrete implementation of the ICluster interface. + + + + + Create a cluster + + The key for the cluster + + + + Return a string representation of this cluster + + + + + + Gets or sets how many items belong to this cluster + + + + + Gets or sets the label that will be shown to the user to represent + this cluster + + + + + Gets or sets the actual data object that all members of this cluster + have commonly returned. + + + + + Return an indication of the ordering between this object and the given one + + + + + + + This class provides a useful base implemention of a clustering + strategy where the clusters are grouped around the value of a given column. + + + + + This field is the text that will be shown to the user when a cluster + key is null. It is exposed so it can be localized. + + + + + This field is the text that will be shown to the user when a cluster + key is empty (i.e. a string of zero length). It is exposed so it can be localized. + + + + + Gets or sets the format that will be used by default for clusters that only + contain 1 item. The format string must accept two placeholders: + - {0} is the cluster key converted to a string + - {1} is the number of items in the cluster (always 1 in this case) + + + + + Gets or sets the format that will be used by default for clusters that + contain 0 or two or more items. The format string must accept two placeholders: + - {0} is the cluster key converted to a string + - {1} is the number of items in the cluster + + + + + Create a clustering strategy + + + + + Gets or sets the column upon which this strategy is operating + + + + + Gets or sets the format that will be used when the cluster + contains only 1 item. The format string must accept two placeholders: + - {0} is the cluster key converted to a string + - {1} is the number of items in the cluster (always 1 in this case) + + If this is not set, the value from + ClusteringStrategy.DefaultDisplayLabelFormatSingular will be used + + + + Gets or sets the format that will be used when the cluster + contains 0 or two or more items. The format string must accept two placeholders: + - {0} is the cluster key converted to a string + - {1} is the number of items in the cluster + + If this is not set, the value from + ClusteringStrategy.DefaultDisplayLabelFormatPlural will be used + + + + Get the cluster key by which the given model will be partitioned by this strategy + + + + + + + Create a cluster to hold the given cluster key + + + + + + + Gets the display label that the given cluster should use + + + + + + + Create a filter that will include only model objects that + match one or more of the given values. + + + + + + + Create a label that combines the string representation of the cluster + key with a format string that holds an "X [N items in cluster]" type layout. + + + + + + + + This class calculates clusters from the groups that the column uses. + + + + This is the default strategy for all non-date, filterable columns. + + + This class does not strictly mimic the groups created by the given column. + In particular, if the programmer changes the default grouping technique + by listening for grouping events, this class will not mimic that behaviour. + + + + + + Get the cluster key by which the given model will be partitioned by this strategy + + + + + + + Gets the display label that the given cluster should use + + + + + + + This enum is used to indicate various portions of a datetime + + + + + Year + + + + + Month + + + + + Day of the month + + + + + Hour + + + + + Minute + + + + + Second + + + + + This class implements a strategy where the model objects are clustered + according to some portion of the datetime value in the configured column. + + To create a strategy that grouped people who were born in + the same month, you would create a strategy that extracted just + the month, and formatted it to show just the month's name. Like this: + + + someColumn.ClusteringStrategy = new DateTimeClusteringStrategy(DateTimePortion.Month, "MMMM"); + + + + + Create a strategy that clusters by month/year + + + + + Create a strategy that clusters around the given parts + + + + + + + Gets or sets the format string will will be used to create a user-presentable + version of the cluster key. + + The format should use the date/time format strings, as documented + in the Windows SDK. Both standard formats and custom format will work. + "D" - long date pattern + "MMMM, yyyy" - "January, 1999" + + + + Gets or sets the parts of the DateTime that will be extracted when + determining the clustering key for an object. + + + + + Get the cluster key by which the given model will be partitioned by this strategy + + + + + + + Gets the display label that the given cluster should use + + + + + + + Convert the given date into a user presentable string + + + + + + + Instances of this class know how to build a Filter menu. + It is responsible for clustering the values in the target column, + build a menu that shows those clusters, and then constructing + a filter that will enact the users choices. + + + Almost all of the methods in this class are declared as "virtual protected" + so that subclasses can provide alternative behaviours. + + + + + Gets or sets the string that labels the Apply button. + Exposed so it can be localized. + + + + + Gets or sets the string that labels the Clear All menu item. + Exposed so it can be localized. + + + + + Gets or sets the string that labels the Filtering menu as a whole.. + Exposed so it can be localized. + + + + + Gets or sets the string that represents Select All values. + If this is set to null or empty, no Select All option will be included. + Exposed so it can be localized. + + + + + Gets or sets the image that will be placed next to the Clear Filtering menu item + + + + + Gets or sets the image that will be placed next to all "Apply" menu items on the filtering menu + + + + + Gets or sets whether null should be considered as a valid data value. + If this is true (the default), then a cluster will null as a key will be allow. + If this is false, object that return a cluster key of null will ignored. + + + + + Gets or sets the maximum number of objects that the clustering strategy + will consider. This should be large enough to collect all unique clusters, + but small enough to finish in a reasonable time. + + The default value is 10,000. This should be perfectly + acceptable for almost all lists. + + + + Create a Filter menu on the given tool tip for the given column in the given ObjectListView. + + This is the main entry point into this class. + + + + The strip that should be shown to the user + + + + Create a collection of clusters that should be presented to the user + + + + + + + + + Order the given list of clusters in the manner in which they should be presented to the user. + + + + + + + Do the work of making a menu that shows the clusters to the users + + + + + + + + Wrap a protected section around the real HandleItemChecked method, so that if + that method tries to change a "checkedness" of an item, we don't get a recursive + stack error. Effectively, this ensure that HandleItemChecked is only called + in response to a user action. + + + + + + + Handle a user-generated ItemCheck event + + + + + + + Handle any checking/unchecking of the Select All option, and keep + its checkedness in sync with everything else that is checked. + + + + + + + + Clear all the filters that are applied to the given column + + The column from which filters are to be removed + + + + Apply the selected values from the given list as a filter on the given column + + A list in which the checked items should be used as filters + The column for which a filter should be generated + + + + Interface for model-by-model filtering + + + + + Should the given model be included when this filter is installed + + The model object to consider + Returns true if the model will be included by the filter + + + + Interface for whole list filtering + + + + + Return a subset of the given list of model objects as the new + contents of the ObjectListView + + The collection of model objects that the list will possibly display + The filtered collection that holds the model objects that will be displayed. + + + + Base class for model-by-model filters + + + + + Should the given model be included when this filter is installed + + The model object to consider + Returns true if the model will be included by the filter + + + + This filter calls a given Predicate to decide if a model object should be included + + + + + Create a filter based on the given predicate + + The function that will filter objects + + + + Gets or sets the predicate used to filter model objects + + + + + Should the given model object be included? + + + + + + + A CompositeFilter joins several other filters together. + If there are no filters, all model objects are included + + + + + Create an empty filter + + + + + Create a composite filter from the given list of filters + + A list of filters + + + + Gets or sets the filters used by this composite + + + + + Get the sub filters that are text match filters + + + + + Decide whether or not the given model should be included by the filter + + + True if the object is included by the filter + + + + Decide whether or not the given model should be included by the filter + + Filters is guaranteed to be non-empty when this method is called + The model object under consideration + True if the object is included by the filter + + + + A CompositeAllFilter joins several other filters together. + A model object must satisfy all filters to be included. + If there are no filters, all model objects are included + + + + + Create a filter + + + + + + Decide whether or not the given model should be included by the filter + + Filters is guaranteed to be non-empty when this method is called + The model object under consideration + True if the object is included by the filter + + + + A CompositeAllFilter joins several other filters together. + A model object must only satisfy one of the filters to be included. + If there are no filters, all model objects are included + + + + + Create a filter from the given filters + + + + + + Decide whether or not the given model should be included by the filter + + Filters is guaranteed to be non-empty when this method is called + The model object under consideration + True if the object is included by the filter + + + + Instances of this class extract a value from the model object + and compare that value to a list of fixed values. The model + object is included if the extracted value is in the list + + If there is no delegate installed or there are + no values to match, no model objects will be matched + + + + Create a filter that will use the given delegate to extract values + + + + + + Create a filter that will extract values using the given delegate + and compare them to the values in the given list. + + + + + + + Gets or sets the delegate that will be used to extract values + from model objects + + + + + Gets or sets the list of values that the value extracted from + the model object must match in order to be included. + + + + + Should the given model object be included? + + + + + + + Decides if the given property is a match for the values in the PossibleValues collection + + + + + + + Instances of this class match a property of a model objects against + a list of bit flags. The property should be an xor-ed collection + of bits flags. + + Both the property compared and the list of possible values + must be convertible to ulongs. + + + + Create an instance + + + + + + + Gets or sets the collection of values that will be matched. + These must be ulongs (or convertible to ulongs). + + + + + Decides if the given property is a match for the values in the PossibleValues collection + + + + + + + Base class for whole list filters + + + + + Return a subset of the given list of model objects as the new + contents of the ObjectListView + + The collection of model objects that the list will possibly display + The filtered collection that holds the model objects that will be displayed. + + + + Instance of this class implement delegate based whole list filtering + + + + + A delegate that filters on a whole list + + + + + + + Create a ListFilter + + + + + + Gets or sets the delegate that will filter the list + + + + + Do the actual work of filtering + + + + + + + Filter the list so only the last N entries are displayed + + + + + Create a no-op tail filter + + + + + Create a filter that includes on the last N model objects + + + + + + Gets or sets the number of model objects that will be + returned from the tail of the list + + + + + Return the last N subset of the model objects + + + + + + + Instances of this class cluster model objects on the basis of a + property that holds an xor-ed collection of bit flags. + + + + + Create a clustering strategy that operates on the flags of the given enum + + + + + + Create a clustering strategy around the given collections of flags and their display labels. + There must be the same number of elements in both collections. + + The list of flags. + + + + + Gets the value that will be xor-ed to test for the presence of a particular value. + + + + + Gets the labels that will be used when the corresponding Value is XOR present in the data. + + + + + Get the cluster key by which the given model will be partitioned by this strategy + + + + + + + Gets the display label that the given cluster should use + + + + + + + Create a filter that will include only model objects that + match one or more of the given values. + + + + + + + A cluster is a like collection of objects that can be usefully filtered + as whole using the filtering UI provided by the ObjectListView. + + + + + Gets or sets how many items belong to this cluster + + + + + Gets or sets the label that will be shown to the user to represent + this cluster + + + + + Gets or sets the actual data object that all members of this cluster + have commonly returned. + + + + + Implementation of this interface control the selecting of cluster keys + and how those clusters will be presented to the user + + + + + Gets or sets the column upon which this strategy will operate + + + + + Get the cluster key by which the given model will be partitioned by this strategy + + If the returned value is an IEnumerable, the given model is considered + to belong to multiple clusters + + + + + + Create a cluster to hold the given cluster key + + + + + + + Gets the display label that the given cluster should use + + + + + + + Create a filter that will include only model objects that + match one or more of the given values. + + + + + + + Instances of this class include only those rows of the listview + that match one or more given strings. + + This class can match strings by prefix, regex, or simple containment. + There are factory methods for each of these matching strategies. + + + + Create a text filter that will include rows where any cell matches + any of the given regex expressions. + + + + + Any string that is not a valid regex expression will be ignored. + + + + Create a text filter that includes rows where any cell begins with one of the given strings + + + + + + + + Create a text filter that includes rows where any cell contains any of the given strings. + + + + + + + + Create a TextFilter + + + + + + Create a TextFilter that finds the given string + + + + + + + Create a TextFilter that finds the given string using the given comparison + + + + + + + + Gets or sets which columns will be used for the comparisons? If this is null, all columns will be used + + + + + Gets or sets additional columns which will be used in the comparison. These will be used + in addition to either the Columns property or to all columns taken from the control. + + + + + Gets or sets the collection of strings that will be used for + contains matching. Setting this replaces all previous texts + of any kind. + + + + + Gets whether or not this filter has any search criteria + + + + + Gets or set the ObjectListView upon which this filter will work + + + You cannot really rebase a filter after it is created, so do not change this value. + It is included so that it can be set in an object initializer. + + + + + Gets or sets the collection of strings that will be used for + prefix matching. Setting this replaces all previous texts + of any kind. + + + + + Gets or sets the options that will be used when compiling the regular expression. + + + This is only used when doing Regex matching (obviously). + If this is not set specifically, the appropriate options are chosen to match the + StringComparison setting (culture invariant, case sensitive). + + + + + Gets or sets the collection of strings that will be used for + regex pattern matching. Setting this replaces all previous texts + of any kind. + + + + + Gets or sets how the filter will match text + + + + + Loop over the columns that are being considering by the filter + + + + + + Do the actual work of filtering + + + + + + + Find all the ways in which this filter matches the given string. + + This is used by the renderer to decide which bits of + the string should be highlighted + + A list of character ranges indicating the matched substrings + + + + Is the given column one of the columns being used by this filter? + + + + + + + Base class for the various types of string matching that TextMatchFilter provides + + + + + Gets how the filter will match text + + + + + Gets the text filter to which this component belongs + + + + + Gets or sets the text that will be matched + + + + + Find all the ways in which this filter matches the given string. + + + + This is used by the renderer to decide which bits of + the string should be highlighted. + + this.Text will not be null or empty when this is called. + + The text of the cell we want to search + A list of character ranges indicating the matched substrings + + + + Does the given text match the filter + + + this.Text will not be null or empty when this is called. + + The text of the cell we want to search + Return true if the given cellText matches our strategy + + + + This component provides text contains matching strategy. + + + + + Create a text contains strategy + + + + + + + Does the given text match the filter + + + this.Text will not be null or empty when this is called. + + The text of the cell we want to search + Return true if the given cellText matches our strategy + + + + Find all the ways in which this filter matches the given string. + + + + This is used by the renderer to decide which bits of + the string should be highlighted. + + this.Text will not be null or empty when this is called. + + The text of the cell we want to search + A list of character ranges indicating the matched substrings + + + + This component provides text begins with matching strategy. + + + + + Create a text begins strategy + + + + + + + Does the given text match the filter + + + this.Text will not be null or empty when this is called. + + The text of the cell we want to search + Return true if the given cellText matches our strategy + + + + Find all the ways in which this filter matches the given string. + + + + This is used by the renderer to decide which bits of + the string should be highlighted. + + this.Text will not be null or empty when this is called. + + The text of the cell we want to search + A list of character ranges indicating the matched substrings + + + + This component provides regex matching strategy. + + + + + Creates a regex strategy + + + + + + + Gets or sets the options that will be used when compiling the regular expression. + + + + + Gets or sets a compilex regular expression, based on our current Text and RegexOptions. + + + If Text fails to compile as a regular expression, this will return a Regex object + that will match all strings. + + + + + Gets whether or not our current regular expression is a valid regex + + + + + Does the given text match the filter + + + this.Text will not be null or empty when this is called. + + The text of the cell we want to search + Return true if the given cellText matches our strategy + + + + Find all the ways in which this filter matches the given string. + + + + This is used by the renderer to decide which bits of + the string should be highlighted. + + this.Text will not be null or empty when this is called. + + The text of the cell we want to search + A list of character ranges indicating the matched substrings + + + + This attribute is used to mark a property of a model + class that should be noticed by Generator class. + + + All the attributes of this class match their equivilent properties on OLVColumn. + + + + + Create a new OLVColumnAttribute + + + + + Create a new OLVColumnAttribute with the given title + + The title of the column + + + + + + + + + + + + + + + + + + + + + + + + + + + + + An array of IComparables that mark the cutoff points for values when + grouping on this column. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Properties marked with [OLVChildren] will be used as the children source in a TreeListView. + + + + + Properties marked with [OLVIgnore] will not have columns generated for them. + + + + + ColumnComparer is the workhorse for all comparison between two values of a particular column. + If the column has a specific comparer, use that to compare the values. Otherwise, do + a case insensitive string compare of the string representations of the values. + + This class inherits from both IComparer and its generic counterpart + so that it can be used on untyped and typed collections. + This is used by normal (non-virtual) ObjectListViews. Virtual lists use + ModelObjectComparer + + + + + Gets or sets the method that will be used to compare two strings. + The default is to compare on the current culture, case-insensitive + + + + + Create a ColumnComparer that will order the rows in a list view according + to the values in a given column + + The column whose values will be compared + The ordering for column values + + + + Create a ColumnComparer that will order the rows in a list view according + to the values in a given column, and by a secondary column if the primary + column is equal. + + The column whose values will be compared + The ordering for column values + The column whose values will be compared for secondary sorting + The ordering for secondary column values + + + + Compare two rows + + row1 + row2 + An ordering indication: -1, 0, 1 + + + + Compare two rows + + row1 + row2 + An ordering indication: -1, 0, 1 + + + + Compare the actual values to be used for sorting + + The aspect extracted from the first row + The aspect extracted from the second row + An ordering indication: -1, 0, 1 + + + + This comparer sort list view groups. OLVGroups have a "SortValue" property, + which is used if present. Otherwise, the titles of the groups will be compared. + + + + + Create a group comparer + + The ordering for column values + + + + Compare the two groups. OLVGroups have a "SortValue" property, + which is used if present. Otherwise, the titles of the groups will be compared. + + group1 + group2 + An ordering indication: -1, 0, 1 + + + + This comparer can be used to sort a collection of model objects by a given column + + + This is used by virtual ObjectListViews. Non-virtual lists use + ColumnComparer + + + + + Gets or sets the method that will be used to compare two strings. + The default is to compare on the current culture, case-insensitive + + + + + Create a model object comparer + + + + + + + Create a model object comparer with a secondary sorting column + + + + + + + + + Compare the two model objects + + + + + + + + Compare the actual values + + + + + + + + A helper class that translates DataSource events for an ObjectListView + + + + + Make a DataSourceAdapter + + + + + Finalize this object + + + + + Release all the resources used by this instance + + + + + Release all the resources used by this instance + + + + + Gets or sets whether or not columns will be automatically generated to show the + columns when the DataSource is set. + + This must be set before the DataSource is set. It has no effect afterwards. + + + + Get or set the DataSource that will be displayed in this list view. + + + + + Gets or sets the name of the list or table in the data source for which the DataListView is displaying data. + + If the data source is not a DataSet or DataViewManager, this property has no effect + + + + Gets the ObjectListView upon which this adaptor will operate + + + + + Gets or sets the currency manager which is handling our binding context + + + + + + + + + + + + + + + + + + + + + + + + + + + Our data source has changed. Figure out how to handle the new source + + + + + Our data source has changed. Figure out how to handle the new source + + + + + The data source for this control has changed. Reconfigure the control for the new source + + + + + Take the contents of the currently bound list and put them into the control + + + + + Create columns for the listview based on what properties are available in the data source + + + This method will create columns if there is not already a column displaying that property. + + + + + Decide if a new column should be added to the control to display + the given property + + + + + + + Configure the given column to show the given property. + The title and aspect name of the column are already filled in. + + + + + + + Generate aspect getters and putters for any columns that are missing them (and for which we have + enough information to actually generate a getter) + + + + + CurrencyManager ListChanged event handler. + Deals with fine-grained changes to list items. + + + It's actually difficult to deal with these changes in a fine-grained manner. + If our listview is grouped, then any change may make a new group appear or + an old group disappear. It is rarely enough to simply update the affected row. + + + + + + + Handle PropertyDescriptor* events + + + + + + Handle ItemMoved event + + + + + + Handle the ItemDeleted event + + + + + + Handle an ItemAdded event. + + + + + + Handle the Reset event + + + + + + Handle ItemChanged event. This is triggered when a single item + has changed, so just refresh that one item. + + + Even in this simple case, we should probably rebuild the list. + For example, the change could put the item into its own new group. + + + + The CurrencyManager calls this if the data source looks + different. We just reload everything. + + + + + CHECK: Do we need this if we are handle ListChanged metadata events? + + + + + Called by the CurrencyManager when the currently selected item + changes. We update the ListView selection so that we stay in sync + with any other controls bound to the same source. + + + + + + + Change the control's position (which is it's currently selected row) + to the nth row in the dataset + + The index of the row to be selected + + + + Handle the selection changing in our ListView. + We need to tell our currency manager about the new position. + + + + + + + Handle the frozenness of our ListView changing. + + + + + + + Handle a change to the BindingContext of our ListView. + + + + + + + These delegates are used to extract an aspect from a row object + + + + + These delegates are used to put a changed value back into a model object + + + + + These delegates can be used to convert an aspect value to a display string, + instead of using the default ToString() + + + + + These delegates are used to get the tooltip for a cell + + + + + These delegates are used to the state of the checkbox for a row object. + + + For reasons known only to someone in Microsoft, we can only set + a boolean on the ListViewItem to indicate it's "checked-ness", but when + we receive update events, we have to use a tristate CheckState. So we can + be told about an indeterminate state, but we can't set it ourselves. + + As of version 2.0, we can now return indeterminate state. + + + + + These delegates are used to get the state of the checkbox for a row object. + + + + + + + These delegates are used to put a changed check state back into a model object + + + + + These delegates are used to put a changed check state back into a model object + + + + + + + + These delegates are used to get the renderer for a particular cell + + + + + The callbacks for RightColumnClick events + + + + + This delegate will be used to own draw header column. + + + + + This delegate is called when a group has been created but not yet made + into a real ListViewGroup. The user can take this opportunity to fill + in lots of other details about the group. + + + + + These delegates are used to retrieve the object that is the key of the group to which the given row belongs. + + + + + These delegates are used to convert a group key into a title for the group + + + + + These delegates are used to get the tooltip for a column header + + + + + These delegates are used to fetch the image selector that should be used + to choose an image for this column. + + + + + These delegates are used to draw a cell + + + + + These delegates are used to fetch a row object for virtual lists + + + + + These delegates are used to format a listviewitem before it is added to the control. + + + + + These delegates can be used to return the array of texts that should be searched for text filtering + + + + + These delegates are used to sort the listview in some custom fashion + + + + + These delegates are used to order two strings. + x cannot be null. y can be null. + + + + + An ObjectListView is a much easier to use, and much more powerful, version of the ListView. + + + + An ObjectListView automatically populates a ListView control with information taken + from a given collection of objects. It can do this because each column is configured + to know which bit of the model object (the "aspect") it should be displaying. Columns similarly + understand how to sort the list based on their aspect, and how to construct groups + using their aspect. + + + Aspects are extracted by giving the name of a method to be called or a + property to be fetched. These names can be simple names or they can be dotted + to chain property access e.g. "Owner.Address.Postcode". + Aspects can also be extracted by installing a delegate. + + + An ObjectListView can show a "this list is empty" message when there is nothing to show in the list, + so that the user knows the control is supposed to be empty. + + + Right clicking on a column header should present a menu which can contain: + commands (sort, group, ungroup); filtering; and column selection. Whether these + parts of the menu appear is controlled by ShowCommandMenuOnRightClick, + ShowFilterMenuOnRightClick and SelectColumnsOnRightClick respectively. + + + The groups created by an ObjectListView can be configured to include other formatting + information, including a group icon, subtitle and task button. Using some undocumented + interfaces, these groups can even on virtual lists. + + + ObjectListView supports dragging rows to other places, including other application. + Special support is provide for drops from other ObjectListViews in the same application. + In many cases, an ObjectListView becomes a full drag source by setting to + true. Similarly, to accept drops, it is usually enough to set to true, + and then handle the and events (or the and + events, if you only want to handle drops from other ObjectListViews in your application). + + + For these classes to build correctly, the project must have references to these assemblies: + + + System + System.Data + System.Design + System.Drawing + System.Windows.Forms (obviously) + + + + + + How does a user indicate that they want to edit cells? + + + + + 列表将不支持编辑(同时F2按键无效) + + + + + 单击 单元格 将编辑值. + 选择该行,就像正常选择行一样。用户必须按F2键才能编辑主列。 + + + + + 双击子项或主列将编辑该单元格。 + F2键将编辑主列。 + + + + + 按F2键是编辑单元格的唯一方法。一旦主列被编辑, + 行中的其他单元格可以通过按Tab键进行编辑。 + + + + + 只需单击任意单元格即可编辑值,即使是主列也是如此。 + + + + + 这些值指定向用户显示列选择的方式 + + + + + 不会显示任何列选择 + + + + + 这些列将显示在主菜单中 + + + + + 这些列将显示在子菜单中 + + + + + 将显示一个模式对话框,允许用户选择列 + + + + + Triggered after a ObjectListView has been searched by the user typing into the list + + + + + Triggered after a ObjectListView has been sorted + + + + + Triggered before a ObjectListView is searched by the user typing into the list + + + Set Cancelled to true to prevent the searching from taking place. + Changing StringToFind or StartSearchFrom will change the subsequent search. + + + + + Triggered before a ObjectListView is sorted + + + Set Cancelled to true to prevent the sort from taking place. + Changing ColumnToSort or SortOrder will change the subsequent sort. + + + + + Triggered after a ObjectListView has created groups + + + + + Triggered before a ObjectListView begins to create groups + + + Set Groups to prevent the default group creation process + + + + + Triggered just before a ObjectListView creates groups + + + You can make changes to the groups, which have been created, before those + groups are created within the listview. + + + + + Triggered when a button in a cell is left clicked. + + + + + This event is triggered when the user moves a drag over an ObjectListView that + has a SimpleDropSink installed as the drop handler. + + + Handlers for this event should set the Effect argument and optionally the + InfoMsg property. They can also change any of the DropTarget* setttings to change + the target of the drop. + + + + + Triggered when a cell has finished being edited. + + + + + Triggered when a cell is about to finish being edited. + + If Cancel is already true, the user is cancelling the edit operation. + Set Cancel to true to prevent the value from the cell being written into the model. + You cannot prevent the editing from finishing within this event -- you need + the CellEditValidating event for that. + + + + Triggered when a cell is about to be edited. + + Set Cancel to true to prevent the cell being edited. + You can change the the Control to be something completely different. + + + + Triggered when a cell editor needs to be validated + + + If this event is cancelled, focus will remain on the cell editor. + + + + + Triggered when a cell is left clicked. + + + + + Triggered when the mouse is above a cell. + + + + + Triggered when a cell is right clicked. + + + + + This event is triggered when a cell needs a tool tip. + + + + + This event is triggered when a checkbox is checked/unchecked on a subitem + + + + + Triggered when a column header is right clicked. + + + + + This event is triggered when the user releases a drag over an ObjectListView that + has a SimpleDropSink installed as the drop handler. + + + + + This event is triggered when the control needs to filter its collection of objects. + + + + + This event is triggered when a cell needs to be formatted. + + + + + This event is triggered when the frozeness of the control changes. + + + + + This event is triggered when a row needs to be formatted. + + + + + This event is triggered when a group is about to collapse or expand. + This can be cancelled to prevent the expansion. + + + + + This event is triggered when a group changes state. + + + + + This event is triggered when a header checkbox is changing value + + + + + This event is triggered when a header needs a tool tip. + + + + + Triggered when the "hot" item changes + + + + + Triggered when a hyperlink cell is clicked. + + + + + Triggered when the task text of a group is clicked. + + + + + Is the value in the given cell a hyperlink. + + + + + Some new objects are about to be added to an ObjectListView. + + + + + The contents of the ObjectListView has changed. + + + + + The contents of the ObjectListView is about to change via a SetObjects call + + + Set Cancelled to true to prevent the contents of the list changing. This does not work with virtual lists. + + + + + Some objects are about to be removed from an ObjectListView. + + + + + This event is triggered when the user moves a drag over an ObjectListView that + has a SimpleDropSink installed as the drop handler, and when the source control + for the drag was an ObjectListView. + + + Handlers for this event should set the Effect argument and optionally the + InfoMsg property. They can also change any of the DropTarget* setttings to change + the target of the drop. + + + + + This event is triggered when the user releases a drag over an ObjectListView that + has a SimpleDropSink installed as the drop handler and when the source control + for the drag was an ObjectListView. + + + + + This event is triggered once per user action that changes the selection state + of one or more rows. + + + + + This event is triggered when the contents of the ObjectListView has scrolled. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Tell the world when a cell is about to be edited. + + + + + Tell the world when a cell is about to finish being edited. + + + + + Tell the world when a cell is about to finish being edited. + + + + + Tell the world when a cell has finished being edited. + + + + + 创建一个 ObjectListView + + + + + Dispose of any resources this instance has been using + + + + + + 获取鼠标左键是否在此时按下。 + + + + + 获取该程序是否在Vista或更高版本上运行 + + + + + 获取该程序是否在Win7或更高版本上运行 + + + + + Gets or sets how what smoothing mode will be applied to graphic operations. + + + + + Gets or sets how should text be renderered. + + + + + 获取或设置当组Key为Null时将用于标题组的字符串。将其公开以使其可以本地化。 + + + + + Convert the given enumerable into an ArrayList as efficiently as possible + + The source collection + If true, this method will always create a new + collection. + An ArrayList with the same contents as the given collection. + + When we move to .NET 3.5, we can use LINQ and not need this method. + + + + + Return the count of items in the given enumerable + + + + When we move to .NET 3.5, we can use LINQ and not need this method. + + + + Return whether or not the given enumerable is empty. A string is regarded as + an empty collection. + + + True if the given collection is null or empty + + When we move to .NET 3.5, we can use LINQ and not need this method. + + + + + Gets or sets whether all ObjectListViews will silently ignore missing aspect errors. + + + + By default, if an ObjectListView is asked to display an aspect + (i.e. a field/property/method) + that does not exist from a model, it displays an error message in that cell, since that + condition is normally a programming error. There are some use cases where + this is not an error -- in those cases, set this to true and ObjectListView will + simply display an empty cell. + + Be warned: if you set this to true, it can be very difficult to track down + typing mistakes or name changes in AspectNames. + + + + + Gets or sets whether the control will draw a rectangle in each cell showing the cell padding. + + + + This can help with debugging display problems from cell padding. + + As with all cell padding, this setting only takes effect when the control is owner drawn. + + + + + Gets the style that will be used by default to format disabled rows + + + + + Gets the style that will be used by default to format hot rows + + + + + Gets or sets an model filter that is combined with any column filtering that the end-user specifies. + + This is different from the ModelFilter property, since setting that will replace + any column filtering, whereas setting this will combine this filter with the column filtering + + + + Get or set all the columns that this control knows about. + Only those columns where IsVisible is true will be seen by the user. + + + + If you want to add new columns programmatically, add them to + AllColumns and then call RebuildColumns(). Normally, you do not have to + deal with this property directly. Just use the IDE. + + If you do add or remove columns from the AllColumns collection, + you have to call RebuildColumns() to make those changes take effect. + + + + + 获取或设置每隔一行的背景色 + + + + + 获取已设置的交替行背景色或默认颜色 + + + + + 此属性强制ObjectListView始终按给定列对项进行分组。 + + + + + 如果AlwaysGroupByColumn不为空,则此属性将用于确定如何对这些组进行排序。 + 如果此属性的值为SortOrder.None,则排序顺序将根据用户上次单击的标题切换。 + + + + + Give access to the image list that is actually being used by the control + + + Normally, it is preferable to use SmallImageList. Only use this property + if you know exactly what you are doing. + + + + + 获取或设置编辑单元格的方式 + + Columns can also be marked as editable. + + + + 编辑单元格时,是否应该使用整个单元格(减去复选框或图像使用的任何空间)? + 默认值为 true. + + + This is always treated as true when the control is NOT owner drawn. + + When this is false and the control is owner drawn, + ObjectListView will try to calculate the width of the cell's + actual contents, and then size the editing control to be just the right width. If this is true, + the whole width of the cell will be used, regardless of the cell's contents. + + Each column can have a different value for property. This value from the control is only + used when a column is not specified one way or another. + Regardless of this setting, developers can specify the exact size of the editing control + by listening for the CellEditStarting event. + + + + + Gets or sets the engine that will handle key presses during a cell edit operation. + Settings this to null will reset it to default value. + + + + + 获取当前用于编辑单元格的控件。 + + This will obviously be null if no cell is being edited. + + + + 获取或设置编辑控件左边缘或右边缘的单元格时Tab键的行为。 + 如果为False(默认值),则按Tab键将换行到同一行的另一侧。 + 如果为True,编辑最右边的单元格时按Tab键将前进到下一行, + 编辑最左边的单元格时按Shift-Tab组合键将更改为上一行。 + + + + + 获取或设置编辑单元格时Enter键的行为。 + 如果为False(默认值),则按Enter键将简单地完成编辑操作。 + 如果为True,则Enter将完成编辑操作,并在当前单元格下方的单元格上启动新的编辑操作,在位于底部单元格时换行到下一行的顶部。 + + + + + 获取显示单元格提示的工具提示控件 + + + + + 获取或设置该项的每个单元格周围将留空的像素数。单元格内容在考虑填充后对齐。 + + + Each value of the given rectangle will be treated as an inset from + the corresponding side. The width of the rectangle is the padding for the + right cell edge. The height of the rectangle is the padding for the bottom + cell edge. + + + So, this.olv1.CellPadding = new Rectangle(1, 2, 3, 4); will leave one pixel + of space to the left of the cell, 2 pixels at the top, 3 pixels of space + on the right edge, and 4 pixels of space at the bottom of each cell. + + + This setting only takes effect when the control is owner drawn. + + This setting only affects the contents of the cell. The background is + not affected. + If you set this to a foolish value, your control will appear to be empty. + + + + + 获取或设置默认情况下单元格垂直对齐的方式。 + + This setting only takes effect when the control is owner drawn. It will only be noticable + when RowHeight has been set such that there is some vertical space in each row. + + + + Should this list show checkboxes? + + + + + 返回选中行的模型对象;如果未选中行或选中多行,则返回NULL + + + + + Get or set the collection of model objects that are checked. + When setting this property, any row whose model object isn't + in the given collection will be unchecked. Setting to null is + equivilent to unchecking all. + + + + This property returns a simple collection. Changes made to the returned + collection do NOT affect the list. This is different to the behaviour of + CheckedIndicies collection. + + + .NET's CheckedItems property is not helpful. It is just a short-hand for + iterating through the list looking for items that are checked. + + + The performance of the get method is O(n), where n is the number of items + in the control. The performance of the set method is + O(n + m) where m is the number of objects being checked. Be careful on long lists. + + + + + + 获取或设置可枚举对象中的选中对象。 + + + Useful for checking all objects in the list. + + + this.olv1.CheckedObjectsEnumerable = this.olv1.Objects; + + + + + Gets Columns for this list. We hide the original so we can associate + a specialised editor with it. + + + + + 获取/设置当列表切换到TileView(平铺视图)时应使用的列的列表。 + + + + + 按向用户显示的顺序返回可见列 + + + + + 获取显示列表的控件区域,减去任何标题控件 + + + + + 获取或设置当用户按Ctrl+C组合键时是否应将选定行复制到剪贴板 + + + + + 获取或设置按Ctrl+C键复制到剪贴板功能是否应使用安装的DragSource创建放置到剪贴板上的数据对象。 + + This is normally what is desired, unless a custom DragSource is installed + that does some very specialized drag-drop behaviour. + + + + Gets the list of decorations that will be drawn the ListView + + + + Do not modify the contents of this list directly. Use the AddDecoration() and RemoveDecoration() methods. + + + A decoration scrolls with the list contents. An overlay is fixed in place. + + + + + + 所有者绘制时,此渲染器将绘制未指定特定渲染器的列 + + 如果尝试将其设置为NULL,则它将恢复为HighlightTextRenende + + + + 获取用于绘制给定单元格的渲染器。 + + The row model for the row + The column to be drawn + The renderer used for drawing a cell. Must not return null. + + + + 获取或设置将应用于禁用项的样式。 + + If this is not set explicitly, will be used. + + + + 获取或设置已禁用的模型对象的列表。无法选择或激活已禁用的对象。 + + + + + 判断此给定模型对象是否已禁用 + + + + + + + 禁用给定的模型对象。禁用的对象无法选择或激活。 + + Must not be null + + + + 禁用所有给定的模型对象 + + + + + + 启用给定的模型对象,以便可以再次选择并激活它。 + + Must not be null + + + + 启用所有给定的模型对象 + + + + + + 忽略所有禁用的对象。这不会触发重绘或重建 + + + + + Gets or sets the object that controls how drags start from this control + + + + + Gets or sets the object that controls how drops are accepted and processed + by this ListView. + + + + If the given sink is an instance of SimpleDropSink, then events from the drop sink + will be automatically forwarded to the ObjectListView (which means that handlers + for those event can be configured within the IDE). + + If this is set to null, the control will not accept drops. + + + + + This registry decides what control should be used to edit what cells, based + on the type of the value in the cell. + + + All instances of ObjectListView share the same editor registry. + + + + 获取或设置在此列表视图中没有项时应显示的文本。 + + If the EmptyListMsgOverlay has been changed to something other than a TextOverlay, + this property does nothing + + + + 获取或设置绘制列表空消息时应使用的字体 + + If the EmptyListMsgOverlay has been changed to something other than a TextOverlay, + this property does nothing + + + + 返回“列表为空”消息的字体或合理的默认值 + + + + + Gets or sets the overlay responsible for drawing the List Empty msg. + + + + + 获取在筛选中幸存下来的对象的集合。 + + + + This collection is the result of filtering the current list of objects. + It is not a snapshot of the filtered list that was last used to build the control. + + + Normal warnings apply when using this with virtual lists. It will work, but it + may take a while. + + + + + + 获取或设置将用于生成筛选器菜单的策略对象 + + 如果为NULL,则不会生成筛选器菜单。 + + + + 获取或设置具有键盘焦点的行 + + + + Setting an object to be focused does *not* select it. If you want to select and focus a row, + use . + + + This property is not generally used and is only useful in specialized situations. + + + + + + 隐藏Groups集合,使其在“属性”网格中不可见。 + + + + + 获取或设置分组使用的ImageList + + 如果未设置此选项,则分组标题将不会显示任何图像。 + + + + 获取在组为空或包含多个项目时应如何设置组标签的格式 + + + 给定的格式字符串必须有两个占位符: + + {0} - 原来的组标题 + {1} - 组中的项目数 + + + "[{0} [{1} 项]" + + + + 返回this.GroupWithItemCountFormat或合理的默认值 + + + + + 获取在组仅包含单个项目时应如何设置组标签的格式 + + + 给定的格式字符串必须有两个占位符: + + {0} - 原来的组标题 + {1} - 组中的项目数 (总是1) + + + "[{0} [{1} 项]" + + + + 获取GroupWithItemCountSingularFormat或合理的默认值 + + + + + 获取或设置此ObjectListView中的组是否应可折叠。 + + + 此特性只支持Vista或之后的系统. + + + + + 获取当前列表是否存在当列表为空时显示的文本 + + + + + 获取是否有要绘制的叠加层 + + + + + 获取ListView的列头控件 + + + + + 获取或设置列标题文本的绘制字体 + + 单个列可以通过其HeaderFormatStyle属性重写此设置。 + + + + 获取或设置将用于绘制列表视图的列标题的样式 + + + + 仅当HeaderUsesThemes为false时才使用此选项。 + + + 单个列可以通过其HeaderFormatStyle属性重写此设置。 + + + + + + 获取或设置标题的最大高度。-1表示没有最大值。 + + + + + 获取或设置标题的最小高度。-1表示没有最小值。 + + + + + 获取或设置是否严格按照操作系统的主题绘制标题。 + + + + 如果设置为true,则列头将完全由系统呈现,不需要ObjectListViews的任何特殊处理。 + 页眉中将没有图像、没有过滤器指示符、没有文字换行、没有页眉样式、没有复选框。 + + 如果将其设置为False,ObjectListView将以其认为最好的方式呈现标题。 + 如果不需要特殊功能,则ObjectListView会将渲染委托给操作系统。 + 否则,ObjectListView将根据配置设置绘制标题。 + + + 没有主题的效果会因操作系统不同而不同。至少,分类指示器不会是标准的。 + + + + + + 获取或设置列头标题中的文本是否自动换行。 + + + 将在单词之间应用换行符。过长的单词仍将被省略。 + + 与所有使列头看起来不同的设置一样,HeaderUsesThemes必须设置为false,否则操作系统将负责绘制列头,并且不允许自动换行文本。 + + + + + + 获取显示列标题提示的工具提示 + + + + + 获取鼠标当前所在行的索引。 + + + + + 获取鼠标当前所在列的索引 + + + + + 获取鼠标当前所在的项/子项的一部分 + + + + + Gets an extended indication of the part of item/subitem/group that the mouse is currently over + + + + + 获取鼠标所在的组。 + + + + + 处于“热”状态的项的索引,即在光标下方。-1表示没有项目。 + + + + + 获取和设置对游标下的行应用哪种格式 + + + + 这仅在UseHotItem为true时生效。 + + 如果样式具有叠加层,则必须对其进行设置。*之前* 将其分配给此属性。之后添加它将被忽略。 + + + + + 获取已安装的热点项样式或合理的默认值。 + + + + + 获取和设置应将哪种格式应用于超链接 + + + + + 获取和设置所选行的背景应该使用什么颜色 + + + + + 返回应用于选定行的背景颜色或合理的默认值 + + + + + 获取和设置所选行的字体应该使用什么颜色 + + + + + 返回应用于选定行的字体颜色或合理的默认值 + + + + + 使用 SelectedBackColor 代替 + + + + + 使用 SelectedBackColorOrDefault 代替 + + + + + 使用 SelectedForeColor 代替 + + + + + 使用 SelectedForeColorOrDefault 代替 + + + + + 使用 UnfocusedSelectedBackColor 代替 + + + + + 使用 UnfocusedSelectedBackColorOrDefault 代替 + + + + + 使用 UnfocusedSelectedForeColor 代替 + + + + + 使用 UnfocusedSelectedForeColorOrDefault 代替 + + + + + 获取或设置是否应将隐藏列包括在复制或拖动到其他应用程序的行的文本表示形式中。 + 如果为False(默认值),则仅包括可见列。 + + + + + 获取或设置复制行时,列标题是否在文本中。 + 如果为False(默认值),在文本中将不会显示列标题。 + + + + + 如果当前正在进行单元格编辑操作,则返回TRUE + + + + + 如果在开发环境中使用ObjectListView,则返回true。 + + + + + 获取当前列表是否正在筛选其内容 + + + + + 当用户在列表中键入内容时,是否应该搜索当前排序列中的值以查找匹配项? + 如果为False,则无论排序列是什么,都将始终使用主列。 + + When this is true, the behavior is like that of ITunes. + + + + 获取或设置此控件是否将使用SimpleDropSink接收拖动 + + + + 此设置将替换任何以前的DropSink。 + + + 将其设置为true后,SimpleDropSink仍需要配置为说明它何时可以接受拖动, + 以及在拖动某些内容时应该执行什么操作。需要执行这些操作使此属性几乎毫无用处 :( + + + + + + 获取或设置此控件是否将使用SimpleDragSource来启动拖动 + + 此设置将替换之前的任何DragSource + + + + 隐藏Items集合,使其在“属性”网格中不可见。 + + + + + 当列表中的项目处于非详细视图中时,此渲染器会绘制项目。在详细信息视图中,负责个体列的呈现器。 + + + + + 获取或设置最后一次排序的列 + + 这是PrimarySortColumn的别名 + + + + 获取或设置最后一次排序的方向 + + 这是 PrimarySortOrder的别名 + + + + 获取或设置应用于整个对象列表的筛选器。 + + + 列表将立即更新以反映此筛选器。 + + + + + 获取或设置应用于列表中每个模型对象的筛选器 + + + 您可能需要考虑使用 而不是此属性, + 因为AdditionalFilter在运行时与列筛选相结合。 + 设置此属性只是替换用户可能已给出的任何列筛选器。 + + The list is updated immediately to reflect this filter. + + + + + + Gets the hit test info last time the mouse was moved. + + Useful for hot item processing. + + + + 获取或设置列表显示的组列表。 + + + 此属性与.NET Groups属性的工作方式不同,应将其视为只读属性。 + 对列表所做的更改不会反映在ListView本身中。 + 在此列表中添加或删除组是没有意义的,这样的修改不会起到任何作用。 + 要执行此类操作,必须侦听BeforeCreatingGroups或AboutToCreateGroups事件, + 并更改这些事件中的组列表。 + + + + + 获取或设置折叠的OLVGroups的集合。 + + + + + Gets or sets whether the user wants to owner draw the header control + themselves. If this is false (the default), ObjectListView will use + custom drawing to render the header, if needed. + + + If you listen for the DrawColumnHeader event, you need to set this to true, + otherwise your event handler will not be called. + + + + + 获取/设置此列表将显示的对象集合 + + + + 设置此属性后,控件的内容将立即更新。 + + 如果可能,此方法将保留所选内容。使用 if + 如果您不想保留所选内容,请执行以下操作。 + 保留选择是该代码中最慢的部分,性能为O(N),其中n是选定的行数。 + 此方法不是线程安全的。 + 该属性确实适用于虚拟列表:设置是没有问题的,但如果您尝试获取它, + 并且列表有1000万个对象,则可能需要一些时间才能返回。 + 此集合未经过筛选。使用 只访问那些在任何已安装的筛选器中幸存下来的对象。 + + + + + 获取当前控件所有对象组成的列表 + + + + + 获取创建群集时将考虑的对象集合。 + (用于生成类似Excel的列筛选器) + + + + + 获取或设置将在ListView顶部绘制的图像 + + + + + 获取或设置将在ListView顶部绘制的文本 + + + + + 获取或设置所有覆盖图的透明度。0表示完全透明,255表示完全不透明。 + + + 这已经过时了,请在每个覆盖上使用Transparency。 + + + + + 获取将在ListView顶部绘制的覆盖列表 + + + You can add new overlays and remove overlays that you have added, but + don't mess with the overlays that you didn't create. + + + + + Gets or sets whether the ObjectListView will be owner drawn. Defaults to true. + + + + When this is true, all of ObjectListView's neat features are available. + + We have to reimplement this property, even though we just call the base + property, in order to change the [DefaultValue] to true. + + + + + + 获取或设置主复选框是否在列表重新生成和筛选操作中保持其值。 + + + + 此属性仅在未显式设置CheckStateGetter/Putter时才有用。 + 如果您使用CheckStateGetter/Putter,那么这些方法已经持久化了行的检查性。 + + 此默认值为true。如果为False,则在重新生成或筛选列表时,复选框将丢失其值。 + 如果在虚拟列表中将其设置为false,则必须安装CheckStateGetter/Putters。 + + + + + 获取或设置记住模型对象的复选框状态的字典 + + 当PersistentCheckBoxs值为TRUE时,此选项用于虚拟列表. + + + + 获取或设置最后一次排序的列 + + + + + 获取或设置最后一次排序的方向 + + + + + 获取或设置不可编辑复选框是否绘制为禁用。默认是false。 + + + 这仅在所有者描述模式(owner drawn mode)下有效。 + + + + + 以像素为单位指定控件中每行的高度。 + + 列表视图中的行高通常由字体大小和小图像列表大小决定。 + 此设置允许覆盖该计算(原因是:您仍然不能将行高设置为小于控件中使用的字体的行高)。 + 将其设置为-1表示使用正常计算方法。 + 此功能是体验功能!如果您使用此功能,您的程序可能会发生意想不到的事情。 + + + + + 获取每行有多少像素高 + + + + + 获取此控件的每页上显示多少行 + + + + + 获取/设置将用于解析排序时相等的比较的列(第二排序列)。 + + 此设置没有用户界面。它必须以编程方式设置。 + + + + 获取或设置当使用Second darySortColumn时,它将以什么顺序比较结果 + + + + + 获取或设置当用户按Ctrl+A组合键时是否应选择所有行 + + + + + 获取或设置当用户右键单击列标题时,是否应该显示一个菜单,允许用户选择视图中将显示哪些列 + + 这只是SelectColumnsOnRightClickBehaviour的兼容性包装属性. + + + + 获取或设置当右键单击标题时用户如何能够选择列 + + + + + 当列选择菜单打开时,是否应在选择项目后保持打开状态?保持打开状态允许用户一次打开或关闭多个列。 + + SelectColumnsOnRightClickBehaviour设置为InlineMenu时才有效。当行为设置为SubMenu菜单时,该选项不起作用。 + + + + 获取或设置选定列 + + + + 如果TintSortColumn为true,则排序列将自动成为选定列。 + + + 色调的颜色由SelectedColumnTint控制。 + + + + + + Gets or sets the decoration that will be drawn on all selected rows + + + + + 获取或设置应该使用什么颜色来给选定的列着色 + + + 色调颜色必须是Alpha可混合的,因此如果给定的颜色是纯色(即Alpha=255),则会将其更改为具有合理的Alpha值。 + + + + + 获取或设置当前选定行的索引。 + 获取索引时,如果没有选择任何行,或者选择了多个行,则返回-1。 + + + + + 获取或设置当前选定的ListViewItem。如果未选择任何行,或者选择了多个行,则返回NULL。 + + + + + 如果只选择了一行,则从当前选定的行获取模型对象。 + 如果未选择任何行,或选择了多个行,则返回NULL。 + 设置时,这将选择显示给定模型对象的行,并将焦点放在该行上,取消选择所有其他行。 + + + + + 从当前选定的行中获取模型对象。 + 如果未选中任何行,则返回的列表为空。 + 设置此值时,请选择显示给定模型对象的行,取消选择所有其他行。 + + + + + 获取或设置当用户右键单击列标题时,是否应该显示一个菜单,允许他们选择要在列表视图上执行的常见任务 + + + + + 获取或设置当右键单击标题控件时,此ObjectListView是否像筛选菜单一样显示表格 + + + + + 获取或设置是否应按组显示其项目 + + + + + 列表视图是否应该在列标题中显示位图以显示排序方向 + + + The only reason for not wanting to have sort indicators is that, on pre-XP versions of + Windows, having sort indicators required the ListView to have a small image list, and + as soon as you give a ListView a SmallImageList, the text of column 0 is bumped 16 + pixels to the right, even if you never used an image. + + + + + 列表视图是否应该显示子项上的图像 + + + 虚拟列表必须是所有者绘制的,才能在子项上显示图像 + + + + + 此属性控制分组标签是否显示该分组项目数量 + + + 后缀的格式由GroupWithItemCountFormat/GroupWithItemCountSingularFormat属性控制 + + + + + 获取或设置控件是在所有视图中显示列标题(True),还是仅在详细信息视图中显示列标题(False) + + + + 此属性工作不正常。JPP 2010/04/06。 + 如果它是在创建控件之前设置的,则可以正常工作。 + 但是,如果在创建控件后将其关闭,则控件将丢失其复选框(奇怪!) + + + 要在创建控件后更改此设置,事情会很复杂。 + 如果它是关闭的,而我们想要打开它,我们必须更改视图,标题就会出现。 + 如果它当前处于打开状态,而我们想要将其关闭,则必须更改视图并重新创建控制柄。 + 重新创建句柄是一个问题,因为它会使我们的复选框样式消失。 + + + 该属性不能工作在 Win XP 系统. + + + + + 重写SmallImageList属性,以便我们可以正确地隐藏其操作。 + + 如果使用RowHeight属性指定行高,则必须在设置/更改RowHeight之前完全初始化SmallImageList。 + 如果在设置行高之后将新图像添加到图像列表,则必须再次将图像列表分配给控件。像这样简单的事情会奏效的: + listView1.SmallImageList = listView1.SmallImageList; + + + + + 返回小图像列表中图像的大小或合理的默认值 + + + + + 当列表视图分组时,项是否应该按主列排序?如果为False,则项目将按分组时的同一列进行排序。 + + + + + 当列表视图分组时,一个组的末尾和下一个组的开头之间应该有多少像素 + + + + + 排序列是否应该显示轻微的色调? + + + + + 获取或设置是否使用三态复选框? + + + 如果为True,用户可以选择第三种状态(通常是不确定的)。 + 否则,用户在选中和取消选中之间交替单击。 + 当此设置为False时,CheckStateGetter仍可以返回不确定。 + + + + + 获取或设置列表顶部项目的索引 + + + + 此属性仅在列表视图处于详细信息视图中且不显示组时才起作用。 + + + 显示组时不起作用的原因是,当启用组时,无论滚动位置如何, + Windows msg LVM_GETTOPINDEX总是返回0。 + + + + + + 获取或设置将鼠标移到标题上是否会触发CellOver事件。 + 默认为true。 + + + 将鼠标移动到标题上之前不会触发CellOver事件,因为Header被视为单独的控件。 + 如果此行为更改导致您的应用程序出现问题,请将其设置为False。 + 如果您想知道鼠标何时在标题上移动,请将此属性设置为true(默认值)。 + + + + + 通过拖动分隔线调整列的大小时,是否应在每次鼠标移动时调整填充空格的列的大小? + 如果为False,则释放鼠标时将更新填充栏。 + + + + 如果空间填充列位于正在调整大小的列的左侧,这看起来会很奇怪:该列的右边缘将被拖动,但由于空间填充列正在收缩,其左边缘将会移动。 + + 这是合乎逻辑的行为--只是看起来不对。 + + + 考虑到上述行为,如果空间填充列不是最右边的列,最好关闭该属性。 + + + + + 当控件没有焦点时,应该使用什么颜色作为选定行的背景 + + + + + 当控件没有焦点或合理的默认值时,返回应用于选定行的背景的颜色 + + + + + 当控件没有焦点时,应该使用什么颜色作为选定行的字体颜色。 + + + + + 当控件没有焦点或合理的默认值时,返回应用于选定行的字体颜色 + + + + + 获取或设置列表是否每隔一行提供不同的背景色?默认值为false。 + + 交替行的颜色由AlternateRowBackColor提供。 + 在.NET中,列表视图在非整行选择模式下有一个“功能”,在这种模式下,所选行不会使用正确的背景色绘制。 + + + + 是否应该为控件中的每个单元格调用FormatCell事件? + + + 在许多情况下,不执行单元格级格式设置。 + 如果除非需要,ObjectListView不会为每个单元格触发Format Cell事件,则它的运行速度会稍快一些。 + 因此,默认情况下,它不会为每个单元格引发事件。 + + ObjectListView*确实*在每次重新生成行时引发FormatRow事件。各行可以决定是否对行中的每个单元格引发FormatCell事件。 + + + 无论此设置如何,只有当ObjectListView处于详细视图中时才会引发FormatCell事件。 + + + + + 所选行是否应使用非标准前景色和背景色绘制? + + V2.9不再需要此属性 + + + + 获取或设置此ObjectListView是否将使用与Vista资源管理器相同的热项和选择机制。 + + + + 此属性有许多缺陷: + + 这仅适用于Vista及更高版本 + 它不能很好地与AlternateRowBackColors配合使用。 + 它不能很好地与HotItemStyles配合使用。 + 如果FullRowSelect为false,这看起来有点傻。 + 当列表是所有者绘制的时,它根本不起作用(因为所有的绘制都是由渲染器完成的)。 + 因此,它不能与TreeListView一起工作,因为它们“必须”是所有者绘制的。你仍然可以设置它,但它不会生效。 + + 但如果你一定要看起来像Vista/Win7,这是你的权限。如果这项设置搞砸了其他事情,请不要抱怨。 + + + 当此属性设置为True时,ObjectListView将不是所有者描述的。 + 这将禁用ObjectListView的许多漂亮的基于绘图的功能。 + + + + + + 获取或设置列表是否应启用筛选 + + + + + 获取或设置列表是否应将指示符放入列的标题中,以表明它正在筛选该列 + + 如果将其设置为true,HeaderUsesThemes将自动设置为false,因为我们只能在不使用主题标题时绘制筛选器指示器。 + + + + 鼠标下方的控件(复选框或按钮)是否应该被绘制为“Hot” + + + 如果为False,则当鼠标悬停在控件上时,控件的绘制方式不会有所不同。 + + 如果为False,且UseHotItem和UseHyperLinks为False,则ObjectListView可以跳过鼠标移动的某些处理。这使得鼠标移动处理几乎不使用CPU。 + + + + + + 光标下的项是否应以特殊方式设置格式? + + + + + 获取或设置此列表视图是否应在单元格中显示超链接。 + + + + + 此控件是否应显示覆盖(Overlays) + + 覆盖(Overlays)在默认情况下是启用的,只有在它们在您的开发环境中造成问题时才需要禁用。 + + + + 是否应将此控件配置为在子项上显示复选框? + + 如果将其设置为True,则将为该控件提供一个SmallImageList(如果它还没有一个SmallImageList)。 + 此外,如果它是一个虚拟列表,它将被设置为所有者描述的,因为虚拟列表不能在没有所有者描述的情况下绘制复选框。 + + + + 获取或设置ObjectListView是否将使用类似Vista的半透明选择机制。 + + + + 与UseExplorerTheme不同的是,这个类似Vista的方案可以在XP上运行,并且既适用于所有者描述的列表,也适用于非所有者描述的列表。 + + + 这将替换任何已安装的SelectedRowDecory。 + + + 如果您不喜欢用于选择的颜色,请忽略此属性, + 只需创建您自己的RowBorderDecory并将其分配给SelectedRowDecory, + 就像此属性设置器所做的那样。 + + + + + + 获取或设置ObjectListView是否将使用类似于Vista的半透明热行突出显示机制。 + + + + 设置此项将替换任何已安装的HotItemStyle。 + + + 如果您不喜欢热项目使用的颜色,请忽略此属性, + 只需创建您自己的HotItemStyle,填充所需的值, + 并将其分配给HotItemStyle属性,就像此属性设置器所做的那样。 + + + + + + 获取/设置此列表视图正在使用的视图样式 + + 切换到平铺(Tile)或详细信息(Details)视图会安装适合该视图的列。令人困惑的是,在平铺视图中,每列都显示为一行信息。 + + + + 此委托仅将对象的检查性作为布尔值获取。 + + 如果您永远不想担心不确定状态(这是相当常见的),请使用此选项。 + + 这是CheckStateGetter属性的便捷包装。 + + + + + + This delegate sets the checkedness of an object as a boolean only. It must return + true or false indicating if the object was checked or not. + + Use this if you never want to worry about the + Indeterminate state (which is fairly common). + + This is a convenience wrapper around the CheckStatePutter property. + + + + + + 获取此列表视图是否能够显示组 + + + + + 获取或设置ObjectListView是否可以依赖正在引发的Application.Idle事件。 + + 在某些主机环境中(例如,在VisualStudio和Office中作为扩展运行时),从不引发Application.Idle事件。 + 如果不会引发Idle事件,则将其设置为False,ObjectListView将自行引发这些事件。 + + + + + This delegate fetches the renderer for a particular cell. + + + + If this returns null (or is not installed), the renderer for the column will be used. + If the column renderer is null, then will be used. + + + This is called every time any cell is drawn. It must be efficient! + + + + + + This delegate is called when the list wants to show a tooltip for a particular cell. + The delegate should return the text to display, or null to use the default behavior + (which is to show the full text of truncated cell values). + + + Displaying the full text of truncated cell values only work for FullRowSelect listviews. + This is MS's behavior, not mine. Don't complain to me :) + + + + + 保存是否选中模型的属性(或字段)的名称。 + + + 该属性是可修改的。它必须具有bool(或bool?)返回类型。如果TriStateCheckBooks为真)。 + 设置此属性将替换任何已安装的CheckStateGetter或CheckStatePutter。 + 相反,稍后设置CheckStateGetter或CheckStatePutter属性将优先于此属性的行为。 + + + + + 只要ObjectListView需要知道与给定模型对象关联的行的检查状态,就会调用此委托。 + + + .NET has no support for indeterminate values, but as of v2.0, this class allows + indeterminate values. + + + + + This delegate will be called whenever the user tries to change the check state of a row. + The delegate should return the state that was actually set, which may be different + to the state given. + + + + + 此委托可用于以自定义方式对表进行排序。 + + + + 委托必须在ObjectListView上安装ListViewItemSorter。 + 安装ItemSorter会执行对ListViewItems进行排序的实际工作。 + 有关ItemSorter必须执行的操作的示例,请参见代码中的ColumnCompeller。 + + + 请勿在VirtualObjectListView上安装CustomSorter。改为重写IVirtualListDataSource的SortObjects()方法。 + + + + + + This delegate is called when the list wants to show a tooltip for a particular header. + The delegate should return the text to display, or null to use the default behavior + (which is to not show any tooltip). + + + Installing a HeaderToolTipGetter takes precedence over any text in OLVColumn.ToolTipText. + + + + + This delegate can be used to format a OLVListItem before it is added to the control. + + + The model object for the row can be found through the RowObject property of the OLVListItem object. + All subitems normally have the same style as list item, so setting the forecolor on one + subitem changes the forecolor of all subitems. + To allow subitems to have different attributes, do this: + myListViewItem.UseItemStyleForSubItems = false;. + + If UseAlternatingBackColors is true, the backcolor of the listitem will be calculated + by the control and cannot be controlled by the RowFormatter delegate. + In general, trying to use a RowFormatter + when UseAlternatingBackColors is true does not work well. + As it says in the summary, this is called before the item is added to the control. + Many properties of the OLVListItem itself are not available at that point, including: + Index, Selected, Focused, Bounds, Checked, DisplayIndex. + + + + + 将给定的模型对象添加到此控件。 + + 要显示的模型对象 + See AddObjects() for more details + + + + 将给定的模型对象集合添加到此控件。 + + 要显示的模型对象集合 + + 如果排序处于活动状态(即,如果PrimarySortColumn不为空),则添加的对象将出现在其正确的排序位置。否则,它们将出现在列表的末尾。 + 不执行任何检查以查看是否有任何对象已在ListView中。 + 空对象将被静默忽略。 + + + + + 将列的大小调整到页眉宽度和数据的最大值。 + + + + + 设置任何自动初始化的列宽(宽度为0或-1的列将分别调整为其内容或标题的宽度)。 + + + 显然,这只会起作用一次。一旦运行,列宽将更改为其他值(不是0或-1),因此第二次运行时不会执行任何操作。 + 若要强制所有列更改其大小,请使用 。 + + + + + 根据最后一个排序列或第一列(如果没有最后一个排序列)将视图项组织到组中 + + + + + 根据给定列将视图项组织成组 + + + + 如果AlwaysGroupByColumn属性不为Null,则列表视图项将按该列组织,并且将忽略‘Column’参数。 + + 此方法触发排序事件:BeforeSorting和AfterSorting。 + + 其值应用于排序的列。 + + + + + 根据给定列将视图项组织成组 + + 将使用哪一列进行分组 + 组将使用什么顺序 + 其值应用于排序的列。不能为空 + 列中值的排序顺序 + 当‘column’中的值相等时,请使用此列提供的值 + 次级值将如何排序 + 此方法不会触发排序事件。使用BuildGroups()执行此操作 + + + + 收集并返回影响组创建的所有变量 + + + + + + Make a list of groups that should be shown according to the given parameters + + + The list of groups to be created + This should not change the state of the control. It is possible that the + groups created will not be used. They may simply be discarded. + + + + 生成/重新生成列表中的所有列表视图项,尽可能多地保留状态 + + + + + 生成/重新生成列表中的所有列表视图项 + + If this is true, the control will try to preserve the selection, + focused item, and the scroll position (see Remarks) + + + + Use this method in situations were the contents of the list is basically the same + as previously. + + + + + + 清除此列表可能一直在使用的所有缓存信息 + + + + + Apply all required extended styles to our control. + + + + Whenever .NET code sets an extended style, it erases all other extended styles + that it doesn't use. So, we have to explicit reapply the styles that we have + added. + + + Normally, we would override CreateParms property and update + the ExStyle member, but ListView seems to ignore all ExStyles that + it doesn't already know about. Worse, when we set the LVS_EX_HEADERINALLVIEWS + value, bad things happen (the control crashes!). + + + + + + Give the listview a reasonable size of its tiles, based on the number of lines of + information that each tile is going to display. + + + + + Rebuild this list for the given view + + + + + + 移除所有对象(线程安全) + + This method can safely be called from background threads. + + + + 重置已访问其URL的内存 + + + + + 将选定行的文本和HTML表示复制到剪贴板上。 + + Be careful when using this with virtual lists. If the user has selected + 10,000,000 rows, this method will faithfully try to copy all of them to the clipboard. + From the user's point of view, your program will appear to have hung. + + + + 将给定对象的文本和HTML表示复制到剪贴板上。 + + + + + 将所有对象的文本和HTML表示复制到剪贴板上。 + + + + + 返回给定对象的html表示形式 + + + + + 取消选择列表视图中的所有行 + + + + + 返回紧跟在给定项后面的ListViewItem。 + 如果给定项为空,则返回列表中的第一个项。 + 如果给定项是最后一项,则返回NULL。 + + The item that is before the item that is returned, or null + A ListViewItem + + + + 按向用户显示的顺序返回最后一项。 + 如果控件未分组,则显示顺序与排序的列表顺序相同。 + 但如果列表是分组的,则显示顺序不同。 + + + + + + 按向用户显示的顺序返回第n项(从0开始)。 + 如果控件未分组,则显示顺序与排序的列表顺序相同。 + 但如果列表是分组的,则显示顺序不同。 + + + + + + + 返回给定listviewitem索引的显示索引。 + 如果控件未分组,则显示顺序与排序的列表顺序相同。 + 但如果列表是分组的,则显示顺序不同。 + + + + + + + 返回紧接在给定项之前出现的ListViewItem。 + 如果给定项为空,则返回列表中的最后一项。 + 如果给定项是第一项,则返回NULL。 + + The item that is before the item that is returned + A ListViewItem + + + + 在给定位置之前插入给定的对象集合 + + Where to insert the objects + The objects to be inserted + + + This operation only makes sense of non-sorted, non-grouped + lists, since any subsequent sort/group operation will rearrange + the list. + + This method only works on ObjectListViews and FastObjectListViews. + + + + + 如果选择了表示给定模型的行,则返回TRUE + + The model object to look for + Is the row selected + + + + 给定的URL是否已被访问 + + The string to be consider + Has it been visited + + + + 按给定的值增量滚动ListView。 + + Horizontal delta + Vertical delta + + + + Return a point that represents the current horizontal and vertical scroll positions + + + + + 记住给定的URL已被访问 + + The url to be remembered + This does not cause the control be redrawn + + + + 将给定的对象集合移动到给定的索引。 + + 此操作仅对未分组的ObjectListViews有意义。 + + + + + + 计算在给定点下的项目是什么? + + + + + + + + 使用Windows控件的SUBITEMHITTEST消息执行点击测试。 + 这提供了标准ListView.HitTest()不提供的有关组点击的信息。 + + + + + + + + What is under the given point? This takes the various parts of a cell into accout, including + any custom parts that a custom renderer might use + + + + An information block about what is under the point + + + + Perform a hit test when the control is not owner drawn + + + + + + + + Perform a hit test when the control is owner drawn. This hands off responsibility + to the renderer. + + + + + + + + Pause (or unpause) all animations in the list + + true to pause, false to unpause + + + + Rebuild the columns based upon its current view and column visibility settings + + + + + 从ListView中删除给定的模型对象 + + The model to be removed + See RemoveObjects() for more details + This method is thread-safe. + + + + + 从控件中移除所有给定对象。 + + Collection of objects to be removed + + Nulls and model objects that are not in the ListView are silently ignored. + This method is thread-safe. + + + + + 选择列表视图中的所有行 + + + + + 在列表视图的右下角设置要固定的给定图像。 + 当列表视图滚动时,此图像不会滚动。 + + + + 此方法使用ListView的原生功能显示背景图像。 + 它有几个限制: + + + 它在owner drawn模式下不能很好地工作。在owner drawn绘制模式下, + 每个单元格都会绘制自身,包括覆盖背景图像的背景。 + 启用网格线时看起来不是很好,因为网格线是在图像上绘制的。 + 它在XP上完全不起作用。 + 显然,当启用交替行背景色时,效果不佳。 + + + 如果你能忍受这些限制,原生水印就相当不错了。 + 它们是真实的背景,而不是像OverlayImage使用的半透明覆盖。 + 与覆盖相比,它们也有明显的优势,因为即使在MDI应用程序中,它们也可以正常工作。 + + 设置此选项将清除所有背景图像。 + + The image to be drawn. If null, any existing image will be removed. + + + + 将给定的图像设置为ListView的背景,以便它在列表中以给定的百分比偏移量显示。 + + + 这具有与 中所述的相同限制. + 在使用该方法之前,请确保了解这些限制。 + 这非常类似于 属性, + 但标准Backround Image不能正确处理具有透明区域的图像--它将透明区域呈现为黑色。这种方法没有这个问题。 + 设置此选项将清除所有背景水印。 + + The image to be drawn. If null, any existing image will be removed. + The horizontal percentage where the image will be placed. 0 is absolute left, 100 is absolute right. + The vertical percentage where the image will be placed. + + + + 将给定图像设置为ListView的平铺背景。 + + + 这具有与 相同的限制. + 在使用该方法之前,请确保了解这些限制。 + + 要绘制的图像。如果为null,则将删除所有现有图像。 + + + + 设置将在此列表视图中显示的对象集合。 + + 可以从后台线程安全地调用此方法。 + 该列表将立即更新 + The objects to be displayed + + + + 设置将在此列表视图中显示的对象集合。 + + 可以从后台线程安全地调用此方法. + 该列表将立即更新 + The objects to be displayed + 是否应尽可能保留列表的状态。 + + + + 将给定的模型对象更新到ListView中。 + 如果该模型尚不存在,则会添加该模型。 + + The model to be updated + + + See for more details + + 此方法是线程安全的。 + 此方法将导致重新排序列表。 + 此方法仅适用于ObjectListViews和FastObjectListViews。 + + + + + 更新与给定对象相等的预先存在的模型。 + 如果控件中不存在任何模型,则会添加它们。 + + Collection of objects to be updated/added + + 此方法将导致重新排序列表。 + null值将被静默忽略。 + 此方法是线程安全的。 + 此方法仅适用于ObjectListViews和FastObjectListViews。 + + + + + 更改当前模型对象上对INotifyPropertyChanged事件的任何订阅, + 以便我们不再侦听旧模型上的事件,而侦听给定集合上的事件。 + + This does nothing if UseNotifyPropertyChanged is false. + + + + + 获取或设置ObjectListView是否应订阅它给定的模型对象上的INotifyPropertyChanged事件。 + + + + 这应该在调用SetObjects()之前设置。如果将其设置为False,ObjectListView将取消订阅所有当前模型对象。 + + 如果在虚拟列表上将其设置为true,ObjectListView将遍历列表中尝试订阅更改通知的所有对象。 + 如果您的虚拟列表中有10,000,000个项目,这可能需要一些时间。 + + + + + Subscribe to INotifyPropertyChanges on the given collection of objects. + + + + + + Unsubscribe from INotifyPropertyChanges on the given collection of objects. + If the given collection is null, unsubscribe from all current subscriptions + + + + + + Return a byte array that represents the current state of the ObjectListView, such + that the state can be restored by RestoreState() + + + The state of an ObjectListView includes the attributes that the user can modify: + + current view (i.e. Details, Tile, Large Icon...) + sort column and direction + column order + column widths + column visibility + + + + It does not include selection or the scroll position. + + + A byte array representing the state of the ObjectListView + + + + Restore the state of the control from the given string, which must have been + produced by SaveState() + + A byte array returned from SaveState() + Returns true if the state was restored + + + + Instances of this class are used to store the state of an ObjectListView. + + + + + The application is idle. Trigger a SelectionChanged event. + + + + + + + The application is idle. Handle the column resizing event. + + + + + + + Handle the BeginScroll listview notification + + + True if the event was completely handled + + + + Handle the EndScroll listview notification + + + True if the event was completely handled + + + + Handle the LinkClick listview notification + + + True if the event was completely handled + + + + The cell tooltip control wants information about the tool tip that it should show. + + + + + + + Allow the HeaderControl to call back into HandleHeaderToolTipShowing without making that method public + + + + + + + The header tooltip control wants information about the tool tip that it should show. + + + + + + + Event handler for the column click event + + + + + Override the basic message pump for this control + + + + + + Handle the search for item m if possible. + + The m to be processed + bool to indicate if the msg has been handled + + + + The user wants to see the context menu. + + The windows m + A bool indicating if this m has been handled + + We want to ignore context menu requests that are triggered by right clicks on the header + + + + + Handle the Custom draw series of notifications + + The message + True if the message has been handled + + + + Handle the underlying control being destroyed + + + + + + + Handle the search for item m if possible. + + The m to be processed + bool to indicate if the msg has been handled + + + + Find the first row after the given start in which the text value in the + comparison column begins with the given text. The comparison column is column 0, + unless IsSearchOnSortColumn is true, in which case the current sort column is used. + + The text to be prefix matched + The index of the first row to consider + Which direction should be searched? + The index of the first row that matched, or -1 + The text comparison is a case-insensitive, prefix match. The search will + search the every row until a match is found, wrapping at the end if needed. + + + + Find the first row in the given range of rows that prefix matches the string value of the given column. + + + + + + The index of the matched row, or -1 + + + + Handle the Group Info series of notifications + + The message + True if the message has been handled + + + + Handle a key down message + + + True if the msg has been handled + + + + Toggle the checkedness of the selected rows + + + + Actually, this doesn't actually toggle all rows. It toggles the first row, and + all other rows get the check state of that first row. This is actually a much + more useful behaviour. + + + If no rows are selected, this method does nothing. + + + + + + Catch the Left Button down event. + + The m to be processed + bool to indicate if the msg has been handled + + + + Handle a left mouse down at the given hit test location + + Subclasses can override this to do something unique + + True if the message has been handled + + + + Catch the Left Button up event. + + The m to be processed + bool to indicate if the msg has been handled + + + + Trigger a GroupExpandCollapse event and return true if the action was cancelled + + + + + + + Catch the Right Button down event. + + The m to be processed + bool to indicate if the msg has been handled + + + + Handle a left mouse down at the given hit test location + + Subclasses can override this to do something unique + + True if the message has been handled + + + + Catch the Left Button double click event. + + The m to be processed + bool to indicate if the msg has been handled + + + + Handle a mouse double click at the given hit test location + + Subclasses can override this to do something unique + + True if the message has been handled + + + + Catch the right Button double click event. + + The m to be processed + bool to indicate if the msg has been handled + + + + Handle a right mouse double click at the given hit test location + + Subclasses can override this to do something unique + + True if the message has been handled + + + + Catch the MouseMove event. + + The m to be processed + bool to indicate if the msg has been handled + + + + Handle notifications that have been reflected back from the parent window + + The m to be processed + bool to indicate if the msg has been handled + + + + In the notification messages, we handle attempts to change the width of our columns + + The m to be processed + bool to indicate if the msg has been handled + + + + Create a ToolTipControl to manage the tooltip control used by the listview control + + + + + Update the handle used by our cell tooltip to be the tooltip used by + the underlying Windows listview control. + + + + + Handle the WM_PAINT event + + + Return true if the msg has been handled and nothing further should be done + + + + Perform any steps needed before painting the control + + + + + Perform any steps needed after painting the control + + + + + Handle the window position changing. + + The m to be processed + bool to indicate if the msg has been handled + + + + The user has right clicked on the column headers. Do whatever is required + + Return true if this event has been handle + + + + Show a menu that is appropriate when the given column header is clicked. + + The index of the header that was clicked. This + can be -1, indicating that the header was clicked outside of a column + Where should the menu be shown + True if a menu was displayed + + + + Create the menu that should be displayed when the user right clicks + on the given column header. + + Index of the column that was right clicked. + This can be negative, which indicates a click outside of any header. + The toolstrip that should be displayed + + + + The user has right clicked on the column headers. Do whatever is required + + Return true if this event has been handle + + + + Show a popup menu at the given point which will allow the user to choose which columns + are visible on this listview + + Where should the menu be placed + + + + Show a popup menu at the given point which will allow the user to choose which columns + are visible on this listview + + + Where should the menu be placed + + + + 获取或设置要用于升序排序命令的文本 + + + + + 获取或设置要用于降序排序命令的文本 + + + + + 获取或设置要用于分组命令的文本 + + + + + 获取或设置要用于锁定分组命令的文本 + + + + + 获取或设置要用于不锁定分组命令的文本 + + + + + 获取或设置要用于关闭分组命令的文本 + + + + + 获取或设置要用于不排序命令的文本 + + + + + 获取或设置要用于列描述的文本 + + + + + 获取或设置要用于选择列描述的文本 + + + + + Gets or sets the image that will be place next to the Sort Ascending command + + + + + Gets or sets the image that will be placed next to the Sort Descending command + + + + + Append the column selection menu items to the given menu strip. + + The menu to which the items will be added. + + Return the menu to which the items were added + + + + Append the column selection menu items to the given menu strip. + + The menu to which the items will be added. + Return the menu to which the items were added + + + + Create the menu items that will allow columns to be choosen and add them to the + given collection + + + + + + Create a Filtering menu + + + + + + + + Override the OnColumnReordered method to do what we want + + + + + + When the column widths are changing, resize the space filling columns + + + + + + + When the column widths change, resize the space filling columns + + + + + + + When the size of the control changes, we have to resize our space filling columns. + + + + + + + Resize our space filling columns so they fill any unoccupied width in the control + + + + + Resize our space filling columns so they fill any unoccupied width in the control + + + + + Check all rows + + + + + Check the checkbox in the given column header + + If the given columns header check box is linked to the cell check boxes, + then checkboxes in all cells will also be checked. + + + + + Mark the checkbox in the given column header as having an indeterminate value + + + + + + Mark the given object as indeterminate check state + + The model object to be marked indeterminate + + + + Mark the given object as checked in the list + + The model object to be checked + + + + Mark the given objects as checked in the list + + The model object to be checked + + + + Put a check into the check box at the given cell + + + + + + + Put an indeterminate check into the check box at the given cell + + + + + + + Return true of the given object is checked + + The model object whose checkedness is returned + Is the given object checked? + If the given object is not in the list, this method returns false. + + + + Return true of the given object is indeterminately checked + + The model object whose checkedness is returned + Is the given object indeterminately checked? + If the given object is not in the list, this method returns false. + + + + Is there a check at the check box at the given cell + + + + + + + Get the checkedness of an object from the model. Returning null means the + model does not know and the value from the control will be used. + + + + + + + Record the change of checkstate for the given object in the model. + This does not update the UI -- only the model + + + + The check state that was recorded and that should be used to update + the control. + + + + Change the check state of the given object to be the given state. + + + If the given model object isn't in the list, we still try to remember + its state, in case it is referenced in the future. + + + True if the checkedness of the model changed + + + + Toggle the checkedness of the given object. A checked object becomes + unchecked; an unchecked or indeterminate object becomes checked. + If the list has tristate checkboxes, the order is: + unchecked -> checked -> indeterminate -> unchecked ... + + The model object to be checked + + + + Toggle the checkbox in the header of the given column + + Obviously, this is only useful if the column actually has a header checkbox. + + + + + Toggle the check at the check box of the given cell + + + + + + + Uncheck all rows + + + + + Mark the given object as unchecked in the list + + The model object to be unchecked + + + + Mark the given objects as unchecked in the list + + The model object to be checked + + + + Uncheck the checkbox in the given column header + + + + + + Uncheck the check at the given cell + + + + + + + 返回给定索引处的列 + + Index of the column to be returned + An OLVColumn + + + + 返回给定标题处的列,如果有多个符合要求的标题,则默认只返回第一个 + + 要返回的列的名称 + An OLVColumn + + + + 返回给定视图可见的列的集合。只有Tile和Details有列;所有其他视图都有0列。 + + 正在为哪个视图计算列? + A list of columns + + + + 返回列表中的项目数 + + 列表中的项目数 + 如果安装了筛选器,这将返回与筛选器匹配的项目数。 + + + + 返回给定索引处的项 + + Index of the item to be returned + An OLVListItem + + + + 返回给定索引处的模型对象 + + Index of the model object to be returned + A model object + + + + 找出在给定的坐标下的行和列 + X 坐标 + Y 坐标 + 给定点下的列项 + 在给定坐标点下的行项。可以为null。 + + + + 返回给定索引/列的子项 + + Index of the item to be returned + Index of the subitem to be returned + An OLVListSubItem + + + + 滚动列表视图,使给定组位于顶部。 + + The group to be revealed + + 如果该组可见,如果可能,列表仍将滚动以将该组移至顶部。 + + 这只在列表显示分组时才有效(显然)。 + 这在虚拟列表上不起作用,因为虚拟列表不使用ListViewGroups进行分组。使用 代替. + + + + + 使给定的模型对象可见 + + The model object to be revealed + + + + 返回选定行的模型对象,如果没有选择或有多个选择,则返回null + + Model object or null + + + + 返回选定行的模型对象,如果没有选择,则返回空集合 + + ArrayList + + + + 返回选中行的模型对象;如果未选中行或选中多行,则返回NULL + + Model object or null + 使用 CheckedObject 属性代替本方法 + + + + 获取选中的模型对象的集合。 + + 使用 CheckedObjects 属性代替本方法 + + + + 在列表视图中查找给定的模型对象并返回其索引 + + The model object to be found + The index of the object. -1 means the object was not present + + + + Rebuild the given ListViewItem with the data from its associated model. + + This method does not resort or regroup the view. It simply updates + the displayed data of the given item + + + + Rebuild the data on the row that is showing the given object. + + + + This method does not resort or regroup the view. + + + The given object is *not* used as the source of data for the rebuild. + It is only used to locate the matching model in the collection, + then that matching model is used as the data source. This distinction is + only important in model classes that have overridden the Equals() method. + + + If you want the given model object to replace the pre-existing model, + use . + + + + + + Update the rows that are showing the given objects + + + This method does not resort or regroup the view. + This method can safely be called from background threads. + + + + + 更新选定的行 + + This method does not resort or regroup the view. + + + + 除任何当前选择外,还选择显示给定模型对象的行。 + + The object to be selected + Use the property to deselect all other rows + + + + 除任何当前选择外,还选择显示给定模型对象的行。 + + The object to be selected + 对象是否也应该被聚焦 + Use the property to deselect all other rows + + + + 选择显示任意给定模型对象的行。取消选择所有其他行。 + + A collection of model objects + + + + 获取或设置是否冻结列表视图。当列表视图被冻结时,它不会自我更新。 + + Frozen属性与Freeze()/UnFreeze()方法类似, + 不同之处在于将Frozen属性设置为False会立即解冻控件, + 而不管有多少未完成的Freeze()调用。 + objectListView1.Frozen = false; // unfreeze the control now! + + + + + 冻结列表视图,使其不再自我更新。 + + Freeze()/Unfreeze() calls nest correctly + + + + 解冻列表视图。如果此调用是最外层的unFreeze(),则将重新构建listview的内容。 + + Freeze()/Unfreeze() calls nest correctly + + + + 在冻结列表视图时执行所需的实际工作 + + + + + 解冻列表视图时执行所需的实际工作 + + + + + 如果选择事件当前挂起,则返回TRUE。在挂起选择事件时,不会引发SelectedIndexChanged或SelectionChanged事件。 + + + + + Suspend selection events until a matching ResumeSelectionEvents() + is called. + + Calls to this method nest correctly. Every call to SuspendSelectionEvents() + must have a matching ResumeSelectionEvents(). + + + + Resume raising selection events. + + + + + Returns a disposable that will disable selection events + during a using() block. + + + + + + Implementation only class that suspends and resumes selection + events on instance creation and disposal. + + + + + 按最后一个排序列和顺序对项目进行排序 + + + + + 按给定列中的值和上次排序顺序对列表视图中的项进行排序 + + 其值将用于排序的列的名称 + + + + 按给定列中的值和上次排序顺序对列表视图中的项进行排序 + + 其值将用于排序的列的索引 + + + + 按给定列中的值和上次排序顺序对列表视图中的项进行排序 + + 其值将用于排序的列 + + + + 按给定列中的值和上次排序顺序对列表视图中的项进行排序 + + The column whose values will be used for the sorting. + If null, the first column will be used. + The ordering to be used for sorting. If this is None, + this.Sorting and then SortOrder.Ascending will be used + If ShowGroups is true, the rows will be grouped by the given column. + If AlwaysGroupsByColumn is not null, the rows will be grouped by that column, + and the rows within each group will be sorted by the given column. + + + + Put a sort indicator next to the text of the sort column + + + + + Put a sort indicator next to the text of the given given column + + The column to be marked + The sort order in effect on that column + + + + The name of the image used when a column is sorted ascending + + This image is only used on pre-XP systems. System images are used for XP and later + + + + The name of the image used when a column is sorted descending + + This image is only used on pre-XP systems. System images are used for XP and later + + + + If the sort indicator images don't already exist, this method will make and install them + + + + + Remove any sorting and revert to the given order of the model objects + + + + + Do the actual work of creating the given list of groups + + + + + + For some reason, UseItemStyleForSubItems doesn't work for the colors + when owner drawing the list, so we have to specifically give each subitem + the desired colors + + The item whose subitems are to be corrected + Cells drawn via BaseRenderer don't need this, but it is needed + when an owner drawn cell uses DrawDefault=true + + + + Fill in the given OLVListItem with values of the given row + + the OLVListItem that is to be stuff with values + the model object from which values will be taken + + + + Make sure the ListView has the extended style that says to display subitem images. + + This method must be called after any .NET call that update the extended styles + since they seem to erase this setting. + + + + Convert the given image selector to an index into our image list. + Return -1 if that's not possible + + + Index of the image in the imageList, or -1 + + + + Return the tooltip that should be shown when the mouse is hovered over the given column + + The column index whose tool tip is to be fetched + A string or null if no tool tip is to be shown + + + + 返回当鼠标悬停在给定单元格上时应显示的工具提示 + + The column index whose tool tip is to be fetched + The row index whose tool tip is to be fetched + A string or null if no tool tip is to be shown + + + + 返回显示给定模型对象的OLVListItem + + The modelObject whose item is to be found + The OLVListItem that displays the model, or null + This method has O(n) performance. + + + + Do the work required after the items in a listview have been created + + + + + Do the work required after one item in a listview have been created + + + + + 准备列表视图以显示交替的行背景色 + + We cannot rely on lvi.Index in this method. + In a straight list, lvi.Index is the display index, and can be used to determine + whether the row should be colored. But when organised by groups, lvi.Index is not + useable because it still refers to the position in the overall list, not the display order. + + + + + Setup all subitem images on all rows + + + + + 告诉基础列表控件针对子项显示哪些图像 + + the index at which the item occurs + the item whose subitems are to be set + + + + Tell the underlying list control which images to show against the subitems + + the index at which the item occurs + the item whose subitems are to be set + will existing images be cleared if no new image is provided? + + + + Set the subitem image natively + + + + + + + + + Take ownership of the 'objects' collection. This separats our collection from the source. + + + + This method + separates the 'objects' instance variable from its source, so that any AddObject/RemoveObject + calls will modify our collection and not the original colleciton. + + + This method has the intentional side-effect of converting our list of objects to an ArrayList. + + + + + + 触发给定项目的FormatRow和可能的FormatCell事件 + + + + + + + + 触发给定项目的FormatCell事件 + + + + + + + + Make the list forget everything -- all rows and all columns + + Use if you want to remove just the rows. + + + + Update our externally visible image list so it holds the same images as our shadow list, but sized correctly + + + + + Return a copy of the given source image list, where each image has been resized to be height x height in size. + If source is null, an empty image list of the given size is returned + + Height and width of the new images + Height and width of the new images + Source of the images (can be null) + A new image list + + + + Return a bitmap of the given height x height, which shows the given image, centred. + + Height and width of new bitmap + Height and width of new bitmap + Image to be centred + The background color + A new bitmap + + + + Initialize the state image list with the required checkbox images + + + + + The name of the image used when a check box is checked + + + + + The name of the image used when a check box is unchecked + + + + + The name of the image used when a check box is Indeterminate + + + + + Setup this control so it can display check boxes on subitems + (or primary checkboxes in virtual mode) + + This gives the ListView a small image list, if it doesn't already have one. + + + + Make sure the small image list for this control has checkbox images + (used for sub-item checkboxes). + + + + This gives the ListView a small image list, if it doesn't already have one. + + + ObjectListView has to manage checkboxes on subitems separate from the checkboxes on each row. + The underlying ListView knows about the per-row checkboxes, and to make them work, OLV has to + correctly configure the StateImageList. However, the ListView cannot do checkboxes in subitems, + so ObjectListView has to handle them in a differnt fashion. So, per-row checkboxes are controlled + by images in the StateImageList, but per-cell checkboxes are handled by images in the SmallImageList. + + + + + + Owner draw the column header + + + + + + Owner draw the item + + + + + + Owner draw a single subitem + + + + + + We need the click count in the mouse up event, but that is always 1. + So we have to remember the click count from the preceding mouse down event. + + + + + + When the mouse leaves the control, remove any hot item highlighting + + + + + + When the mouse moves, we might need to change the hot item. + + + + + + Check to see if we need to start editing a cell + + + + + + Tell the world that a hyperlink was clicked and if the event isn't handled, + do the default processing. + + + + + + Do the default processing for a hyperlink clicked event, which + is to try and open the url. + + + + + + The user right clicked on the control + + + + + + This method is called every time a row is selected or deselected. This can be + a pain if the user shift-clicks 100 rows. We override this method so we can + trigger one event for any number of select/deselects that come from one user action + + + + + + Called when the handle of the underlying control is created + + + + + + This method is called after the control has been fully created. + + + + + Should we start editing the cell in response to the given mouse button event? + + + + + + + Handle a key press on this control. We specifically look for F2 which edits the primary column, + or a Tab character during an edit operation, which tries to start editing on the next (or previous) cell. + + + + + + + Start an editing operation on the first editable column of the given model. + + + + + If the model doesn't exist, or there are no editable columns, this method + will do nothing. + + This will start an edit operation regardless of CellActivationMode. + + + + + + Begin an edit operation on the given cell. + + This performs various sanity checks and passes off the real work to StartCellEdit(). + The row to be edited + The index of the cell to be edited + + + + Really start an edit operation on a given cell. The parameters are assumed to be sane. + + The row to be edited + The index of the cell to be edited + + + + Calculate the bounds of the edit control for the given item/column + + + + + + + + + Calculate the bounds of the edit control for the given item/column, when the listview + is being owner drawn. + + + + + + A rectangle that is the bounds of the cell editor + + + + Calculate the bounds of the edit control for the given item/column, when the listview + is not being owner drawn. + + + + + + A rectangle that is the bounds of the cell editor + + + + Try to give the given value to the provided control. Fall back to assigning a string + if the value assignment fails. + + A control + The value to be given to the control + The string to be given if the value doesn't work + + + + Setup the given control to be a cell editor + + + + + Return the value that the given control is showing + + + + + + + Called when the cell editor could be about to lose focus. Time to commit the change + + + + + + + Return the bounds of the given cell + + The row to be edited + The index of the cell to be edited + A Rectangle + + + + Return the bounds of the given cell only until the edge of the current text + + The row to be edited + The index of the cell to be edited + A Rectangle + + + + Calculate the visible bounds of the given column. The column's bottom edge is + either the bottom of the last row or the bottom of the control. + + The bounds of the control itself + The column + A Rectangle + This returns an empty rectnage if the control isn't in Details mode, + OR has doesn't have any rows, OR if the given column is hidden. + + + + Return a control that can be used to edit the value of the given cell. + + The row to be edited + The index of the cell to be edited + A Control to edit the given cell + + + + Get the first non-null value of the given column. + At most 1000 rows will be considered. + + + The first non-null value, or null if no non-null values were found + + + + Return a TextBox that can be used as a default cell editor. + + What column does the cell belong to? + + + + + Configure the given text box to autocomplete unique values + from the given column. At most 1000 rows will be considered. + + The textbox to configure + The column used to calculate values + + + + Configure the given text box to autocomplete unique values + from the given column. At most 1000 rows will be considered. + + The textbox to configure + The column used to calculate values + Consider only this many rows + + + + Stop editing a cell and throw away any changes. + + + + + If a cell edit is in progress, finish the edit. + + Returns false if the finishing process was cancelled + (i.e. the cell editor is still on screen) + This method does not guarantee that the editing will finish. The validation + process can cause the finishing to be aborted. Developers should check the return value + or use IsCellEditing property after calling this method to see if the user is still + editing a cell. + + + + If a cell edit is in progress, finish the edit. + + Returns false if the finishing process was cancelled + (i.e. the cell editor is still on screen) + This method does not guarantee that the editing will finish. The validation + process can cause the finishing to be aborted. Developers should check the return value + or use IsCellEditing property after calling this method to see if the user is still + editing a cell. + True if it is likely that another cell is going to be + edited immediately after this cell finishes editing + + + + Finish the cell edit operation, writing changed data back to the model object + + This method does not trigger a Validating event, so it always finishes + the cell edit. + + + + Finish the cell edit operation, writing changed data back to the model object + + This method does not trigger a Validating event, so it always finishes + the cell edit. + True if it is likely that another cell is going to be + edited immediately after this cell finishes editing + + + + Remove all trace of any existing cell edit operation + + True if it is likely that another cell is going to be + edited immediately after this cell finishes editing + True if the cell editor should be disposed + + + + Force the hot item to be recalculated + + + + + Force the hot item to be recalculated + + + + + The mouse has moved to the given pt. See if the hot item needs to be updated + + Where is the mouse? + This is the main entry point for hot item handling + + + + The mouse has moved to the given pt. See if the hot item needs to be updated + + + This is the main entry point for hot item handling + + + + Update the given row using the current hot item information + + + + + + Update the given row using the given hot item information + + + + + + + + + Apply a style to the given row + + + + + + + Apply a style to a cell + + + + + + + + Remove hot item styling from the given row + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Add the given decoration to those on this list and make it appear + + The decoration + + A decoration scrolls with the listview. An overlay stays fixed in place. + + + + + Add the given overlay to those on this list and make it appear + + The overlay + + + + Draw all the decorations + + A Graphics + The items that were redrawn and whose decorations should also be redrawn + + + + Is the given decoration shown on this list + + The overlay + + + + Is the given overlay shown on this list? + + The overlay + + + + Hide any overlays. + + + This is only a temporary hiding -- the overlays will be shown + the next time the ObjectListView redraws. + + + + + Create and configure the empty list msg overlay + + + + + Initialize the standard image and text overlays + + + + + Make sure that any overlays are visible. + + + + + Refresh the display of the overlays + + + + + Refresh the display of just one overlays + + + + + Remove the given decoration from this list + + The decoration to remove + + + + Remove the given overlay to those on this list + + The overlay + + + + 创建一个筛选器,该筛选器将执行当前安装在可见列上的所有筛选。 + + + + + Do the actual work of filtering + + + + + + + + + 删除所有列筛选。 + + + + + 根据每列中定义的值筛选更新此ObjectListView的筛选 + + + + + When some setting related to filtering changes, this method is called. + + + + + 使用当前安装的模型过滤器更新所有渲染器 + + + + + 获取给定模型的复选框状态。 + + The model + 模型的复选框状态。默认为未选中。 + + + + 设置给定模型对象的复选框状态 + + The model to be remembered + The model's checkedness + The state given to the method + + + + 忽略任何持久复选框状态 + + + + + The callbacks for CellEditing events + + this + We could replace this with EventHandler<CellEditEventArgs> but that would break all + cell editing event code from v1.x. + + + + + A TreeListView combines an expandable tree structure with list view columns. + + + To support tree operations, two delegates must be provided: + + + + CanExpandGetter + + + This delegate must accept a model object and return a boolean indicating + if that model should be expandable. + + + + + ChildrenGetter + + + This delegate must accept a model object and return an IEnumerable of model + objects that will be displayed as children of the parent model. This delegate will only be called + for a model object if the CanExpandGetter has already returned true for that model. + + + + + ParentGetter + + + This delegate must accept a model object and return the parent model. + This delegate will only be called when HierarchicalCheckboxes is true OR when Reveal() is called. + + + + + The top level branches of the tree are set via the Roots property. SetObjects(), AddObjects() + and RemoveObjects() are interpreted as operations on this collection of roots. + + + To add new children to an existing branch, make changes to your model objects and then + call RefreshObject() on the parent. + + The tree must be a directed acyclic graph -- no cycles are allowed. Put more mundanely, + each model object must appear only once in the tree. If the same model object appears in two + places in the tree, the control will become confused. + + + + + This event is triggered when user input requests the expansion of a list item. + + + + + This event is triggered when user input requests the collapse of a list item. + + + + + This event is triggered after the expansion of a list item due to user input. + + + + + This event is triggered after the collapse of a list item due to user input. + + + + + Trigger the expanding event + + + + + + Trigger the collapsing event + + + + + + Trigger the expanded event + + + + + + Trigger the collapsed event + + + + + + This class handles drawing the tree structure of the primary column. + + + + + Create a TreeRenderer + + + + + Should the renderer draw glyphs at the expansion points? + + The expansion points will still function to expand/collapse even if this is false. + + + + Should the renderer draw lines connecting siblings? + + + + + Return the pen that will be used to draw the lines between branches + + + + + Should the renderer draw triangles as the expansion glyphs? + + + This looks best with ShowLines = false + + + + + Return the branch that the renderer is currently drawing. + + + + + Return the TreeListView for which the renderer is being used. + + + + + How many pixels will be reserved for each level of indentation? + + + + + The real work of drawing the tree is done in this method + + + + + + + Draw the expansion indicator + + + + + + + + Gets whether or not we should render using styles + + + + + Draw the expansion indicator using styles + + + + + + + + Is the mouse over a checkbox in this cell? + + + + + Draw the expansion indicator without using styles + + + + + + + + Draw the lines of the tree + + + + + + + + + + Do the hit test + + + + + + + + + Calculate the edit rect + + + + + + + + + + + Make a default TreeListView + + + + + This is the delegate that will be used to decide if a model object can be expanded. + + + + This is called *often* -- on every mouse move when required. It must be fast. + Don't do database lookups, linear searches, or pi calculations. Just return the + value of a property. + + + When this delegate is called, the TreeListView is not in a stable state. Don't make + calls back into the control. + + + + + + Gets whether or not this listview is capable of showing groups + + + + + This is the delegate that will be used to fetch the children of a model object + + + + This delegate will only be called if the CanExpand delegate has + returned true for the model object. + + + When this delegate is called, the TreeListView is not in a stable state. Don't do anything + that will result in calls being made back into the control. + + + + + + This is the delegate that will be used to fetch the parent of a model object + + The parent of the given model, or null if the model doesn't exist or + if the model is a root + + + + Get or set the collection of model objects that are checked. + When setting this property, any row whose model object isn't + in the given collection will be unchecked. Setting to null is + equivalent to unchecking all. + + + + This property returns a simple collection. Changes made to the returned + collection do NOT affect the list. This is different to the behaviour of + CheckedIndicies collection. + + + When getting CheckedObjects, the performance of this method is O(n) where n is the number of checked objects. + When setting CheckedObjects, the performance of this method is O(n) where n is the number of checked objects plus + the number of objects to be checked. + + + If the ListView is not currently showing CheckBoxes, this property does nothing. It does + not remember any check box settings made. + + + + + + Gets or sets the model objects that are expanded. + + + This can be used to expand model objects before they are seen. + + Setting this does *not* force the control to rebuild + its display. You need to call RebuildAll(true). + + + + + + Gets or sets the filter that is applied to our whole list of objects. + TreeListViews do not currently support whole list filters. + + + + + Gets or sets whether this tree list view will display hierarchical checkboxes. + Hierarchical checkboxes is when a parent's "checkedness" is calculated from + the "checkedness" of its children. If all children are checked, the parent + will be checked. If all children are unchecked, the parent will also be unchecked. + If some children are checked and others are not, the parent will be indeterminate. + + + Hierarchical checkboxes don't work with either CheckStateGetters or CheckedAspectName + (which is basically the same thing). This is because it is too expensive to build the + initial state of the control if these are installed, since the control would have to walk + *every* branch recursively since a single bottom level leaf could change the checkedness + of the top root. + + + + + Gets or sets the collection of root objects of the tree + + + + + Gets the collection of objects that will be considered when creating clusters + (which are used to generate Excel-like column filters) + + + + + After expanding a branch, should the TreeListView attempts to show as much of the + revealed descendents as possible. + + + + + The model objects that form the top level branches of the tree. + + Setting this does NOT reset the state of the control. + In particular, it does not collapse branches. + + + + Make sure that at least one column is displaying a tree. + If no columns is showing the tree, make column 0 do it. + + + + + Gets or sets the renderer that will be used to draw the tree structure. + Setting this to null resets the renderer to default. + + If a column is currently rendering the tree, the renderer + for that column will be replaced. If no column is rendering the tree, + column 0 will be given this renderer. + + + + This is the delegate that will be used to create the underlying Tree structure + that the TreeListView uses to manage the information about the tree. + + + The factory must not return null. + + Most users of TreeListView will never have to use this delegate. + + + + + + Should a wait cursor be shown when a branch is being expanded? + + When this is true, the wait cursor will be shown whilst the children of the + branch are being fetched. If the children of the branch have already been cached, + the cursor will not change. + + + + Gets the model that is used to manage the tree structure + + + Don't mess with this property unless you really know what you are doing. + If you don't already know what it's for, you don't need it. + + + + Return true if the branch at the given model is expanded + + + + + + + Collapse the subtree underneath the given model + + + + + + Collapse all subtrees within this control + + + + + Remove all items from this list + + This method can safely be called from background threads. + + + + Collapse all roots and forget everything we know about all models + + + + + Expand the subtree underneath the given model object + + + + + + Expand all the branches within this tree recursively. + + Be careful: this method could take a long time for large trees. + + + + Completely rebuild the tree structure + + If true, the control will try to preserve selection and expansion + + + + Completely rebuild the tree structure + + If not null, this list of objects will be selected after the tree is rebuilt + If not null, this collection of objects will be expanded after the tree is rebuilt + If not null, this collection of objects will be checked after the tree is rebuilt + + + + Unroll all the ancestors of the given model and make sure it is then visible. + + This works best when a ParentGetter is installed. + The object to be revealed + If true, the model will be selected and focused after being revealed + True if the object was found and revealed. False if it was not found. + + + + Update the rows that are showing the given objects + + + + + Change the check state of the given object to be the given state. + + + If the given model object isn't in the list, we still try to remember + its state, in case it is referenced in the future. + + + True if the checkedness of the model changed + + + + Toggle the expanded state of the branch at the given model object + + + + + + Return whether or not the given model can expand. + + + The given model must have already been seen in the tree + + + + Return the model object that is the parent of the given model object. + + + + The given model must have already been seen in the tree. + + + + Return the collection of model objects that are the children of the + given model as they exist in the tree at the moment. + + + + + This method returns the collection of children as the tree knows them. If the given + model has never been presented to the user (e.g. it belongs to a parent that has + never been expanded), then this method will return an empty collection. + + Because of this, if you want to traverse the whole tree, this is not the method to use. + It's better to traverse the your data model directly. + + + If the given model has not already been seen in the tree or + if it is not expandable, an empty collection will be returned. + + + + + + Delegates of this type are use to decide if the given model object can be expanded + + The model under consideration + Can the given model be expanded? + + + + Delegates of this type are used to fetch the children of the given model object + + The parent whose children should be fetched + An enumerable over the children + + + + Delegates of this type are used to fetch the parent of the given model object. + + The child whose parent should be fetched + The parent of the child or null if the child is a root + + + + Delegates of this type are used to create a new underlying Tree structure. + + The view for which the Tree is being created + A subclass of Tree + + + + Handle a left button down event + + + + + + + Create a OLVListItem for given row index + + The index of the row that is needed + An OLVListItem + This differs from the base method by also setting up the IndentCount property. + + + + Reinitialize the Tree structure + + + + + Recalculate the state of the checkboxes of all the items in the given list + and their ancestors. + + This only makes sense when HierarchicalCheckboxes is true. + + + + + Recalculate the hierarchy state of the given item and its ancestors + + This only makes sense when HierarchicalCheckboxes is true. + + + + + Yield the unique ancestors of the given collection of objects. + The order of the ancestors is guaranteed to be deeper objects first. + Roots will always be last. + + + Unique ancestors of the given objects + + + + Return all the ancestors of the given model + + + + This uses ParentGetter if possible. + + If the given model is a root OR if the model doesn't exist, the collection will be empty + + The model whose ancestors should be calculated + Return a collection of ancestors of the given model. + + + + The application is idle and a SelectionChanged event has been scheduled + + + + + + + Decide if the given key event should be handled as a normal key input to the control? + + + + + + + Handle focus being lost, including making sure that the whole control is redrawn. + + + + + + Handle the keyboard input to mimic a TreeView. + + + Was the key press handled? + + + + A Tree object represents a tree structure data model that supports both + tree and flat list operations as well as fast access to branches. + + If you create a subclass of Tree, you must install it in the TreeListView + via the TreeFactory delegate. + + + + Create a Tree + + + + + + This is the delegate that will be used to decide if a model object can be expanded. + + + + + This is the delegate that will be used to fetch the children of a model object + + This delegate will only be called if the CanExpand delegate has + returned true for the model object. + + + + Get or return the top level model objects in the tree + + + + + What tree view is this Tree the model for? + + + + + Collapse the subtree underneath the given model + + The model to be collapsed. If the model isn't in the tree, + or if it is already collapsed, the command does nothing. + The index of the model in flat list version of the tree + + + + Collapse all branches in this tree + + Nothing useful + + + + Expand the subtree underneath the given model object + + The model to be expanded. + The index of the model in flat list version of the tree + + If the model isn't in the tree, + if it cannot be expanded or if it is already expanded, the command does nothing. + + + + + Expand all branches in this tree + + Return the index of the first branch that was expanded + + + + Return the Branch object that represents the given model in the tree + + The model whose branches is to be returned + The branch that represents the given model, or null if the model + isn't in the tree. + + + + Return the number of visible descendents that are below the given model. + + The model whose descendent count is to be returned + The number of visible descendents. 0 if the model doesn't exist or is collapsed + + + + Rebuild the children of the given model, refreshing any cached information held about the given object + + + The index of the model in flat list version of the tree + + + + Is the given model expanded? + + + + + + + Remember whether or not the given model was expanded + + + + + + + Insert the children of the given branch into the given position + + The branch whose children should be inserted + The index where the children should be inserted + + + + Rebuild our flat internal list of objects. + + + + + Rebuild our reverse index that maps an object to its location + in the filteredObjectList array. + + + + + + Create a new branch within this tree + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sort the tree on the given column and in the given order + + + + + + + + + + + + + Add the given collection of objects to the roots of this tree + + + + + + + + + + + + + Remove all of the given objects from the roots of the tree. + Any objects that is not already in the roots collection is ignored. + + + + + + Set the roots of this tree to be the given collection + + + + + + Update/replace the nth object with the given object + + + + + + + + + + + + + + Is this list currently being filtered? + + + + + Should the given model be included in this control? + + The model to consider + True if it will be included + + + + + + + + + + + + + + A Branch represents a sub-tree within a tree + + + + + Indicators for branches + + + + + FirstBranch of tree + + + + + LastChild of parent + + + + + OnlyBranch of tree + + + + + Create a Branch + + + + + + + + Get the ancestor branches of this branch, with the 'oldest' ancestor first. + + + + + Can this branch be expanded? + + + + + Gets or sets our children + + + + + Get/set the model objects that are beneath this branch + + + + + Gets a list of all the branches that survive filtering + + + + + Gets or set whether this branch is expanded + + + + + Return true if this branch is the first branch of the entire tree + + + + + Return true if this branch is the last child of its parent + + + + + Return true if this branch is the only top level branch + + + + + Gets the depth level of this branch + + + + + Gets or sets which model is represented by this branch + + + + + Return the number of descendents of this branch that are currently visible + + + + + + Gets or sets our parent branch + + + + + Gets or sets our overall tree + + + + + Is this branch currently visible? A branch is visible + if it has no parent (i.e. it's a root), or its parent + is visible and expanded. + + + + + Clear any cached information that this branch is holding + + + + + Collapse this branch + + + + + Expand this branch + + + + + Expand this branch recursively + + + + + Collapse all branches in this tree + + Nothing useful + + + + Fetch the children of this branch. + + This should only be called when CanExpand is true. + + + + Collapse the visible descendents of this branch into list of model objects + + + + + + Flatten this branch's visible descendents onto the given list. + + + The branch itself is not included in the list. + + + + Force a refresh of all children recursively + + + + + Sort the sub-branches and their descendents so they are ordered according + to the given comparer. + + The comparer that orders the branches + + + + This class sorts branches according to how their respective model objects are sorted + + + + + Create a BranchComparer + + + + + + Order the two branches + + + + + + + + Let the world know that a cell edit operation is beginning or ending + + + + + Create an event args + + + + + + + + + + Change this to true to cancel the cell editing operation. + + + During the CellEditStarting event, setting this to true will prevent the cell from being edited. + During the CellEditFinishing event, if this value is already true, this indicates that the user has + cancelled the edit operation and that the handler should perform cleanup only. Setting this to true, + will prevent the ObjectListView from trying to write the new value into the model object. + + + + + During the CellEditStarting event, this can be modified to be the control that you want + to edit the value. You must fully configure the control before returning from the event, + including its bounds and the value it is showing. + During the CellEditFinishing event, you can use this to get the value that the user + entered and commit that value to the model. Changing the control during the finishing + event has no effect. + + + + + The column of the cell that is going to be or has been edited. + + + + + The model object of the row of the cell that is going to be or has been edited. + + + + + The listview item of the cell that is going to be or has been edited. + + + + + The data value of the cell as it stands in the control. + + Only validate during Validating and Finishing events. + + + + The index of the cell that is going to be or has been edited. + + + + + The data value of the cell before the edit operation began. + + + + + The bounds of the cell that is going to be or has been edited. + + + + + Gets or sets whether the control used for editing should be auto matically disposed + when the cell edit operation finishes. Defaults to true + + If the control is expensive to create, you might want to cache it and reuse for + for various cells. If so, you don't want ObjectListView to dispose of the control automatically + + + + Event blocks for events that can be cancelled + + + + + Has this event been cancelled by the event handler? + + + + + BeforeSorting + + + + + Create BeforeSortingEventArgs + + + + + + + + + Create BeforeSortingEventArgs + + + + + + + + + + + Did the event handler already do the sorting for us? + + + + + What column will be used for grouping + + + + + How will groups be ordered + + + + + What column will be used for sorting + + + + + What order will be used for sorting. None means no sorting. + + + + + What column will be used for secondary sorting? + + + + + What order will be used for secondary sorting? + + + + + Sorting has just occurred. + + + + + Create a AfterSortingEventArgs + + + + + + + + + + + Create a AfterSortingEventArgs + + + + + + What column was used for grouping? + + + + + What ordering was used for grouping? + + + + + What column was used for sorting? + + + + + What ordering was used for sorting? + + + + + What column was used for secondary sorting? + + + + + What order was used for secondary sorting? + + + + + This event is triggered when the contents of a list have changed + and we want the world to have a chance to filter the list. + + + + + Create a FilterEventArgs + + + + + + Gets or sets what objects are being filtered + + + + + Gets or sets what objects survived the filtering + + + + + This event is triggered after the items in the list have been changed, + either through SetObjects, AddObjects or RemoveObjects. + + + + + Create a ItemsChangedEventArgs + + + + + Constructor for this event when used by a virtual list + + + + + + + Gets how many items were in the list before it changed + + + + + Gets how many objects are in the list after the change. + + + + + This event is triggered by AddObjects before any change has been made to the list. + + + + + Create an ItemsAddingEventArgs + + + + + + Create an ItemsAddingEventArgs + + + + + + + Gets or sets where the collection is going to be inserted. + + + + + Gets or sets the objects to be added to the list + + + + + This event is triggered by SetObjects before any change has been made to the list. + + + When used with a virtual list, OldObjects will always be null. + + + + + Create ItemsChangingEventArgs + + + + + + + Gets the objects that were in the list before it change. + For virtual lists, this will always be null. + + + + + Gets or sets the objects that will be in the list after it changes. + + + + + This event is triggered by RemoveObjects before any change has been made to the list. + + + + + Create an ItemsRemovingEventArgs + + + + + + Gets or sets the objects that will be removed + + + + + Triggered after the user types into a list + + + + + Create an AfterSearchingEventArgs + + + + + + + Gets the string that was actually searched for + + + + + Gets or sets whether an the event handler already handled this event + + + + + Gets the index of the row that was selected by the search. + -1 means that no row was matched + + + + + Triggered when the user types into a list + + + + + Create BeforeSearchingEventArgs + + + + + + + Gets or sets the string that will be found by the search routine + + Modifying this value does not modify the memory of what the user has typed. + When the user next presses a character, the search string will revert to what + the user has actually typed. + + + + Gets or sets the index of the first row that will be considered to matching. + + + + + The parameter block when telling the world about a cell based event + + + + + Gets the ObjectListView that is the source of the event + + + + + Gets the model object under the cell + + This is null for events triggered by the header. + + + + Gets the row index of the cell + + This is -1 for events triggered by the header. + + + + Gets the column index of the cell + + This is -1 when the view is not in details view. + + + + Gets the column of the cell + + This is null when the view is not in details view. + + + + Gets the location of the mouse at the time of the event + + + + + Gets the state of the modifier keys at the time of the event + + + + + Gets the item of the cell + + + + + Gets the subitem of the cell + + This is null when the view is not in details view and + for event triggered by the header + + + + Gets the HitTest object that determined which cell was hit + + + + + Gets or set if this event completelely handled. If it was, no further processing + will be done for it. + + + + + Tells the world that a cell was clicked + + + + + Gets or sets the number of clicks associated with this event + + + + + Tells the world that a cell was right clicked + + + + + Gets or sets the menu that should be displayed as a result of this event. + + The menu will be positioned at Location, so changing that property changes + where the menu will be displayed. + + + + Tell the world that the mouse is over a given cell + + + + + Tells the world that the frozen-ness of the ObjectListView has changed. + + + + + Make a FreezeEventArgs + + + + + + How frozen is the control? 0 means that the control is unfrozen, + more than 0 indicates froze. + + + + + The parameter block when telling the world that a tool tip is about to be shown. + + + + + Gets the tooltip control that is triggering the tooltip event + + + + + Gets or sets the text should be shown on the tooltip for this event + + Setting this to empty or null prevents any tooltip from showing + + + + In what direction should the text for this tooltip be drawn? + + + + + Should the tooltip for this event been shown in bubble style? + + This doesn't work reliable under Vista + + + + What color should be used for the background of the tooltip + + Setting this does nothing under Vista + + + + What color should be used for the foreground of the tooltip + + Setting this does nothing under Vista + + + + What string should be used as the title for the tooltip for this event? + + + + + Which standard icon should be used for the tooltip for this event + + + + + How many milliseconds should the tooltip remain before it automatically + disappears. + + + + + What font should be used to draw the text of the tooltip? + + + + + Common information to all hyperlink events + + + + + Gets the ObjectListView that is the source of the event + + + + + Gets the model object under the cell + + + + + Gets the row index of the cell + + + + + Gets the column index of the cell + + This is -1 when the view is not in details view. + + + + Gets the column of the cell + + This is null when the view is not in details view. + + + + Gets the item of the cell + + + + + Gets the subitem of the cell + + This is null when the view is not in details view + + + + Gets the ObjectListView that is the source of the event + + + + + Gets or set if this event completelely handled. If it was, no further processing + will be done for it. + + + + + + + + + + Gets the ObjectListView that is the source of the event + + + + + Gets the model object under the cell + + + + + Gets the column of the cell + + This is null when the view is not in details view. + + + + Gets the text of the cell + + + + + Gets or sets whether or not this cell is a hyperlink. + Defaults to true for enabled rows and false for disabled rows. + + + + + Gets or sets the url that should be invoked when this cell is clicked. + + Setting this to None or String.Empty means that this cell is not a hyperlink + + + + + + + + Gets the ObjectListView that is the source of the event + + + + + Gets the item of the cell + + + + + Gets the model object under the cell + + + + + Gets the row index of the cell + + + + + Gets the display index of the row + + + + + Should events be triggered for each cell in this row? + + + + + Parameter block for FormatCellEvent + + + + + Gets the column index of the cell + + This is -1 when the view is not in details view. + + + + Gets the column of the cell + + This is null when the view is not in details view. + + + + Gets the subitem of the cell + + This is null when the view is not in details view + + + + Gets the model value that is being displayed by the cell. + + This is null when the view is not in details view + + + + The event args when a hyperlink is clicked + + + + + Gets the url that was associated with this cell. + + + + + The event args when the check box in a column header is changing + + + + + Get the column whose checkbox is changing + + + + + Get or set the new state that should be used by the column + + + + + The event args when the hot item changed + + + + + Gets or set if this event completelely handled. If it was, no further processing + will be done for it. + + + + + Gets the part of the cell that the mouse is over + + + + + Gets an extended indication of the part of item/subitem/group that the mouse is currently over + + + + + Gets the index of the column that the mouse is over + + In non-details view, this will always be 0. + + + + Gets the index of the row that the mouse is over + + + + + Gets the group that the mouse is over + + + + + Gets the part of the cell that the mouse used to be over + + + + + Gets an extended indication of the part of item/subitem/group that the mouse used to be over + + + + + Gets the index of the column that the mouse used to be over + + + + + Gets the index of the row that the mouse used to be over + + + + + Gets the group that the mouse used to be over + + + + + Returns a string that represents the current object. + + + A string that represents the current object. + + 2 + + + + Let the world know that a checkbox on a subitem is changing + + + + + Create a new event block + + + + + + + + + + The column of the cell that is having its checkbox changed. + + + + + The model object of the row of the cell that is having its checkbox changed. + + + + + The listview item of the cell that is having its checkbox changed. + + + + + The current check state of the cell. + + + + + The proposed new check state of the cell. + + + + + The index of the cell that is going to be or has been edited. + + + + + This event argument block is used when groups are created for a list. + + + + + Create a CreateGroupsEventArgs + + + + + + Gets the settings that control the creation of groups + + + + + Gets or sets the groups that should be used + + + + + Has this event been cancelled by the event handler? + + + + + This event argument block is used when the text of a group task is clicked + + + + + Create a GroupTaskClickedEventArgs + + + + + + Gets which group was clicked + + + + + This event argument block is used when a group is about to expand or collapse + + + + + Create a GroupExpandingCollapsingEventArgs + + + + + + Gets which group is expanding/collapsing + + + + + Gets whether this event is going to expand the group. + If this is false, the group must be collapsing. + + + + + This event argument block is used when the state of group has changed (collapsed, selected) + + + + + Create a GroupStateChangedEventArgs + + + + + + + + Gets whether the group was collapsed by this event + + + + + Gets whether the group was focused by this event + + + + + Gets whether the group was selected by this event + + + + + Gets whether the group was uncollapsed by this event + + + + + Gets whether the group was unfocused by this event + + + + + Gets whether the group was unselected by this event + + + + + Gets which group had its state changed + + + + + Gets the previous state of the group + + + + + Gets the new state of the group + + + + + This event argument block is used when a branch of a tree is about to be expanded + + + + + Create a new event args + + + + + + + Gets the model that is about to expand. If null, all branches are going to be expanded. + + + + + Gets the OLVListItem that is about to be expanded + + + + + This event argument block is used when a branch of a tree has just been expanded + + + + + Create a new event args + + + + + + + Gets the model that is was expanded. If null, all branches were expanded. + + + + + Gets the OLVListItem that was expanded + + + + + This event argument block is used when a branch of a tree is about to be collapsed + + + + + Create a new event args + + + + + + + Gets the model that is about to collapse. If this is null, all models are going to collapse. + + + + + Gets the OLVListItem that is about to be collapsed. Can be null + + + + + This event argument block is used when a branch of a tree has just been collapsed + + + + + Create a new event args + + + + + + + Gets the model that is was collapsed. If null, all branches were collapsed + + + + + Gets the OLVListItem that was collapsed + + + + + This class contains all the settings used when groups are created + + + + + Create a GroupingParameters + + + + + + + + + + + + + + + Gets or sets the ObjectListView being grouped + + + + + Gets or sets the column used to create groups + + + + + In what order will the groups themselves be sorted? + + + + + If this is set, this comparer will be used to order the groups + + + + + If this is set, this comparer will be used to order items within each group + + + + + Gets or sets the column that will be the primary sort + + + + + Gets or sets the ordering for the primary sort + + + + + Gets or sets the column used for secondary sorting + + + + + Gets or sets the ordering for the secondary sort + + + + + Gets or sets the title format used for groups with zero or more than one element + + + + + Gets or sets the title format used for groups with only one element + + + + + Gets or sets whether the items should be sorted by the primary column + + + + + These values indicate what is the state of the group. These values + are taken directly from the SDK and many are not used by ObjectListView. + + + + + Normal + + + + + Collapsed + + + + + Hidden + + + + + NoHeader + + + + + Can be collapsed + + + + + Has focus + + + + + Is Selected + + + + + Is subsetted + + + + + Subset link has focus + + + + + All styles + + + + + This mask indicates which members of a LVGROUP have valid data. These values + are taken directly from the SDK and many are not used by ObjectListView. + + + + + No mask + + + + + Group has header + + + + + Group has footer + + + + + Group has state + + + + + + + + + + + + + + + pszSubtitle is valid + + + + + pszTask is valid + + + + + pszDescriptionTop is valid + + + + + pszDescriptionBottom is valid + + + + + iTitleImage is valid + + + + + iExtendedImage is valid + + + + + iFirstItem and cItems are valid + + + + + pszSubsetTitle is valid + + + + + readonly, cItems holds count of items in visible subset, iFirstItem is valid + + + + + This mask indicates which members of a GROUPMETRICS structure are valid + + + + + + + + + + + + + + + + + + + + + + + + + Instances of this class enhance the capabilities of a normal ListViewGroup, + enabling the functionality that was released in v6 of the common controls. + + + + In this implementation (2009-09), these objects are essentially passive. + Setting properties does not automatically change the associated group in + the listview. Collapsed and Collapsible are two exceptions to this and + give immediate results. + + + This really should be a subclass of ListViewGroup, but that class is + sealed (why is that?). So this class provides the same interface as a + ListViewGroup, plus many other new properties. + + + + + + Create an OLVGroup + + + + + 按指定标题创建分组 + + 分组标题 + + + + Gets or sets the bottom description of the group + + + Descriptions only appear when group is centered and there is a title image + + + + + Gets or sets whether or not this group is collapsed + + + + + Gets or sets whether or not this group can be collapsed + + + + + Gets or sets some representation of the contents of this group + + This is user defined (like Tag) + + + + Gets whether this group has been created. + + + + + Gets or sets the int or string that will select the extended image to be shown against the title + + + + + Gets or sets the footer of the group + + + + + Gets the internal id of our associated ListViewGroup. + + + + + Gets or sets the header of the group + + + + + Gets or sets the horizontal alignment of the group header + + + + + Gets or sets the internally created id of the group + + + + + Gets or sets ListViewItems that are members of this group + + Listener of the BeforeCreatingGroups event can populate this collection. + It is only used on non-virtual lists. + + + + Gets or sets the key that was used to partition objects into this group + + This is user defined (like Tag) + + + + Gets the ObjectListView that this group belongs to + + If this is null, the group has not yet been created. + + + + Gets or sets the name of the group + + As of 2009-09-01, this property is not used. + + + + Gets or sets whether this group is focused + + + + + Gets or sets whether this group is selected + + + + + Gets or sets the text that will show that this group is subsetted + + + As of WinSDK v7.0, subsetting of group is officially unimplemented. + We can get around this using undocumented interfaces and may do so. + + + + + Gets or set the subtitleof the task + + + + + Gets or sets the value by which this group will be sorted. + + + + + Gets or sets the state of the group + + + + + Gets or sets which bits of State are valid + + + + + Gets or sets whether this group is showing only a subset of its elements + + + As of WinSDK v7.0, this property officially does nothing. + + + + + Gets or sets the user-defined data attached to this group + + + + + Gets or sets the task of this group + + This task is the clickable text that appears on the right margin + of the group header. + + + + Gets or sets the int or string that will select the image to be shown against the title + + + + + Gets or sets the top description of the group + + + Descriptions only appear when group is centered and there is a title image + + + + + Gets or sets the number of items that are within this group. + + This should only be used for virtual groups. + + + + Gets or sets the ListViewGroup that is shadowed by this group. + + For virtual groups, this will always be null. + + + + Calculate the index into the group image list of the given image selector + + + + + + + Convert this object to a string representation + + + + + + Insert a native group into the underlying Windows control, + *without* using a ListViewGroup + + + This is used when creating virtual groups + + + + Insert a native group into the underlying control via a ListViewGroup + + + + + + Change the members of the group to match the current contents of Items, + using a ListViewGroup + + + + + Create a native LVGROUP structure that matches this group + + + + + Get the current state of this group from the underlying control + + + + + Get the current state of this group from the underlying control + + + + + An instance of Munger gets a value from or puts a value into a target object. The property + to be peeked (or poked) is determined from a string. The peeking or poking is done using reflection. + + + Name of the aspect to be peeked can be a field, property or parameterless method. The name of an + aspect to poke can be a field, writable property or single parameter method. + + Aspect names can be dotted to chain a series of references. + + Order.Customer.HomeAddress.State + + + + + Create a do nothing Munger + + + + + Create a Munger that works on the given aspect name + + The name of the + + + + A helper method to put the given value into the given aspect of the given object. + + This method catches and silently ignores any errors that occur + while modifying the target object + The object to be modified + The name of the property/field to be modified + The value to be assigned + Did the modification work? + + + + Gets or sets whether Mungers will silently ignore missing aspect errors. + + + + By default, if a Munger is asked to fetch a field/property/method + that does not exist from a model, it returns an error message, since that + condition is normally a programming error. There are some use cases where + this is not an error, and the munger should simply keep quiet. + + By default this is true during release builds. + + + + + The name of the aspect that is to be peeked or poked. + + + + This name can be a field, property or parameter-less method. + + + The name can be dotted, which chains references. If any link in the chain returns + null, the entire chain is considered to return null. + + + "DateOfBirth" + "Owner.HomeAddress.Postcode" + + + + Extract the value indicated by our AspectName from the given target. + + If the aspect name is null or empty, this will return null. + The object that will be peeked + The value read from the target + + + + Extract the value indicated by our AspectName from the given target, raising exceptions + if the munger fails. + + If the aspect name is null or empty, this will return null. + The object that will be peeked + The value read from the target + + + + Poke the given value into the given target indicated by our AspectName. + + + + If the AspectName is a dotted path, all the selectors bar the last + are used to find the object that should be updated, and the last + selector is used as the property to update on that object. + + + So, if 'target' is a Person and the AspectName is "HomeAddress.Postcode", + this method will first fetch "HomeAddress" property, and then try to set the + "Postcode" property on the home address object. + + + The object that will be poked + The value that will be poked into the target + bool indicating whether the put worked + + + + Gets the list of SimpleMungers that match our AspectName + + + + + Convert a possibly dotted AspectName into a list of SimpleMungers + + + + + + + Evaluate the given chain of SimpleMungers against an initial target. + + + + + + + + A SimpleMunger deals with a single property/field/method on its target. + + + Munger uses a chain of these resolve a dotted aspect name. + + + + + Create a SimpleMunger + + + + + + The name of the aspect that is to be peeked or poked. + + + + This name can be a field, property or method. + When using a method to get a value, the method must be parameter-less. + When using a method to set a value, the method must accept 1 parameter. + + + It cannot be a dotted name. + + + + + + Get a value from the given target + + + + + + + Poke the given value into the given target indicated by our AspectName. + + The object that will be poked + The value that will be poked into the target + bool indicating if the put worked + + + + These exceptions are raised when a munger finds something it cannot process + + + + + Create a MungerException + + + + + + + + Get the munger that raised the exception + + + + + Gets the target that threw the exception + + + + + Wrapper for all native method calls on ListView controls + + + + + Put an image under the ListView. + + + + The ListView must have its handle created before calling this. + + + This doesn't work very well. Specifically, it doesn't play well with owner drawn, + and grid lines are drawn over it. + + + + The image to be used as the background. If this is null, any existing background image will be cleared. + If this is true, the image is pinned to the bottom right and does not scroll. The other parameters are ignored + If this is true, the image will be tiled to fill the whole control background. The offset parameters will be ignored. + If both watermark and tiled are false, this indicates the horizontal percentage where the image will be placed. 0 is absolute left, 100 is absolute right. + If both watermark and tiled are false, this indicates the vertical percentage where the image will be placed. + + + + + Flags controlling how the Image List item is + drawn + + + + + Draw item normally. + + + + + Draw item transparently. + + + + + Draw item blended with 25% of the specified foreground colour + or the Highlight colour if no foreground colour specified. + + + + + Draw item blended with 50% of the specified foreground colour + or the Highlight colour if no foreground colour specified. + + + + + Draw the icon's mask + + + + + Draw the icon image without using the mask + + + + + Draw the icon using the ROP specified. + + + + + Preserves the alpha channel in dest. XP only. + + + + + Scale the image to cx, cy instead of clipping it. XP only. + + + + + Scale the image to the current DPI of the display. XP only. + + + + + Enumeration containing XP ImageList Draw State options + + + + + The image state is not modified. + + + + + Adds a glow effect to the icon, which causes the icon to appear to glow + with a given color around the edges. (Note: does not appear to be implemented) + + + + + Adds a drop shadow effect to the icon. (Note: does not appear to be implemented) + + + + + Saturates the icon by increasing each color component + of the RGB triplet for each pixel in the icon. (Note: only ever appears to result in a completely unsaturated icon) + + + + + Alpha blends the icon. Alpha blending controls the transparency + level of an icon, according to the value of its alpha channel. + (Note: does not appear to be implemented). + + + + + Draws an image using the specified flags and state on XP systems. + + The image list from which an item will be drawn + Device context to draw to + Index of image to draw + X Position to draw at + Y Position to draw at + Drawing flags + Width to draw + Height to draw + State flags + + + + Make sure the ListView has the extended style that says to display subitem images. + + This method must be called after any .NET call that update the extended styles + since they seem to erase this setting. + The listview to send a m to + + + + Change the virtual list size of the given ListView (which must be in virtual mode) + + This will not change the scroll position + The listview to send a message to + How many rows should the list have? + + + + Make sure the ListView has the extended style that says to display subitem images. + + This method must be called after any .NET call that update the extended styles + since they seem to erase this setting. + The listview to send a m to + + + + + + Calculates the number of items that can fit vertically in the visible area of a list-view (which + must be in details or list view. + + The listView + Number of visible items per page + + + + For the given item and subitem, make it display the given image + + The listview to send a m to + row number (0 based) + subitem (0 is the item itself) + index into the image list + + + + Setup the given column of the listview to show the given image to the right of the text. + If the image index is -1, any previous image is cleared + + The listview to send a m to + Index of the column to modifiy + + Index into the small image list + + + + Does this version of the operating system have builtin sort indicators? + + Are there builtin sort indicators + XP and later have these + + + + Return the bounds of the update region on the given control. + + The BeginPaint() system call validates the update region, effectively wiping out this information. + So this call has to be made before the BeginPaint() call. + The control whose update region is be calculated + A rectangle + + + + Validate an area of the given control. A validated area will not be repainted at the next redraw. + + The control to be validated + The area of the control to be validated + + + + Select all rows on the given listview + + The listview whose items are to be selected + + + + Deselect all rows on the given listview + + The listview whose items are to be deselected + + + + Deselect a single row + + + + + + + Set the item state on the given item + + The listview whose item's state is to be changed + The index of the item to be changed + Which bits of the value are to be set? + The value to be set + + + + Scroll the given listview by the given deltas + + + + + true if the scroll succeeded + + + + Return the handle to the header control on the given list + + The listview whose header control is to be returned + The handle to the header control + + + + Return the edges of the given column. + + + + A Point holding the left and right co-ords of the column. + -1 means that the sides could not be retrieved. + + + + Return the edges of the given column. + + + + A Point holding the left and right co-ords of the column. + -1 means that the sides could not be retrieved. + + + + Return the index of the column of the header that is under the given point. + Return -1 if no column is under the pt + + The list we are interested in + The client co-ords + The index of the column under the point, or -1 if no column header is under that point + + + + Return the index of the divider under the given point. Return -1 if no divider is under the pt + + The list we are interested in + The client co-ords + The index of the divider under the point, or -1 if no divider is under that point + + + + Get the scroll position of the given scroll bar + + + + + + + + Change the z-order to the window 'toBeMoved' so it appear directly on top of 'reference' + + + + + + + + Make the given control/window a topmost window + + + + + + + Change the size of the window without affecting any other attributes + + + + + + + + + Show the given window without activating it + + The window to show + + + + Mark the given column as being selected. + + + The OLVColumn or null to clear + + This method works, but it prevents subitems in the given column from having + back colors. + + + + + A simple-minded implementation of a Dictionary that can handle null as a key. + + The type of the dictionary key + The type of the values to be stored + This is not a full implementation and is only meant to handle + collecting groups by their keys, since groups can have null as a key value. + + + + OLVListItems are specialized ListViewItems that know which row object they came from, + and the row index at which they are displayed, even when in group view mode. They + also know the image they should draw against themselves + + + + + Create a OLVListItem for the given row object + + + + + Create a OLVListItem for the given row object, represented by the given string and image + + + + + Gets the bounding rectangle of the item, including all subitems + + + + + Gets or sets how many pixels will be left blank around each cell of this item + + This setting only takes effect when the control is owner drawn. + + + + Gets or sets how the cells of this item will be vertically aligned + + This setting only takes effect when the control is owner drawn. + + + + Gets or sets the checkedness of this item. + + + Virtual lists don't handle checkboxes well, so we have to intercept attempts to change them + through the items, and change them into something that will work. + Unfortunately, this won't work if this property is set through the base class, since + the property is not declared as virtual. + + + + + Enable tri-state checkbox. + + .NET's Checked property was not built to handle tri-state checkboxes, + and will return True for both Checked and Indeterminate states. + + + + Gets if this item has any decorations set for it. + + + + + Gets or sets the decoration that will be drawn over this item + + Setting this replaces all other decorations + + + + Gets the collection of decorations that will be drawn over this item + + + + + Gets whether or not this row can be selected and activated + + + + + Gets whether any cell on this item is showing a hyperlink + + + + + Get or set the image that should be shown against this item + + This can be an Image, a string or an int. A string or an int will + be used as an index into the small image list. + + + + Gets or sets the the model object that is source of the data for this list item. + + + + + Gets or sets the color that will be used for this row's background when it is selected and + the control is focused. + + + To work reliably, this property must be set during a FormatRow event. + + If this is not set, the normal selection BackColor will be used. + + + + + + Gets or sets the color that will be used for this row's foreground when it is selected and + the control is focused. + + + To work reliably, this property must be set during a FormatRow event. + + If this is not set, the normal selection ForeColor will be used. + + + + + + Return the sub item at the given index + + Index of the subitem to be returned + An OLVListSubItem + + + + Return bounds of the given subitem + + This correctly calculates the bounds even for column 0. + + + + A ListViewSubItem that knows which image should be drawn against it. + + + + + Create a OLVListSubItem + + + + + Create a OLVListSubItem that shows the given string and image + + + + + Gets or sets how many pixels will be left blank around this cell + + This setting only takes effect when the control is owner drawn. + + + + Gets or sets how this cell will be vertically aligned + + This setting only takes effect when the control is owner drawn. + + + + Gets or sets the model value is being displayed by this subitem. + + + + + Gets if this subitem has any decorations set for it. + + + + + Gets or sets the decoration that will be drawn over this item + + Setting this replaces all other decorations + + + + Gets the collection of decorations that will be drawn over this item + + + + + Get or set the image that should be shown against this item + + This can be an Image, a string or an int. A string or an int will + be used as an index into the small image list. + + + + Gets or sets the url that should be invoked when this subitem is clicked + + + + + Gets or sets whether this cell is selected + + + + + Return the state of the animatation of the image on this subitem. + Null means there is either no image, or it is not an animation + + + + + An indication of where a hit was within ObjectListView cell + + + + + Nowhere + + + + + On the text + + + + + On the image + + + + + On the checkbox + + + + + On the expand button (TreeListView) + + + + + in a button (cell must have ButtonRenderer) + + + + + in the cell but not in any more specific location + + + + + UserDefined location1 (used for custom renderers) + + + + + On the expand/collapse widget of the group + + + + + Somewhere on a group + + + + + Somewhere in a column header + + + + + Somewhere in a column header checkbox + + + + + Somewhere in a header divider + + + + + A collection of ListViewHitTest constants + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Instances of this class encapsulate the information gathered during a OlvHitTest() + operation. + + Custom renderers can use HitTestLocation.UserDefined and the UserData + object to store more specific locations for use during event handlers. + + + + Create a OlvListViewHitTestInfo + + + + + Create a OlvListViewHitTestInfo when the header was hit + + + + + Where is the hit location? + + + + + Where is the hit location? + + + + + Which group was hit? + + + + + Custom renderers can use this information to supply more details about the hit location + + + + + Gets the item that was hit + + + + + Gets the subitem that was hit + + + + + Gets the part of the subitem that was hit + + + + + Gets the ObjectListView that was tested + + + + + Gets the model object that was hit + + + + + Gets the index of the row under the hit point or -1 + + + + + Gets the index of the column under the hit point + + + + + Gets the index of the header divider + + + + + Gets the column that was hit + + + + + Returns a string that represents the current object. + + + A string that represents the current object. + + 2 + + + + A TreeDataSourceAdapter knows how to build a tree structure from a binding list. + + To build a tree + + + + Create a data source adaptor that knows how to build a tree structure + + + + + + Gets or sets the name of the property/column that uniquely identifies each row. + + + + The value contained by this column must be unique across all rows + in the data source. Odd and unpredictable things will happen if two + rows have the same id. + + Null cannot be a valid key value. + + + + + Gets or sets the name of the property/column that contains the key of + the parent of a row. + + + + The test condition for deciding if one row is the parent of another is functionally + equivilent to this: + + Object.Equals(candidateParentRow[this.KeyAspectName], row[this.ParentKeyAspectName]) + + + Unlike key value, parent keys can be null but a null parent key can only be used + to identify root objects. + + + + + Gets or sets the value that identifies a row as a root object. + When the ParentKey of a row equals the RootKeyValue, that row will + be treated as root of the TreeListView. + + + + The test condition for deciding a root object is functionally + equivilent to this: + + Object.Equals(candidateRow[this.ParentKeyAspectName], this.RootKeyValue) + + + The RootKeyValue can be null. + + + + + Gets or sets whether or not the key columns (id and parent id) should + be shown to the user. + + This must be set before the DataSource is set. It has no effect + afterwards. + + + + Gets the DataTreeListView that is being managed + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A IVirtualGroups is the interface that a virtual list must implement to support virtual groups + + + + + Return the list of groups that should be shown according to the given parameters + + + + + + + Return the index of the item that appears at the given position within the given group. + + + + + + + + Return the index of the group to which the given item belongs + + + + + + + Return the index at which the given item is shown in the given group + + + + + + + + A hint that the given range of items are going to be required + + + + + + + + + This is a safe, do nothing implementation of a grouping strategy + + + + + Return the list of groups that should be shown according to the given parameters + + + + + + + Return the index of the item that appears at the given position within the given group. + + + + + + + + Return the index of the group to which the given item belongs + + + + + + + Return the index at which the given item is shown in the given group + + + + + + + + A hint that the given range of items are going to be required + + + + + + + + + Provides grouping functionality to a FastObjectListView + + + + + Create groups for FastListView + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This is the COM interface that a ListView must be given in order for groups in virtual lists to work. + + + This interface is NOT documented by MS. It was found on Greg Chapell's site. This means that there is + no guarantee that it will work on future versions of Windows, nor continue to work on current ones. + + + + + Not sure what this does + + + + + + + Not sure what this does + + + + + + + Get the index of the item that occurs at the n'th position of the indicated group. + + Index of the group + Index within the group + Index of the item within the whole list + + + + Get the index of the group to which the given item belongs + + Index of the item within the whole list + Which occurences of the item is wanted + Index of the group + + + + Get the number of groups that contain the given item + + Index of the item within the whole list + How many groups does it occur within + + + + A hint to prepare any cache for the given range of requests + + + + + + + A default implementation of the IOwnerDataCallback interface + + + + + A VirtualListDataSource is a complete manner to provide functionality to a virtual list. + An object that implements this interface provides a VirtualObjectListView with all the + information it needs to be fully functional. + + Implementors must provide functioning implementations of at least GetObjectCount() + and GetNthObject(), otherwise nothing will appear in the list. + + + + Return the object that should be displayed at the n'th row. + + The index of the row whose object is to be returned. + The model object at the n'th row, or null if the fetching was unsuccessful. + + + + Return the number of rows that should be visible in the virtual list + + The number of rows the list view should have. + + + + Get the index of the row that is showing the given model object + + The model object sought + The index of the row showing the model, or -1 if the object could not be found. + + + + The ListView is about to request the given range of items. Do + whatever caching seems appropriate. + + + + + + + Find the first row that "matches" the given text in the given range. + + The text typed by the user + Start searching from this index. This may be greater than the 'to' parameter, + in which case the search should descend + Do not search beyond this index. This may be less than the 'from' parameter. + The column that should be considered when looking for a match. + Return the index of row that was matched, or -1 if no match was found + + + + Sort the model objects in the data source. + + + + + + + Add the given collection of model objects to this control. + + A collection of model objects + + + + Insert the given collection of model objects to this control at the position + + Index where the collection will be added + A collection of model objects + + + + Remove all of the given objects from the control + + Collection of objects to be removed + + + + Set the collection of objects that this control will show. + + + + + + Update/replace the nth object with the given object + + + + + + + This extension allow virtual lists to filter their contents + + + + + All subsequent retrievals on this data source should be filtered + through the given filters. null means no filtering of that kind. + + + + + + + A do-nothing implementation of the VirtualListDataSource interface. + + + + + Creates an AbstractVirtualListDataSource + + + + + + The list view that this data source is giving information to. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Update/replace the nth object with the given object + + + + + + + This is a useful default implementation of SearchText method, intended to be called + by implementors of IVirtualListDataSource. + + + + + + + + + + + + + + + + + + This class mimics the behavior of VirtualObjectListView v1.x. + + + + + Creates a VirtualListVersion1DataSource + + + + + + How will the n'th object of the data source be fetched? + + + + + + + + + + + + + + + + + + + + + + Designer for and its subclasses. + + + + This designer removes properties and events that are available on ListView but that are not + useful on ObjectListView. + + + We can't inherit from System.Windows.Forms.Design.ListViewDesigner, since it is marked internal. + So, this class uses reflection to create a ListViewDesigner and then forwards messages to that designer. + + + + + + Initializes the designer with the specified component. + + The to associate the designer with. This component must always be an instance of, or derive from, . + + + + Initializes a newly created component. + + A name/value dictionary of default values to apply to properties. May be null if no default values are specified. + + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Removes the duplicate DockingActionList added by this designer to the . + + + adds an internal DockingActionList : 'Dock/Undock in Parent Container'. + But the default designer has already added that action list. So we need to remove one. + + + + + Adjusts the set of properties the component exposes through a . + + An containing the properties for the class of the component. + + + + Allows a designer to add to the set of events that it exposes through a . + + The events for the class of the component. + + + + Allows a designer to change or remove items from the set of attributes that it exposes through a . + + The attributes for the class of the component. + + + + Allows a designer to change or remove items from the set of events that it exposes through a . + + The events for the class of the component. + + + + Gets the design-time action lists supported by the component associated with the designer. + + + The design-time action lists supported by the component associated with the designer. + + + + + Gets the collection of components associated with the component managed by the designer. + + + The components that are associated with the component managed by the designer. + + + + + Indicates whether a mouse click at the specified point should be handled by the control. + + + true if a click at the specified point is to be handled by the control; otherwise, false. + + A indicating the position at which the mouse was clicked, in screen coordinates. + + + + Processes Windows messages and optionally routes them to the control. + + The to process. + + + + This class modifies a ListViewActionList, by removing the "Edit Items" and "Edit Groups" actions. + + + + That class is internal, so we cannot simply subclass it, which would be simplier. + + + Action lists use reflection to determine if that action can be executed, so we not + only have to modify the returned collection of actions, but we have to implement + the properties and commands that the returned actions use. + + + + + This class works in conjunction with the OLVColumns property to allow OLVColumns + to be added to the ObjectListView. + + + + + Create a OLVColumnCollectionEditor + + + + + + What type of object does this editor create? + + + + + + Edit a given value + + + + + + + + + What text should be shown in the list for the given object? + + + + + + + Control how the overlay is presented in the IDE + + + + + An OLVColumn knows which aspect of an object it should present. + + + The column knows how to: + + extract its aspect from the row object + convert an aspect to a string + calculate the image for the row object + extract a group "key" from the row object + convert a group "key" into a title for the group + + For sorting to work correctly, aspects from the same column + must be of the same type, that is, the same aspect cannot sometimes + return strings and other times integers. + + + + + How should the button be sized? + + + + + 每个单元格都将具有相同大小的按钮,如ButtonSize属性所示 + + + + + 每个单元格都将绘制一个填充单元格的按钮,该按钮由ButtonPadding插入 + + + + + 将调整每个按钮的大小以包含文本内容 + + + + + Create an OLVColumn + + + + + Initialize a column to have the given title, and show the given aspect + + The title of the column + The aspect to be shown in the column + + + + 此委托将用于提取要在此列中显示的值。 + + + 如果设置, AspectName属性将被忽略. + + + + + 请记住,如果当前列的AspectGetter是内部生成的,依旧可以随意重新生成 + + + + + 应调用以获取要在此列中显示的值的属性或方法的名称。 + 仅当未指定ValueGetterDelegate时才使用此选项。 + + 此名称可以用来表示对属性或无参数方法的链引用。 + "DateOfBirth" + "Owner.HomeAddress.Postcode" + + + + 此委托将用于将编辑后的值放回模型对象中。 + + + 如果IsEdable==false,则不执行任何操作。 + + + + + 用于将要在此列中显示的Aspect转换为字符串的委托。 + + 如果设置了此值,AspectToStringFormat将被忽略。 + + + + 将Aspect转换成字符串的格式文本 + + + 此字符串作为第一个参数传递给String.Format()方法。 + 仅当尚未设置AspectToStringConverter时才使用此选项。 + "{0:C}" 表示转换数字到货币 + + + + 获取或设置单元格编辑器是否应使用自动完成 + + + + + 获取或设置单元格编辑器是否应使用自动完成 + + + + + 获取用户操作是否可以隐藏此列 + + 这会同时考虑Hideable属性以及此列是否为列表视图的主列(列0)。 + + + + 编辑单元格时,是否应该使用整个单元格(减去复选框或图像使用的任何空间)? + + + 如果控件不是所有者绘制(owner drawn)的,则始终将其视为true。 + + 如果该值为False(默认值)并且控件是所有者绘制(owner drawn)的, + ObjectListView将尝试计算单元格实际内容的宽度,然后将编辑控件的大小调整为恰到好处的宽度。 + 如果为真,则无论单元格的内容如何,都将使用单元格的整个宽度。 + + 如果未在列上设置此属性,则将使用控件中的值 + + 仅当控件处于详细信息视图中时才使用此值。 + 无论此设置如何,开发人员都可以通过侦听CellEditStarting事件来指定编辑控件的确切大小。 + + + + + 获取编辑此列中的单元格时是否应使用整个单元格 + + 这将计算当前有效值,该值可能与CellEditUseWholeCell不同 + + + + 获取或设置此列中此单元格周围将留空的像素数 + + 此设置仅在控件为所有者绘制(owner drawn)时生效。 + + + + 获取或设置此列中的单元格垂直对齐的方式。 + + + + 此设置仅在控件为所有者绘制(owner drawn)时生效。 + + + 如果未设置,将使用控件本身的值。 + + + + + + 获取或设置此列是否显示复选框。 + + + 在第0列上设置此选项不起作用。列0复选框由ObjectListView本身的CheckBox属性控制。 + + + + + Gets or sets the clustering strategy used for this column. + + + + The clustering strategy is used to build a Filtering menu for this item. + If this is null, a useful default will be chosen. + + + To disable filtering on this colummn, set UseFiltering to false. + + + Cluster strategies belong to a particular column. The same instance + cannot be shared between multiple columns. + + + + + + 获取或设置是否启用此列中的按钮(如果此列是按钮),即使该行本身被禁用 + + + + + 此列是否应该调整大小以填充列表视图中的空闲空间? + + + + 如果希望两列(或更多列)平均共享可用空间,请将此属性设置为True。 + 如果希望此列具有更大或更小的可用空间份额,则必须显式设置FreeSpaceProportion属性。 + + + 空间填充列仍然由MinimumWidth和MaximumWidth属性控制。 + + /// + + + + 控件中未占用的水平空间应分配给此列的比例是多少? + + + + 在某些情况下,如果列(通常是最右边的列)可以随着列表视图的扩展而扩展, + 这样就可以在不必水平滚动的情况下尽可能多地看到列(您永远不应该让用户必须水平滚动任何内容!)。 + + + 调整空间填充列的大小以占据列表视图的未占用宽度的一部分(未占用宽度是一旦所有非填充列都被赋予其空间后剩余的宽度)。 + 此属性指示将分配给此列的未占用空间的相对比例。此属性的实际值并不重要,重要的是它的值相对于其他列中的值。 + 例子: + + + 如果只有一个空间填充列,则无论FreeSpaceProportion中的值如何,都将为其提供所有可用空间。 + + + 如果有两个或多个空间填充列,并且它们的FreeSpaceProportion值都相同,则它们将平等地共享空闲空间。 + + + 如果FreeSpaceProportion有三个值为3、2和1的空间填充列,则第一列将占用一半的空闲空间,第二列将占用三分之一的空闲空间,第三列将占用六分之一的空闲空间。 + + + + + + + + 获取或设置在单击此列的标题时是否对此列值重新生成组。 + + + 此设置仅在ShowGroups为true时使用。 + + 如果为False,则单击标题不会重建组。 + + 如果为false,则仍会激发BeforeCreatingGroups事件,这些事件可用于根据具体情况进行分组或提供反馈。 + + + + + 当组已创建但尚未成为真正的ListViewGroup时,将调用此委托。用户可以利用此机会填写有关该组的许多其他详细信息。 + + + + + 调用此委托以获取对象,该对象是给定行所属的组的键。 + + + + + 调用此委托将组键转换为该组的标题。 + + + + + 当列表视图按此列分组并且组标题有项目计数时,应如何设置标签的格式 + + + 给定的格式字符串支持以下两个占位符: + + {0} - 原组标题 + {1} - 该组项目数 + + + "{0} [{1} items]" + + + + 获取this.GroupWithItemCountFormat或默认值 + + + 如果未设置GroupWithItemCountFormat,则如果可能,将从ObjectListView中获取其值。 + + + + + 当列表视图按此列分组并且组标题有项目计数时,如果组中只有一个项目,标签应该如何格式化 + + + 给定的格式字符串支持以下两个占位符: + + {0} - 原组标题 + {1} - 该组项目数 (始终为1) + + + "{0} [{1} item]" + + + + 获取this.GroupWithItemCountSingularFormat或默认值 + + + 如果未设置此值,将使用列表视图中的值 + + + + + 获取是否应在列标题中使用筛选器指示符绘制此列。 + + + + + 获取或设置将用于所有者绘制标题列的委托。 + + + + + 获取或设置将用于绘制此列标题的样式 + + 仅当拥有的ObjectListView将HeaderUsesThemes设置为False时才使用此选项。 + + + + 获取或设置绘制此列的标题时使用的字体 + + 您可能应该使用HeaderFormatStyle而不是此属性 + 这仅在HeaderUsesThemes为false时使用。 + + + + 获取或设置绘制此列标题文本的颜色 + + 您可能应该使用HeaderFormatStyle而不是此属性 + 这仅在HeaderUsesThemes为false时使用。 + + + + 获取或设置将在列标题中显示的图像键 + + 这仅在HeaderUsesThemes为false时使用 + + + + 获取或设置Header文本的对齐方式 + + + + + 返回Header的文本对齐方式。这将是显式设置的,或者将遵循列中文本的对齐方式 + + + + + 获取转换为StringAlignment的Header对齐方式 + + + + + 获取此列的标题中是否有图像 + + + + + 获取或设置此Header是否在Header中放置复选框 + + + + + 获取或设置此Header是否在Header中放置三态复选框 + + + + + 获取或设置此列Header中复选框的选中状态 + + + + + 获取或设置选中/取消选中标题复选框的值是否会导致将此列中所有单元格的复选框设置为相同的选中/取消选中。 + 默认值为true. + + + + 当单元格的复选框状态改变时,该函数不会与自动更新标题的功能相反。 + + + 此属性在TreeListView上的行为最好描述为未定义,应该避免。 + + + 此操作(检查/取消检查所有行)的性能为O(n),其中n是行数。它将在大型虚拟列表上工作,但可能需要一些时间。 + + + + + + 获取或设置是否禁用标题中的复选框 + + + 单击禁用的复选框不会更改其值,但会引发HeaderCheckBoxChanging事件,使程序员有机会执行适当的操作。 + + + + 获取或设置用户是否可以隐藏此列。 + + + 无论此设置如何,列0永远不能隐藏。 + + + + + 获取或设置此列中的文本值是否类似于超链接 + + + + + 这是属性的名称,将调用该属性来获取应该在此列中显示的图像的图像选择器。 + 它可以返回int、String、Image或NULL。 + + + 如果ImageGetter不为空,则忽略此项。 + 该属性可以使用以下返回值来标识图像: + + null或-1 --表示无图像 + int -- Int值将用作图像列表的索引 + String -- 字符串值将用作图像列表的关键字 + Image -- 将直接绘制图像(仅在OwnerDrawn模式下) + + + + + + 调用此委托以获取应该在此列中显示的图像的图像选择器。它可以返回int、String、Image或NULL。 + + + 该属性可以使用以下返回值来标识图像: + + null或-1 --表示无图像 + int -- Int值将用作图像列表的索引 + String -- 字符串值将用作图像列表的关键字 + Image -- 将直接绘制图像(仅在OwnerDrawn模式下) + + + + + + 获取或设置此列是否在其单元格中绘制按钮 + + + + 如果将其设置为true,则列的呈现器将成为ColumnButtonRenender(如果尚未成为ColumnButtonRenender)。如果设置为False,则将丢弃以前的任何按钮渲染器 + + 如果单元格的Aspect为Null或空,则不会在单元格中绘制任何内容。 + + + + Create a ColumnButtonRenderer to draw buttons in this column + + + + + + Fill in details to our ColumnButtonRenderer based on the properties set on the column + + + + + 获取或设置按钮可以占用的最大宽度。 + -1 表示不限制最大宽度 + + 仅当SizingMode为TextBound时才生效 + + + + 获取或设置当SizingMode为TextBound时单元格周围的额外空间 + + + + + 获取或设置SizingMode为FixedBound时按钮的大小 + + 如果未设置,将使用单元格的边界 + + + + 获取或设置此列显示按钮时如何调整每个按钮的大小 + + + + + 此列中显示的值是否可以编辑 + + 此默认值为false,因为控制列表视图的可编辑性的主要方法是列表视图本身。 + 列表视图可编辑后,所有列也可编辑,除非程序员显式将它们标记为不可编辑 + + + + 是否是固定宽度 + + + + + 获取/设置当视图切换到平铺视图(TileView)时是否使用此列。 + + 无论此设置如何,第0列始终包含在平铺视图中。平铺视图不能很好地处理许多“列”信息。两三个最好。 + + + + 获取或设置Header的文本是否应垂直呈现。 + + + 如果为True,最好将ToolTipText设置为列的名称,以便于阅读。 + 垂直Header仅为文本。他们不会画出图像。 + + + + + 该列是否可见 + + 更改此值后,必须调用RebuildColumns()才能使更改生效。 + + + + 此列最后一次定位在详细信息视图列中的位置是什么 + + DisplayIndex是易失性的。一旦从控件中移除列,就无法发现它在显示顺序中的位置。 + 即使列不在列表视图的活动列中,此属性也会保护该信息。 + + + + 列最大宽度 + + -1表示不限制. 将该值指定为与MinimumWidth相同的值,以生成固定宽度的列。 + + + + 列最小宽度 + + -1表示不限制. 将该值指定为与MaximumWidth相同的值,以生成固定宽度的列。 + + + + Get/set the renderer that will be invoked when a cell needs to be redrawn + + + + + This delegate is called when a cell needs to be drawn in OwnerDrawn mode. + + This method is kept primarily for backwards compatibility. + New code should implement an IRenderer, though this property will be maintained. + + + + 获取或设置执行文本搜索时是否使用此列的单元格中的文本。 + + + + 如果为False,则文本筛选器在查找匹配项时不会尝试搜索此列单元格。 + + + + + + 获取或设置一个委托,该委托将返回在使用基于文本的筛选器时应考虑进行文本匹配的文本值数组。 + + + + + 获取或设置此列的标题是否将包括该列的文本。 + + + + 如果为false,则列标题中呈现的唯一内容将是来自 . + + 只有在以下情况下才会考虑此设置: ObjectListView中的 为false . + + + + + 获取或设置当用户单击此列的标题时是否重新排序列表内容。 + + + + 如果为False,则单击标题将不会对列表进行排序,但也不会提供有关列表未排序原因的任何反馈。提供适当的反馈是程序员的责任。 + + 如果为false,则仍会触发BeforeSorting事件,该事件可用于根据具体情况进行排序或提供反馈。 + + + + + 获取或设置列内容的水平对齐方式。 + + NET将不允许列0具有除左对齐以外的任何对齐方式。我们不能更改列表视图的基本行为,但当所有者绘制时,列0现在可以有其他对齐方式。 + + + + 获取列文本对齐的StringAlignment等效项 + + + + + 当鼠标悬停在该列的标题上时,应该显示什么字符串? + + 如果拥有的ObjectListView上安装了HeaderToolTipGetter,则将忽略此值。 + + + + 此列是否应该有一个三态复选框 + + + 如果为True,用户可以选择第三种状态(通常是不确定的)。 + + + + + 按列纵横比的首字母对对象进行分组 + + + 一种常见的模式是按该组的值的首字母对列进行分组。aspect必须是字符串(显然)。 + + + + + 获取或设置此列是否应为用户可筛选的列 + + + + + Gets or sets a filter that will only include models where the model's value + for this column is one of the values in ValuesChosenForFiltering + + + + + Gets or sets the values that will be used to generate a filter for this + column. For a model to be included by the generated filter, its value for this column + must be in this list. If the list is null or empty, this column will + not be used for filtering. + + + + + 列宽 + + + + + 获取或设置此列单元格的内容是否应自动换行 + + 如果此列使用自定义IRenender(即,不是从BaseRenender派生的),则该呈现器负责实现自动换行。 + + + + For a given group value, return the string that should be used as the groups title. + + The group key that is being converted to a title + string + + + + Get the checkedness of the given object for this column + + The row object that is being displayed + The checkedness of the object + + + + Put the checkedness of the given object for this column + + The row object that is being displayed + + The checkedness of the object + + + + For a given row object, extract the value indicated by the AspectName property of this column. + + The row object that is being displayed + An object, which is the aspect named by AspectName + + + + For a given row object, return the object that is the key of the group that this row belongs to. + + The row object that is being displayed + Group key object + + + + For a given row object, return the image selector of the image that should displayed in this column. + + The row object that is being displayed + int or string or Image. int or string will be used as index into image list. null or -1 means no image + + + + Return the image that represents the check box for the given model + + + + + + + For a given row object, return the strings that will be searched when trying to filter by string. + + + This will normally be the simple GetStringValue result, but if this column is non-textual (e.g. image) + you might want to install a SearchValueGetter delegate which can return something that could be used + for text filtering. + + + The array of texts to be searched. If this returns null, search will not match that object. + + + + For a given row object, return the string representation of the value shown in this column. + + + For aspects that are string (e.g. aPerson.Name), the aspect and its string representation are the same. + For non-strings (e.g. aPerson.DateOfBirth), the string representation is very different. + + + + + + + For a given row object, return the object that is to be displayed in this column. + + The row object that is being displayed + An object, which is the aspect to be displayed + + + + Update the given model object with the given value using the column's + AspectName. + + The model object to be updated + The value to be put into the model + + + + Update the given model object with the given value + + The model object to be updated + The value to be put into the model + + + + Convert the aspect object to its string representation. + + + If the column has been given a AspectToStringConverter, that will be used to do + the conversion, otherwise just use ToString(). + The returned value will not be null. Nulls are always converted + to empty strings. + + The value of the aspect that should be displayed + A string representation of the aspect + + + + Convert the aspect object to its string representation. + + + If the column has been given a AspectToStringConverter, that will be used to do + the conversion, otherwise just use ToString(). + The returned value will not be null. Nulls are always converted + to empty strings. + + + The value of the aspect that should be displayed + A string representation of the aspect + + + + Decide the clustering strategy that will be used for this column + + + + + + Gets or sets the type of data shown in this column. + + If this is not set, it will try to get the type + by looking through the rows of the listview. + + + + This event is triggered when the visibility of this column changes. + + + + + Tell the world when visibility of a column changes. + + + + + Create groupies + This is an untyped version to help with Generator and OLVColumn attributes + + + + + + + Create groupies + + + + + + + + Create groupies + + + + + + + + + Create groupies + + + + + + + + + + Create groupies. + Install delegates that will group the columns aspects into progressive partitions. + If an aspect is less than value[n], it will be grouped with description[n]. + If an aspect has a value greater than the last element in "values", it will be grouped + with the last element in "descriptions". + + Array of values. Values must be able to be + compared to the aspect (using IComparable) + The description for the matching value. The last element is the default description. + If there are n values, there must be n+1 descriptions. + + this.salaryColumn.MakeGroupies( + new UInt32[] { 20000, 100000 }, + new string[] { "Lowly worker", "Middle management", "Rarified elevation"}); + + + + + + + + + Create groupies based on exact value matches. + + + Install delegates that will group rows into partitions based on equality of this columns aspects. + If an aspect is equal to value[n], it will be grouped with description[n]. + If an aspect is not equal to any value, it will be grouped with "[other]". + + Array of values. Values must be able to be + equated to the aspect + The description for the matching value. + + this.marriedColumn.MakeEqualGroupies( + new MaritalStatus[] { MaritalStatus.Single, MaritalStatus.Married, MaritalStatus.Divorced, MaritalStatus.Partnered }, + new string[] { "Looking", "Content", "Looking again", "Mostly content" }); + + + + + + + + + An adorment is the common base for overlays and decorations. + + + + + Gets or sets the corner of the adornment that will be positioned at the reference corner + + + + + Gets or sets location within the reference rectange where the adornment will be drawn + + This is a simplied interface to ReferenceCorner and AdornmentCorner + + + + Gets or sets the offset by which the position of the adornment will be adjusted + + + + + Gets or sets the point of the reference rectangle to which the adornment will be aligned. + + + + + Gets or sets the degree of rotation by which the adornment will be transformed. + The centre of rotation will be the center point of the adornment. + + + + + Gets or sets the transparency of the overlay. + 0 is completely transparent, 255 is completely opaque. + + + + + Calculate the location of rectangle of the given size, + so that it's indicated corner would be at the given point. + + The point + + Which corner will be positioned at the reference point + + CalculateAlignedPosition(new Point(50, 100), new Size(10, 20), System.Drawing.ContentAlignment.TopLeft) -> Point(50, 100) + CalculateAlignedPosition(new Point(50, 100), new Size(10, 20), System.Drawing.ContentAlignment.MiddleCenter) -> Point(45, 90) + CalculateAlignedPosition(new Point(50, 100), new Size(10, 20), System.Drawing.ContentAlignment.BottomRight) -> Point(40, 80) + + + + Calculate a rectangle that has the given size which is positioned so that + its alignment point is at the reference location of the given rect. + + + + + + + + Create a rectangle of the given size which is positioned so that + its indicated corner is at the indicated corner of the reference rect. + + + + + + + + + Creates a rectangle so that its bottom left is at the centre of the reference: + corner=BottomLeft, referenceCorner=MiddleCenter + This is a powerful concept that takes some getting used to, but is + very neat once you understand it. + + + + + Return the point at the indicated corner of the given rectangle (it doesn't + have to be a corner, but a named location) + + The reference rectangle + Which point of the rectangle should be returned? + A point + CalculateReferenceLocation(new Rectangle(0, 0, 50, 100), System.Drawing.ContentAlignment.TopLeft) -> Point(0, 0) + CalculateReferenceLocation(new Rectangle(0, 0, 50, 100), System.Drawing.ContentAlignment.MiddleCenter) -> Point(25, 50) + CalculateReferenceLocation(new Rectangle(0, 0, 50, 100), System.Drawing.ContentAlignment.BottomRight) -> Point(50, 100) + + + + Given the item and the subitem, calculate its bounds. + + + + + + + + Apply any specified rotation to the Graphic content. + + The Graphics to be transformed + The rotation will be around the centre of this rect + + + + Reverse the rotation created by ApplyRotation() + + + + + + An overlay that will draw an image over the top of the ObjectListView + + + + + Gets or sets the image that will be drawn + + + + + Gets or sets if the image will be shrunk to fit with its horizontal bounds + + + + + Draw the image in its specified location + + The Graphics used for drawing + The bounds of the rendering + + + + Draw the image in its specified location + + The image to be drawn + The Graphics used for drawing + The bounds of the rendering + How transparent should the image be (0 is completely transparent, 255 is opaque) + + + + Draw the image in its specified location + + The image to be drawn + The Graphics used for drawing + The bounds of the rendering + How big should the image be? + How transparent should the image be (0 is completely transparent, 255 is opaque) + + + + Draw the image in its specified location, scaled so that it is not wider + than the given rectangle. Height is scaled proportional to the width. + + The image to be drawn + The Graphics used for drawing + The bounds of the rendering + How transparent should the image be (0 is completely transparent, 255 is opaque) + + + + Utility to draw a bitmap transparenly. + + + + + + + + + An adornment that will draw text + + + + + Gets or sets the background color of the text + Set this to Color.Empty to not draw a background + + + + + Gets the brush that will be used to paint the text + + + + + Gets or sets the color of the border around the billboard. + Set this to Color.Empty to remove the border + + + + + Gets the brush that will be used to paint the text + + + + + Gets or sets the width of the border around the text + + + + + How rounded should the corners of the border be? 0 means no rounding. + + If this value is too large, the edges of the border will appear odd. + + + + Gets or sets the font that will be used to draw the text + + + + + Gets the font that will be used to draw the text or a reasonable default + + + + + Does this text have a background? + + + + + Does this overlay have a border? + + + + + Gets or sets the maximum width of the text. Text longer than this will wrap. + 0 means no maximum. + + + + + Gets or sets the formatting that should be used on the text + + + + + Gets or sets the text that will be drawn + + + + + Gets the brush that will be used to paint the text + + + + + Gets or sets the color of the text + + + + + Gets or sets whether the text will wrap when it exceeds its bounds + + + + + Draw our text with our stored configuration in relation to the given + reference rectangle + + The Graphics used for drawing + The reference rectangle in relation to which the text will be drawn + + + + Draw the given text with our stored configuration + + The Graphics used for drawing + The reference rectangle in relation to which the text will be drawn + The text to draw + How opaque should be text be + + + + Draw the text with a border + + The Graphics used for drawing + The bounds within which the text should be drawn + The text to draw + How opaque should be text be + + + + Return the rectangle that will be the precise bounds of the displayed text + + + + + The bounds of the text + + + + Return a GraphicPath that is a round cornered rectangle + + The rectangle + The diameter of the corners + A round cornered rectagle path + If I could rely on people using C# 3.0+, this should be + an extension method of GraphicsPath. + + + + A decoration is an overlay that draws itself in relation to a given row or cell. + Decorations scroll when the listview scrolls. + + + + + Gets or sets the row that is to be decorated + + + + + Gets or sets the subitem that is to be decorated + + + + + An AbstractDecoration is a safe do-nothing implementation of the IDecoration interface + + + + + Gets or sets the row that is to be decorated + + + + + Gets or sets the subitem that is to be decorated + + + + + Gets the bounds of the decorations row + + + + + Get the bounds of the decorations cell + + + + + Draw the decoration + + + + + + + + This decoration draws a slight tint over a column of the + owning listview. If no column is explicitly set, the selected + column in the listview will be used. + The selected column is normally the sort column, but does not have to be. + + + + + Create a TintedColumnDecoration + + + + + Create a TintedColumnDecoration + + + + + + Gets or sets the column that will be tinted + + + + + Gets or sets the color that will be 'tinted' over the selected column + + + + + Draw a slight colouring over our tinted column + + + This overlay only works when: + - the list is in Details view + - there is at least one row + - there is a selected column (or a specified tint column) + + + + + + + + This decoration draws an optionally filled border around a rectangle. + Subclasses must override CalculateBounds(). + + + + + Create a BorderDecoration + + + + + Create a BorderDecoration + + The pen used to draw the border + + + + Create a BorderDecoration + + The pen used to draw the border + The brush used to fill the rectangle + + + + Gets or sets the pen that will be used to draw the border + + + + + Gets or sets the padding that will be added to the bounds of the item + before drawing the border and fill. + + + + + How rounded should the corners of the border be? 0 means no rounding. + + If this value is too large, the edges of the border will appear odd. + + + + Gets or sets the brush that will be used to fill the border + + This value is ignored when using gradient brush + + + + Gets or sets the color that will be used as the start of a gradient fill. + + This and FillGradientTo must be given value to show a gradient + + + + Gets or sets the color that will be used as the end of a gradient fill. + + This and FillGradientFrom must be given value to show a gradient + + + + Gets or sets the fill mode that will be used for the gradient. + + + + + Draw a filled border + + + + + + + + Subclasses should override this to say where the border should be drawn + + + + + + Do the actual work of drawing the filled border + + + + + + + Create a GraphicsPath that represents a round cornered rectangle. + + + If this is 0 or less, the rectangle will not be rounded. + + + + + Instances of this class draw a border around the decorated row + + + + + Gets or sets the index of the left most column to be used for the border + + + + + Gets or sets the index of the right most column to be used for the border + + + + + Calculate the boundaries of the border + + + + + + Instances of this class draw a border around the decorated subitem. + + + + + Calculate the boundaries of the border + + + + + + This decoration puts a border around the cell being edited and + optionally "lightboxes" the cell (makes the rest of the control dark). + + + + + Create a EditingCellBorderDecoration + + + + + Create a EditingCellBorderDecoration + + Should the decoration use a lighbox display style? + + + + Gets or set whether the decoration should make the rest of + the control dark when a cell is being edited + + If this is true, FillBrush is used to overpaint + the control. + + + + Draw the decoration + + + + + + + + This decoration causes everything *except* the row under the mouse to be overpainted + with a tint, making the row under the mouse stand out in comparison. + The darker and more opaque the fill color, the more obvious the + decorated row becomes. + + + + + Create a LightBoxDecoration + + + + + Draw a tint over everything in the ObjectListView except the + row under the mouse. + + + + + + + + Instances of this class put an Image over the row/cell that it is decorating + + + + + Create an image decoration + + + + + Create an image decoration + + + + + + Create an image decoration + + + + + + + Create an image decoration + + + + + + + Create an image decoration + + + + + + + + Gets or sets the item being decorated + + + + + Gets or sets the sub item being decorated + + + + + Draw this decoration + + The ObjectListView being decorated + The Graphics used for drawing + The bounds of the rendering + + + + Instances of this class draw some text over the row/cell that they are decorating + + + + + Create a TextDecoration + + + + + Create a TextDecoration + + + + + + Create a TextDecoration + + + + + + + Create a TextDecoration + + + + + + + Create a TextDecoration + + + + + + + + Gets or sets the item being decorated + + + + + Gets or sets the sub item being decorated + + + + + Draw this decoration + + The ObjectListView being decorated + The Graphics used for drawing + The bounds of the rendering + + + + The interface for an object which can draw itself over the top of + an ObjectListView. + + + + + Draw this overlay + + The ObjectListView that is being overlaid + The Graphics onto the given OLV + The content area of the OLV + + + + An interface for an overlay that supports variable levels of transparency + + + + + Gets or sets the transparency of the overlay. + 0 is completely transparent, 255 is completely opaque. + + + + + A null implementation of the IOverlay interface + + + + + Draw this overlay + + The ObjectListView that is being overlaid + The Graphics onto the given OLV + The content area of the OLV + + + + How transparent should this overlay be? + + + + + An overlay that will draw an image over the top of the ObjectListView + + + + + Create an ImageOverlay + + + + + Gets or sets the horizontal inset by which the position of the overlay will be adjusted + + + + + Gets or sets the vertical inset by which the position of the overlay will be adjusted + + + + + Draw this overlay + + The ObjectListView being decorated + The Graphics used for drawing + The bounds of the rendering + + + + An overlay that will draw text over the top of the ObjectListView + + + + + Create a TextOverlay + + + + + Gets or sets the horizontal inset by which the position of the overlay will be adjusted + + + + + Gets or sets the vertical inset by which the position of the overlay will be adjusted + + + + + Gets or sets whether the border will be drawn with rounded corners + + + + + Draw this overlay + + The ObjectListView being decorated + The Graphics used for drawing + The bounds of the rendering + + + + A Billboard overlay is a TextOverlay positioned at an absolute point + + + + + Create a BillboardOverlay + + + + + Gets or sets where should the top left of the billboard be placed + + + + + Draw this overlay + + The ObjectListView being decorated + The Graphics used for drawing + The bounds of the rendering + + + + Renderers are the mechanism used for owner drawing cells. As such, they can also handle + hit detection and positioning of cell editing rectangles. + + + + + Render the whole item within an ObjectListView. This is only used in non-Details views. + + The event + A Graphics for rendering + The bounds of the item + The model object to be drawn + Return true to indicate that the event was handled and no further processing is needed. + + + + Render one cell within an ObjectListView when it is in Details mode. + + The event + A Graphics for rendering + The bounds of the cell + The model object to be drawn + Return true to indicate that the event was handled and no further processing is needed. + + + + What is under the given point? + + + x co-ordinate + y co-ordinate + This method should only alter HitTestLocation and/or UserData. + + + + When the value in the given cell is to be edited, where should the edit rectangle be placed? + + + + + + + + + + + Renderers that implement this interface will have the filter property updated, + each time the filter on the ObjectListView is updated. + + + + + + + + + + An AbstractRenderer is a do-nothing implementation of the IRenderer interface. + + + + + Render the whole item within an ObjectListView. This is only used in non-Details views. + + The event + A Graphics for rendering + The bounds of the item + The model object to be drawn + Return true to indicate that the event was handled and no further processing is needed. + + + + Render one cell within an ObjectListView when it is in Details mode. + + The event + A Graphics for rendering + The bounds of the cell + The model object to be drawn + Return true to indicate that the event was handled and no further processing is needed. + + + + What is under the given point? + + + x co-ordinate + y co-ordinate + This method should only alter HitTestLocation and/or UserData. + + + + When the value in the given cell is to be edited, where should the edit rectangle be placed? + + + + + + + + + + + This class provides compatibility for v1 RendererDelegates + + + + + The renderer delegate that this renderer wraps + + + + + A BaseRenderer provides useful base level functionality for any custom renderer. + + + Subclasses will normally override the Render or OptionalRender method, and use the other + methods as helper functions. + + + + + Can the renderer wrap lines that do not fit completely within the cell? + + Wrapping text doesn't work with the GDI renderer. + + + + Gets or sets how many pixels will be left blank around this cell + + + + This setting only takes effect when the control is owner drawn. + + for more details. + + + + + Gets the horiztonal alignment of the column + + + + + Gets or sets how cells drawn by this renderer will be vertically aligned. + + + + If this is not set, the value from the column or control itself will be used. + + + + + + Gets the optional padding that this renderer should apply before drawing. + This property considers all possible sources of padding + + + + + Gets the vertical cell alignment that should govern the rendering. + This property considers all possible sources. + + + + + Gets or sets the image list from which keyed images will be fetched + + + + + When rendering multiple images, how many pixels should be between each image? + + + + + Should text be rendered using GDI routines? This makes the text look more + like a native List view control. + + + + + Get or set the aspect of the model object that this renderer should draw + + + + + What are the bounds of the cell that is being drawn? + + + + + Get or set the OLVColumn that this renderer will draw + + + + + Get/set the event that caused this renderer to be called + + + + + Get/set the event that caused this renderer to be called + + + + + Gets or sets the font to be used for text in this cell + + + + + Gets the image list from which keyed images will be fetched + + + + + Should this renderer fill in the background before drawing? + + + + + Cache whether or not our item is selected + + + + + Is this renderer being used on a printer context? + + + + + Get or set the listitem that this renderer will be drawing + + + + + Get/set the listview for which the drawing is to be done + + + + + Get the specialized OLVSubItem that this renderer is drawing + + This returns null for column 0. + + + + Get or set the model object that this renderer should draw + + + + + Get or set the list subitem that this renderer will be drawing + + + + + The brush that will be used to paint the text + + + + + Will this renderer use the custom images from the parent ObjectListView + to draw the checkbox images. + + + + If this is true, the renderer will use the images from the + StateImageList to represent checkboxes. 0 - unchecked, 1 - checked, 2 - indeterminate. + + If this is false (the default), then the renderer will use .NET's standard + CheckBoxRenderer. + + + + + Align the second rectangle with the first rectangle, + according to the alignment of the column + + The cell's bounds + The rectangle to be aligned within the bounds + An aligned rectangle + + + + Calculate the left edge of the rectangle that aligns the outer rectangle with the inner one + according to this renderer's horizontal alignment + + + + + + + + Calculate the top of the rectangle that aligns the outer rectangle with the inner rectangle + according to this renders vertical alignment + + + + + + + + Calculate the top of the rectangle that aligns the outer rectangle with a rectangle of the given height + according to this renderer's vertical alignment + + + + + + + + Calculate the space that our rendering will occupy and then align that space + with the given rectangle, according to the Column alignment + + + Pre-padded bounds of the cell + + + + + Calculate the size of the content of this cell. + + + Pre-padded bounds of the cell + The width and height of the content + + + + Calculate the bounds of a checkbox given the (pre-padded) cell bounds + + + Pre-padded cell bounds + + + + + How much space will the check box for this cell occupy? + + Only column 0 can have check boxes. Sub item checkboxes are + treated as images + + + + + + How much space will the check box for this row occupy? + If the list doesn't have checkboxes, or this isn't the primary column, + this returns an empty size. + + + + + + + How much horizontal space will the image of this cell occupy? + + + + + + + + How much vertical space will the image of this cell occupy? + + + + + + + + How much space will the image of this cell occupy? + + + + + + + + How much horizontal space will the text of this cell occupy? + + + + + + + + + How much space will the text of this cell occupy? + + + + + + + + + Return the Color that is the background color for this item's cell + + The background color of the subitem + + + + Return the color of the background color when the item is selected + + The background color of the subitem + + + + Return the color to be used for text in this cell + + The text color of the subitem + + + + Return the color of the foreground color when the item is selected + + The foreground color of the subitem + + + + Return the image that should be drawn against this subitem + + An Image or null if no image should be drawn. + + + + Return the actual image that should be drawn when keyed by the given image selector. + An image selector can be: + an int, giving the index into the image list + a string, giving the image key into the image list + an Image, being the image itself + + + The value that indicates the image to be used + An Image or null + + + + + + + + Return the string that should be drawn within this + + + + + + Return the Color that is the background color for this item's text + + The background color of the subitem's text + + + + Render the whole item in a non-details view. + + + + + + + + + + Prepare this renderer to draw in response to the given event + + + + + Use this if you want to chain a second renderer within a primary renderer. + + + + Render one cell + + + + + + + + + + Prepare this renderer to draw in response to the given event + + + + + Use this if you want to chain a second renderer within a primary renderer. + + + + Calculate which part of this cell was hit + + + + + + + + Calculate the edit rectangle + + + + + + + + + + + Draw our data into the given rectangle using the given graphics context. + + + Subclasses should override this method. + The graphics context that should be used for drawing + The bounds of the subitem cell + Returns whether the rendering has already taken place. + If this returns false, the default processing will take over. + + + + + Draw our data into the given rectangle using the given graphics context. + + + Subclasses should override this method if they never want + to fall back on the default processing + The graphics context that should be used for drawing + The bounds of the subitem cell + + + + Do the actual work of hit testing. Subclasses should override this rather than HitTest() + + + + + + + + + Handle a HitTest request after all state information has been initialized + + + + + + + + + + + Draw the standard "[checkbox] [image] [text]" cell after the state properties have been initialized. + + + + + + + Change the bounds of the given rectangle to take any cell padding into account + + + + + + + Perform normal hit testing relative to the given aligned content bounds + + + + + + + + + + This method calculates the bounds of the text within a standard layout + (i.e. optional checkbox, optional image, text) + + This method only works correctly if the state of the renderer + has been fully initialized (see BaseRenderer.GetEditRectangle) + + + + + + + + Apply any padding to the given bounds, and then align a rectangle of the given + size within that padded area. + + + + + + + + + Draw the given image aligned horizontally within the column. + + + Over tall images are scaled to fit. Over-wide images are + truncated. This is by design! + + Graphics context to use for drawing + Bounds of the cell + The image to be drawn + + + + Draw our subitems image and text + + Graphics context to use for drawing + Pre-padded bounds of the cell + + + + Fill in the background of this cell + + Graphics context to use for drawing + Bounds of the cell + + + + Draw the primary check box of this row (checkboxes in other sub items use a different method) + + Graphics context to use for drawing + The pre-aligned and padded target rectangle + + + + Calculate the CheckBoxState we need to correctly draw the given state + + + + + + + Should this checkbox be drawn as disabled? + + + + + Is the current item hot (i.e. under the mouse)? + + + + + Is the mouse over a checkbox in this cell? + + + + + Draw the given text and optional image in the "normal" fashion + + Graphics context to use for drawing + Bounds of the cell + The optional image to be drawn + + + + Draw our subitems image and text + + Graphics context to use for drawing + Bounds of the cell + + + + Draw the given collection of image selectors + + + + + + + + Draw the given text and optional image in the "normal" fashion + + Graphics context to use for drawing + Bounds of the cell + The string to be drawn + + + + Print the given text in the given rectangle using only GDI routines + + + + + + The native list control uses GDI routines to do its drawing, so using them + here makes the owner drawn mode looks more natural. + This method doesn't honour the CanWrap setting on the renderer. All + text is single line + + + + + Gets the cell's vertical alignment as a TextFormatFlag + + + + + + Gets the StringFormat needed when drawing text using GDI+ + + + + + Print the given text in the given rectangle using normal GDI+ .NET methods + + Printing to a printer dc has to be done using this method. + + + + This renderer highlights substrings that match a given text filter. + + + + + Create a HighlightTextRenderer + + + + + Create a HighlightTextRenderer + + + + + + Create a HighlightTextRenderer + + + + + + Gets or set how rounded will be the corners of the text match frame + + + + + Gets or set the brush will be used to paint behind the matched substrings. + Set this to null to not fill the frame. + + + + + Gets or sets the filter that is filtering the ObjectListView and for + which this renderer should highlight text + + + + + When a filter changes, keep track of the text matching filters + + + + + Gets or set the pen will be used to frame the matched substrings. + Set this to null to not draw a frame. + + + + + Gets or sets whether the frame around a text match will have rounded corners + + + + + Gets or set the text that will be highlighted + + + + + Gets or sets the manner in which substring will be compared. + + + Use this to control if substring matches are case sensitive or insensitive. + + + + Handle a HitTest request after all state information has been initialized + + + + + + + + + + + Draw text using GDI + + + + + + + + Draw the highlighted text using GDI + + + + + + + + Draw an indication around the given frame that shows a text match + + + + + + + + + + Draw the text using GDI+ + + + + + + + + Draw the highlighted text using GDI+ + + + + + + + + Gets whether the renderer should actually draw highlighting + + + + + Return a GraphicPath that is a round cornered rectangle + + A round cornered rectangle path + If I could rely on people using C# 3.0+, this should be + an extension method of GraphicsPath. + + + + + + + + + Return a GraphicPath that is a round cornered rectangle + + The rectangle + The diameter of the corners + A round cornered rectangle path + If I could rely on people using C# 3.0+, this should be + an extension method of GraphicsPath. + + + + This class maps a data value to an image that should be drawn for that value. + + It is useful for drawing data that is represented as an enum or boolean. + + + + Return a renderer that draw boolean values using the given images + + Draw this when our data value is true + Draw this when our data value is false + A Renderer + + + + Return a renderer that draw tristate boolean values using the given images + + Draw this when our data value is true + Draw this when our data value is false + Draw this when our data value is null + A Renderer + + + + Make a new empty renderer + + + + + Make a new renderer that will show the given image when the given key is the aspect value + + The data value to be matched + The image to be shown when the key is matched + + + + Make a new renderer that will show the given images when it receives the given keys + + + + + + + + + Build a renderer from the given array of keys and their matching images + + An array of key/image pairs + + + + Register the image that should be drawn when our Aspect has the data value. + + Value that the Aspect must match + An ImageSelector -- an int, string or image + + + + Render our value + + + + + + + Draw a collection of images + + + + + + + + Draw one image + + + + + + + + This renderer draws just a checkbox to match the check state of our model object. + + + + + Draw our cell + + + + + + + Handle the GetEditRectangle request + + + + + + + + + + + Handle the HitTest request + + + + + + + + + Render an image that comes from our data source. + + The image can be sourced from: + + a byte-array (normally when the image to be shown is + stored as a value in a database) + an int, which is treated as an index into the image list + a string, which is treated first as a file name, and failing that as an index into the image list + an ICollection of ints or strings, which will be drawn as consecutive images + + If an image is an animated GIF, it's state is stored in the SubItem object. + By default, the image renderer does not render animations (it begins life with animations paused). + To enable animations, you must call Unpause(). + In the current implementation (2009-09), each column showing animated gifs must have a + different instance of ImageRenderer assigned to it. You cannot share the same instance of + an image renderer between two animated gif columns. If you do, only the last column will be + animated. + + + + + Make an empty image renderer + + + + + Make an empty image renderer that begins life ready for animations + + + + + Finalizer + + + + + Should the animations in this renderer be paused? + + + + + Gets a timer that can be used to trigger redraws on animations + + + + + Pause any animations + + + + + Unpause any animations + + + + + Draw our image + + + + + + + Translate our Aspect into an image. + + The strategy is: + If its a byte array, we treat it as an in-memory image + If it's an int, we use that as an index into our image list + If it's a string, we try to load a file by that name. If we can't, + we use the string as an index into our image list. + + An image + + + + This is the method that is invoked by the timer. It basically switches control to the listview thread. + + not used + + + + This is the OnTimer callback, but invoked in the same thread as the creator of the ListView. + This method can use all of ListViews methods without creating a CrossThread exception. + + + + + Instances of this class kept track of the animation state of a single image. + + + + + Is the given image an animation + + The image to be tested + Is the image an animation? + + + + Create an AnimationState in a quiet state + + + + + Create an animation state for the given image, which may or may not + be an animation + + The image to be rendered + + + + Does this state represent a valid animation + + + + + Advance our images current frame and calculate when it will expire + + + + + Render our Aspect as a progress bar + + + + + Make a BarRenderer + + + + + Make a BarRenderer for the given range of data values + + + + + Make a BarRenderer using a custom bar scheme + + + + + Make a BarRenderer using a custom bar scheme + + + + + Make a BarRenderer that uses a horizontal gradient + + + + + Make a BarRenderer that uses a horizontal gradient + + + + + 此栏是否应以系统样式绘制? + + + + + 将从我们的单元格边框开始绘制多少像素的条形图 + + + + + 在绘制进度条之前,将使用什么颜色填充控件内部? + + + + + 进度条边框颜色 + + + + + 进度条的边框像素宽 + + + + + 进度条的“填充”部分应该是什么颜色? + + 仅当GradientStartColor为Color.Empty时才使用此选项 + + + + 使用渐变以此颜色开始填充进度条 + + + + + 使用渐变填充以此颜色结尾的进度条 + + + + + 使用渐变以此颜色开始填充渐满进度条 + + + + + 使用渐变填充以此颜色结尾的渐满进度条 + + + + + 无论列变得多宽,进度条都不会比这个宽。 + + + + + 无论单元格有多高,进度条都不会比这个高 + + + + + 预期的最小数据值。小于此值的值将显示一个空条。 + + + + + 接近满时的值,高于该值时,显示不同颜色,小于等于MinimumValue或大于MaximumValue值,则表示未设置该值 + + + + + 范围的最大值。大于此值的值将给出一个完整的条形。 + + + + + The Pen that will draw the frame surrounding this bar + + + + + The brush that will be used to fill the bar + + + + + The brush that will be used to fill the bar + + + + + The brush that will be used to fill the background of the bar + + + + + Draw this progress bar using a gradient + + + + + + + Draw our aspect + + + + + + + Handle the GetEditRectangle request + + + + + + + + + + + An ImagesRenderer draws zero or more images depending on the data returned by its Aspect. + + This renderer's Aspect must return a ICollection of ints, strings or Images, + each of which will be drawn horizontally one after the other. + As of v2.1, this functionality has been absorbed into ImageRenderer and this is now an + empty shell, solely for backwards compatibility. + + + + + A MultiImageRenderer draws the same image a number of times based on our data value + + The stars in the Rating column of iTunes is a good example of this type of renderer. + + + + Make a quiet renderer + + + + + Make an image renderer that will draw the indicated image, at most maxImages times. + + + + + + + + + The index of the image that should be drawn + + + + + The name of the image that should be drawn + + + + + The image selector that will give the image to be drawn + + Like all image selectors, this can be an int, string or Image + + + + What is the maximum number of images that this renderer should draw? + + + + + Values less than or equal to this will have 0 images drawn + + + + + Values greater than or equal to this will have MaxNumberImages images drawn + + + + + Draw our data value + + + + + + + A class to render a value that contains a bitwise-OR'ed collection of values. + + + + + Register the given image to the given value + + When this flag is present... + ...draw this image + + + + Draw the flags + + + + + + + Do the actual work of hit testing. Subclasses should override this rather than HitTest() + + + + + + + + + This renderer draws an image, a single line title, and then multi-line description + under the title. + + + This class works best with FullRowSelect = true. + It's not designed to work with cell editing -- it will work but will look odd. + + It's not RightToLeft friendly. + + + + + + Create a DescribedTaskRenderer + + + + + Should text be rendered using GDI routines? This makes the text look more + like a native List view control. + + + + + Gets or set the font that will be used to draw the title of the task + + If this is null, the ListView's font will be used + + + + Return a font that has been set for the title or a reasonable default + + + + + Gets or set the color of the title of the task + + This color is used when the task is not selected or when the listview + has a translucent selection mechanism. + + + + Return the color of the title of the task or a reasonable default + + + + + Gets or set the font that will be used to draw the description of the task + + If this is null, the ListView's font will be used + + + + Return a font that has been set for the title or a reasonable default + + + + + Gets or set the color of the description of the task + + This color is used when the task is not selected or when the listview + has a translucent selection mechanism. + + + + Return the color of the description of the task or a reasonable default + + + + + Gets or sets the number of pixels that will be left between the image and the text + + + + + 顶部留白像素 + + + + + Gets or sets the number of pixels that will be left between the title and the description + + + + + Gets or sets the name of the aspect of the model object that contains the task description + + + + + Gets or sets the filter that is filtering the ObjectListView and for + which this renderer should highlight text + + + + + When a filter changes, keep track of the text matching filters + + + + + Fetch the description from the model class + + + + + + + + + + + + + + + Draw our item + + + + + + + Draw the task + + + + + + + + + + Handle the HitTest request + + + + + + + + + This renderer draws a functioning button in its cell + + + + + Gets or sets how each button will be sized + + + + + Gets or sets the size of the button when the SizingMode is FixedBounds + + If this is not set, the bounds of the cell will be used + + + + Gets or sets the extra space that surrounds the cell when the SizingMode is TextBounds + + + + + Gets or sets the maximum width that a button can occupy. + -1 means there is no maximum width. + + This is only considered when the SizingMode is TextBounds + + + + Gets or sets the minimum width that a button can occupy. + -1 means there is no minimum width. + + This is only considered when the SizingMode is TextBounds + + + + 获取或设置此列按钮的字体颜色(如果有按钮的话) + + + + + 获取或设置此列按钮的背景颜色(如果有按钮的话) + + + + + 获取或设置此列按钮的边框颜色(如果有按钮的话) + + + + + 获取或设置此列按钮的内边框颜色(如果有按钮的话) + + + + + 获取或设置此列按钮是否画边框(如果有按钮的话) + + + + + Calculate the size of the contents + + + + + + + + Draw the button + + + + + + + What part of the control is under the given point? + + + + + + + + + + What is the state of the button? + + + + + + Is the mouse over the button? + + + + + The common interface supported by all style objects + + + + + Gets or set the font that will be used by this style + + + + + Gets or set the font style + + + + + Gets or sets the ForeColor + + + + + Gets or sets the BackColor + + + + + Basic implementation of IItemStyle + + + + + Gets or sets the font that will be applied by this style + + + + + Gets or sets the style of font that will be applied by this style + + + + + Gets or sets the color of the text that will be applied by this style + + + + + Gets or sets the background color that will be applied by this style + + + + + Instances of this class specify how should "hot items" (non-selected + rows under the cursor) be renderered. + + + + + Gets or sets the overlay that should be drawn as part of the hot item + + + + + Gets or sets the decoration that should be drawn as part of the hot item + + A decoration is different from an overlay in that an decoration + scrolls with the listview contents, whilst an overlay does not. + + + + This class defines how a cell should be formatted + + + + + Gets or sets the font that will be applied by this style + + + + + Gets or sets the style of font that will be applied by this style + + + + + Gets or sets the color of the text that will be applied by this style + + + + + Gets or sets the background color that will be applied by this style + + + + + Instances of this class describe how hyperlinks will appear + + + + + Create a HyperlinkStyle + + + + + What sort of formatting should be applied to hyperlinks in their normal state? + + + + + What sort of formatting should be applied to hyperlinks when the mouse is over them? + + + + + What sort of formatting should be applied to hyperlinks after they have been clicked? + + + + + Gets or sets the cursor that should be shown when the mouse is over a hyperlink. + + + + + Instances of this class control one the styling of one particular state + (normal, hot, pressed) of a header control + + + + + Gets or sets the font that will be applied by this style + + + + + Gets or sets the color of the text that will be applied by this style + + + + + Gets or sets the background color that will be applied by this style + + + + + Gets or sets the color in which a frame will be drawn around the header for this column + + + + + Gets or sets the width of the frame that will be drawn around the header for this column + + + + + This class defines how a header should be formatted in its various states. + + + + + Create a new HeaderFormatStyle + + + + + What sort of formatting should be applied to a column header when the mouse is over it? + + + + + What sort of formatting should be applied to a column header in its normal state? + + + + + What sort of formatting should be applied to a column header when pressed? + + + + + Set the font for all three states + + + + + + Set the fore color for all three states + + + + + + Set the back color for all three states + + + + + + 正常为选中按钮 + + + + + 获得焦点的按钮 + + + + + 鼠标经过样式 + + + + + 获得焦点并鼠标经过 + + + + + 自定义GDI工具,绘制按钮 + + + + + 绘制圆形按钮(用法同矩形按钮) + + + + + + + + + + 绘制圆角按钮 + + 要绘制的文字 + Graphics 对象 + 要填充的矩形 + + + + + 根据普通矩形得到圆角矩形的路径 + + 原始矩形 + 半径 + 图形路径 + + + + A GlassPanelForm sits transparently over an ObjectListView to show overlays. + + + + + Get the low-level windows flag that will be given to CreateWindow. + + + + + Attach this form to the given ObjectListView + + + + + Made the overlay panel invisible + + + + + Show the overlay panel in its correctly location + + + If the panel is always shown, this method does nothing. + If the panel is being resized, this method also does nothing. + + + + + Detach this glass panel from its previous ObjectListView + + + You should unbind the overlay panel before making any changes to the + widget hierarchy. + + + + + Handle when the form that owns the ObjectListView begins to be resized + + + + + + + Handle when the form that owns the ObjectListView finished to be resized + + + + + + + The owning form has moved. Move the overlay panel too. + + + + + + + The owning form is resizing. Hide our overlay panel until the resizing stops + + + + + + + Handle when the bound OLV changes its location. The overlay panel must + be moved too, IFF it is currently visible. + + + + + + + Handle when the bound OLV changes size. The overlay panel must + resize too, IFF it is currently visible. + + + + + + + Handle when the bound OLV is part of a TabControl and that + TabControl changes tabs. The overlay panel is hidden. The + first time the bound OLV is redrawn, the overlay panel will + be shown again. + + + + + + + Somewhere the parent of the bound OLV has changed. Update + our events. + + + + + + + Handle when the bound OLV changes its visibility. + The overlay panel should match the OLV's visibility. + + + + + + + Class used to capture window messages for the header of the list view + control. + + + + + Create a header control for the given ObjectListView. + + + + + + Return the index of the column under the current cursor position, + or -1 if the cursor is not over a column + + Index of the column under the cursor, or -1 + + + + 返回此控件的Windows句柄 + + + 当ObjectListView被初始化为UserControl的一部分时,GetHeaderControl()方法返回0,直到UserControl完全初始化。 + 因此,构造函数中的AssignHandle()调用不起作用。因此,我们覆盖了Handle属性,以便值始终为当前值。 + + + + + Gets or sets a style that should be applied to the font of the + column's header text when the mouse is over that column + + THIS IS EXPERIMENTAL. USE AT OWN RISK. August 2009 + + + + 如果光标位于其复选框上,则获取光标下列的索引 + + + + + Gets the client rectangle for the header + + + + + 如果给定坐标点在给定列的复选框上方,则返回TRUE。 + + + + + + + + 获取光标是否位于“锁定”的分隔线上,即用户无法拖动的分隔线。 + + + + + 获取或设置此标头所属的列表视图 + + + + + 获取标题的最大高度。-1表示没有最大值。 + + + + + 获取标题的最小高度。-1表示没有最低要求。 + + + + + Get or set the ToolTip that shows tips for the header + + + + + 获取或设置当列标题中的文本太长而无法放入列中时,是否应对其进行自动换行 + + + + + Calculate how height the header needs to be + + Height in pixels + + + + Get the bounds of the checkbox against the given column + + + + + + + Should the given column be drawn with a checkbox against it? + + + + + + + Should the given column show a sort indicator? + + + + + + + Should the given column be drawn with a filter indicator against it? + + + + + + + Should the given column show a non-themed sort indicator? + + + + + + + Return the bounds of the item with the given index + + + + + + + Return the bounds within which the given column will be drawn + + + + + + + Force the header to redraw by invalidating it + + + + + Force the header to redraw a single column by invalidating it + + + + + Create a native tool tip control for this listview + + + + + Override the basic message pump + + + + + + Handle the LButtonDown windows message + + + + + + + Handle the LButtonUp windows message + + + + + + + Handle the SetCursor windows message + + + + + + + Handle the MouseMove windows message + + + + + + + Handle the MouseLeave windows message + + + + + + + Handle the Notify windows message + + + + + + + Handle the CustomDraw windows message + + + + + + + The message divides a ListView's space between the header and the rows of the listview. + The WINDOWPOS structure controls the headers bounds, the RECT controls the listview bounds. + + + + + + + Handle when the underlying header control is destroyed + + + + + + + Does this header need to be custom drawn? + + Word wrapping and colored text require custom drawning. Funnily enough, we + can change the font natively. + + + + Draw one cell of the header + + + + + + + + Draw a background for the header, without using Themes. + + + + + + + + + + + Draw a more-or-less pure themed header background. + + + + + + + + + + Draw a sort indicator using themes + + + + + + + Draw a sort indicator without using themes + + + + + + + + Draw an indication that this column has a filter applied to it + + + + + + + + Draw the header's image and text + + + + + + + + + Return the header format that should be used for the given column + + + + + + + What style should be applied to the header? + + + + + + + + + What font should be used to draw the header text? + + + + + + + + + What flags will be used when drawing text + + + + + Perform a HitTest for the header control + + + + Null if the given point isn't over the header + + + + Instances of this class put a CheckedListBox into a tool strip menu item. + + + + + Create a ToolStripCheckedListBox + + + + + Gets the control embedded in the menu + + + + + Gets the items shown in the checkedlistbox + + + + + Gets or sets whether an item should be checked when it is clicked + + + + + Gets a collection of the checked items + + + + + Add a possibly checked item to the control + + + + + + + Add an item with the given state to the control + + + + + + + Gets the checkedness of the i'th item + + + + + + + Set the checkedness of the i'th item + + + + + + + Check all the items in the control + + + + + Unchecked all the items in the control + + + + + Listen for events on the underlying control + + + + + + Stop listening for events on the underlying control + + + + + + Tell the world that an item was checked + + + + + Trigger the ItemCheck event + + + + + + + A limited wrapper around a Windows tooltip window. + + + + + These are the standard icons that a tooltip can display. + + + + + No icon + + + + + Info + + + + + Warning + + + + + Error + + + + + Large info (Vista and later only) + + + + + Large warning (Vista and later only) + + + + + Large error (Vista and later only) + + + + + + + + + + + + + + + + + + + + + + + + + Get or set if the style of the tooltip control + + + + + Get or set if the tooltip should be shown as a ballon + + + + + Get or set if the tooltip should be shown as a ballon + + + + + Get or set the background color of the tooltip + + + + + Get or set the color of the text and border on the tooltip. + + + + + Get or set the title that will be shown on the tooltip. + + + + + Get or set the icon that will be shown on the tooltip. + + + + + Gets or sets the font that will be used to draw this control. + is still. + + Setting this to null reverts to the default font. + + + + Gets or sets how many milliseconds the tooltip will remain visible while the mouse + is still. + + + + + Gets or sets how many milliseconds the mouse must be still before the tooltip is shown. + + + + + Gets or sets how many milliseconds the mouse must be still before the tooltip is shown again. + + + + + Create the underlying control. + + The parent of the tooltip + This does nothing if the control has already been created + + + + Take a copy of the current settings and restore them when the + tooltip is poppped. + + + This call cannot be nested. Subsequent calls to this method will be ignored + until PopSettings() is called. + + + + + Restore the settings of the tooltip as they were when PushSettings() + was last called. + + + + + Add the given window to those for whom this tooltip will show tips + + The window + + + + Hide any currently visible tooltip + + + + + + Remove the given window from those managed by this tooltip + + + + + + Set the maximum width of a tooltip string. + + + + + Set the maximum width of a tooltip string. + + Setting this ensures that line breaks in the tooltip are honoured. + + + + Make a TOOLINFO structure for the given window + + + A filled in TOOLINFO + + + + Handle a WmNotify message + + The msg + True if the message has been handled + + + + Handle a get display info message + + The msg + True if the message has been handled + + + + Handle a TTN_LINKCLICK message + + The msg + True if the message has been handled + This cannot call base.WndProc() since the msg may have come from another control. + + + + Handle a TTN_POP message + + The msg + True if the message has been handled + This cannot call base.WndProc() since the msg may have come from another control. + + + + Handle a TTN_SHOW message + + The msg + True if the message has been handled + This cannot call base.WndProc() since the msg may have come from another control. + + + + Handle a reflected notify message + + The msg + True if the message has been handled + + + + Mess with the basic message pump of the tooltip + + + + + + Tell the world that a tooltip is about to show + + + + + Tell the world that a tooltip is about to disappear + + + + + + + + + + + + + + + + + This form is an example of how an application could allows the user to select which columns + an ObjectListView will display, as well as select which order the columns are displayed in. + + + In Tile view, ColumnHeader.DisplayIndex does nothing. To reorder the columns you have + to change the order of objects in the Columns property. + Remember that the first column is special! + It has to remain the first column. + + + + + Make a new ColumnSelectionForm + + + + + Open this form so it will edit the columns that are available in the listview's current view + + The ObjectListView whose columns are to be altered + + + + Open this form so it will edit the columns that are available in the given listview + when the listview is showing the given type of view. + + The ObjectListView whose columns are to be altered + The view that is to be altered. Must be View.Details or View.Tile + + + + Initialize the form to show the columns of the given view + + + + + + + The user has pressed OK. Do what's requied. + + + + + + + Enable the controls on the dialog to match the current state + + + + + A Comparer that will sort a list of columns so that visible ones come before hidden ones, + and that are ordered by their display order. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + An object that implements the IGenerator interface provides the ability + to dynamically create columns + for an ObjectListView based on the characteristics of a given collection + of model objects. + + + + + Generate columns into the given ObjectListView that come from the given + model object type. + + The ObjectListView to modify + The model type whose attributes will be considered. + Will columns be generated for properties that are not marked with [OLVColumn]. + + + + Generate a list of OLVColumns based on the attributes of the given type + If allProperties to true, all public properties will have a matching column generated. + If allProperties is false, only properties that have a OLVColumn attribute will have a column generated. + + + Will columns be generated for properties that are not marked with [OLVColumn]. + A collection of OLVColumns matching the attributes of Type that have OLVColumnAttributes. + + + + The Generator class provides methods to dynamically create columns + for an ObjectListView based on the characteristics of a given collection + of model objects. + + + For a given type, a Generator can create columns to match the public properties + of that type. The generator can consider all public properties or only those public properties marked with + [OLVColumn] attribute. + + + + + Gets or sets the actual generator used by the static convinence methods. + + If you subclass the standard generator or implement IGenerator yourself, + you should install an instance of your subclass/implementation here. + + + + Replace all columns of the given ObjectListView with columns generated + from the first member of the given enumerable. If the enumerable is + empty or null, the ObjectListView will be cleared. + + The ObjectListView to modify + The collection whose first element will be used to generate columns. + + + + Replace all columns of the given ObjectListView with columns generated + from the first member of the given enumerable. If the enumerable is + empty or null, the ObjectListView will be cleared. + + The ObjectListView to modify + The collection whose first element will be used to generate columns. + Will columns be generated for properties that are not marked with [OLVColumn]. + + + + Generate columns into the given ObjectListView that come from the public properties of the given + model object type. + + The ObjectListView to modify + The model type whose attributes will be considered. + + + + Generate columns into the given ObjectListView that come from the public properties of the given + model object type. + + The ObjectListView to modify + The model type whose attributes will be considered. + Will columns be generated for properties that are not marked with [OLVColumn]. + + + + Generate a list of OLVColumns based on the public properties of the given type + that have a OLVColumn attribute. + + + A collection of OLVColumns matching the attributes of Type that have OLVColumnAttributes. + + + + Generate columns into the given ObjectListView that come from the given + model object type. + + The ObjectListView to modify + The model type whose attributes will be considered. + Will columns be generated for properties that are not marked with [OLVColumn]. + + + + Generate a list of OLVColumns based on the attributes of the given type + If allProperties to true, all public properties will have a matching column generated. + If allProperties is false, only properties that have a OLVColumn attribute will have a column generated. + + + Will columns be generated for properties that are not marked with [OLVColumn]. + A collection of OLVColumns matching the attributes of Type that have OLVColumnAttributes. + + + + Replace all the columns in the given listview with the given list of columns. + + + + + + + Post process columns after creating them and adding them to the AllColumns collection. + + + + + + Create a column from the given PropertyInfo and OLVColumn attribute + + + + + + + + Make a column from the given PropertyInfo + + + + + + + Make a column from the given PropertyDescriptor + + + + + + + Create a column with all the given information + + + + + + + + + + + Create a column. + + + + + + + + + Convert a property name to a displayable title. + + + + + + + Configure the given column to show a checkbox if appropriate + + + + + + + If this given type has an property marked with [OLVChildren], make delegates that will + traverse that property as the children of an instance of the model + + + + + + + Generate CanExpand and ChildrenGetter delegates from the given property. + + + + + + + An OLVExporter converts a collection of rows from an ObjectListView + into a variety of textual formats. + + + + + What format will be used for exporting + + + + + Tab separated values, according to http://www.iana.org/assignments/media-types/text/tab-separated-values + + + + + Alias for TabSeparated + + + + + Comma separated values, according to http://www.ietf.org/rfc/rfc4180.txt + + + + + HTML table, according to me + + + + + Create an empty exporter + + + + + Create an exporter that will export all the rows of the given ObjectListView + + + + + + Create an exporter that will export all the given rows from the given ObjectListView + + + + + + + Gets or sets whether hidden columns will also be included in the textual + representation. If this is false (the default), only visible columns will + be included. + + + + + Gets or sets whether column headers will also be included in the text + and HTML representation. Default is true. + + + + + Gets the ObjectListView that is being used as the source of the data + to be exported + + + + + Gets the model objects that are to be placed in the data object + + + + + Export the nominated rows from the nominated ObjectListView. + Returns the result in the expected format. + + + + This will perform only one conversion, even if called multiple times with different formats. + + + + Convert + + + + + Encode a string such that it can be used as a value in a CSV file. + This basically means replacing any quote mark with two quote marks, + and enclosing the whole string in quotes. + + + + + + + HTML-encodes a string and returns the encoded string. + + The text string to encode. + The HTML-encoded text. + Taken from http://www.west-wind.com/weblog/posts/2009/Feb/05/Html-and-Uri-String-Encoding-without-SystemWeb + + + + A TypedObjectListView is a type-safe wrapper around an ObjectListView. + + + VCS does not support generics on controls. It can be faked to some degree, but it + cannot be completely overcome. In our case in particular, there is no way to create + the custom OLVColumn's that we need to truly be generic. So this wrapper is an + experiment in providing some type-safe access in a way that is useful and available today. + A TypedObjectListView is not more efficient than a normal ObjectListView. + Underneath, the same name of casts are performed. But it is easier to use since you + do not have to write the casts yourself. + + + The class of model object that the list will manage + + To use a TypedObjectListView, you write code like this: + + TypedObjectListView<Person> tlist = new TypedObjectListView<Person>(this.listView1); + tlist.CheckStateGetter = delegate(Person x) { return x.IsActive; }; + tlist.GetColumn(0).AspectGetter = delegate(Person x) { return x.Name; }; + ... + + To iterate over the selected objects, you can write something elegant like this: + + foreach (Person x in tlist.SelectedObjects) { + x.GrantSalaryIncrease(); + } + + + + + + Create a typed wrapper around the given list. + + The listview to be wrapped + + + + Return the model object that is checked, if only one row is checked. + If zero rows are checked, or more than one row, null is returned. + + + + + Return the list of all the checked model objects + + + + + The ObjectListView that is being wrapped + + + + + Get or set the list of all model objects + + + + + Return the model object that is selected, if only one row is selected. + If zero rows are selected, or more than one row, null is returned. + + + + + The list of model objects that are selected. + + + + + Return a typed wrapper around the column at the given index + + The index of the column + A typed column or null + + + + Return a typed wrapper around the column with the given name + + The name of the column + A typed column or null + + + + Return the model object at the given index + + The index of the model object + The model object or null + + + + CheckStateGetter + + + + + + + Gets or sets the check state getter + + + + + BooleanCheckStateGetter + + + + + + + Gets or sets the boolean check state getter + + + + + CheckStatePutter + + + + + + + + Gets or sets the check state putter delegate + + + + + BooleanCheckStatePutter + + + + + + + + Gets or sets the boolean check state putter + + + + + ToolTipGetter + + + + + + + + Gets or sets the cell tooltip getter + + + + + Gets or sets the header tool tip getter + + + + + This method will generate AspectGetters for any column that has an AspectName. + + + + + A type-safe wrapper around an OLVColumn + + + + + + Creates a TypedColumn + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Generate an aspect getter that does the same thing as the AspectName, + except without using reflection. + + + + If you have an AspectName of "Owner.Address.Postcode", this will generate + the equivilent of: this.AspectGetter = delegate (object x) { + return x.Owner.Address.Postcode; + } + + + + If AspectName is empty, this method will do nothing, otherwise + this will replace any existing AspectGetter. + + + + + + Generates an aspect getter method dynamically. The method will execute + the given dotted chain of selectors against a model object given at runtime. + + The type of model object to be passed to the generated method + A dotted chain of selectors. Each selector can be the name of a + field, property or parameter-less method. + A typed delegate + + + + This method generates the actual IL for the method. + + + + + + + + A virtual object list view operates in virtual mode, that is, it only gets model objects for + a row when it is needed. This gives it the ability to handle very large numbers of rows with + minimal resources. + + A listview is not a great user interface for a large number of items. But if you've + ever wanted to have a list with 10 million items, go ahead, knock yourself out. + Virtual lists can never iterate their contents. That would defeat the whole purpose. + Animated GIFs should not be used in virtual lists. Animated GIFs require some state + information to be stored for each animation, but virtual lists specifically do not keep any state information. + In any case, you really do not want to keep state information for 10 million animations! + + Although it isn't documented, .NET virtual lists cannot have checkboxes. This class codes around this limitation, + but you must use the functions provided by ObjectListView: CheckedObjects, CheckObject(), UncheckObject() and their friends. + If you use the normal check box properties (CheckedItems or CheckedIndicies), they will throw an exception, since the + list is in virtual mode, and .NET "knows" it can't handle checkboxes in virtual mode. + + Due to the limits of the underlying Windows control, virtual lists do not trigger ItemCheck/ItemChecked events. + Use a CheckStatePutter instead. + To enable grouping, you must provide an implmentation of IVirtualGroups interface, via the GroupingStrategy property. + Similarly, to enable filtering on the list, your VirtualListDataSource must also implement the IFilterableDataSource interface. + + + + + Create a VirtualObjectListView + + + + + Gets whether or not this listview is capabale of showing groups + + + + + Get or set the collection of model objects that are checked. + When setting this property, any row whose model object isn't + in the given collection will be unchecked. Setting to null is + equivilent to unchecking all. + + + + This property returns a simple collection. Changes made to the returned + collection do NOT affect the list. This is different to the behaviour of + CheckedIndicies collection. + + + When getting CheckedObjects, the performance of this method is O(n) where n is the number of checked objects. + When setting CheckedObjects, the performance of this method is O(n) where n is the number of checked objects plus + the number of objects to be checked. + + + If the ListView is not currently showing CheckBoxes, this property does nothing. It does + not remember any check box settings made. + + + This class optimizes the management of CheckStates so that it will work efficiently even on + large lists of item. However, those optimizations are impossible if you install a CheckStateGetter. + With a CheckStateGetter installed, the performance of this method is O(n) where n is the size + of the list. This could be painfully slow. + + + + + Gets or sets whether or not an object will be included in the CheckedObjects + collection, even if it is not present in the control at the moment + + + This property is an implementation detail and should not be altered. + + + + + Gets the collection of objects that survive any filtering that may be in place. + + + + + Gets or sets the strategy that will be used to create groups + + + This must be provided for a virtual list to show groups. + + + + + Gets whether or not the current list is filtering its contents + + + This is only possible if our underlying data source supports filtering. + + + + + Get/set the collection of objects that this list will show + + + + The contents of the control will be updated immediately after setting this property. + + Setting this property preserves selection, if possible. Use SetObjects() if + you do not want to preserve the selection. Preserving selection is the slowest part of this + code -- performance is O(n) where n is the number of selected rows. + This method is not thread safe. + The property DOES work on virtual lists, but if you try to iterate through a list + of 10 million objects, it may take some time :) + + + + + This delegate is used to fetch a rowObject, given it's index within the list + + Only use this property if you are not using a VirtualListDataSource. + + + + Should this list show its items in groups? + + + + + Get/set the data source that is behind this virtual list + + Setting this will cause the list to redraw. + + + + Gets or sets the number of rows in this virtual list. + + + There is an annoying feature/bug in the .NET ListView class. + When you change the VirtualListSize property, it always scrolls so + that the focused item is the top item. This is annoying since it makes + the virtual list seem to flicker as the control scrolls to show the focused + item and then scrolls back to where ObjectListView wants it to be. + + + + + Return the number of items in the list + + the number of items in the list + + + + Return the model object at the given index + + Index of the model object to be returned + A model object + + + + Find the given model object within the listview and return its index + + The model object to be found + The index of the object. -1 means the object was not present + + + + Return the OLVListItem that displays the given model object + + The modelObject whose item is to be found + The OLVListItem that displays the model, or null + This method has O(n) performance. + + + + Add the given collection of model objects to this control. + + A collection of model objects + + The added objects will appear in their correct sort position, if sorting + is active. Otherwise, they will appear at the end of the list. + No check is performed to see if any of the objects are already in the ListView. + Null objects are silently ignored. + + + + + Remove all items from this list + + This method can safely be called from background threads. + + + + Scroll the listview so that the given group is at the top. + + The index of the group to be revealed + + If the group is already visible, the list will still be scrolled to move + the group to the top, if that is possible. + + This only works when the list is showing groups (obviously). + + + + + Inserts the given collection of model objects to this control at hte given location + + + A collection of model objects + + The added objects will appear in their correct sort position, if sorting + is active. Otherwise, they will appear at the given position of the list. + No check is performed to see if any of the objects are already in the ListView. + Null objects are silently ignored. + + + + + Update the rows that are showing the given objects + + This method does not resort the items. + + + + Update the rows that are selected + + This method does not resort or regroup the view. + + + + Remove all of the given objects from the control + + Collection of objects to be removed + + Nulls and model objects that are not in the ListView are silently ignored. + Due to problems in the underlying ListView, if you remove all the objects from + the control using this method and the list scroll vertically when you do so, + then when you subsequenially add more objects to the control, + the vertical scroll bar will become confused and the control will draw one or more + blank lines at the top of the list. + + + + + Select the row that is displaying the given model object. All other rows are deselected. + + Model object to select + Should the object be focused as well? + + + + Select the rows that is displaying any of the given model object. All other rows are deselected. + + A collection of model objects + This method has O(n) performance where n is the number of model objects passed. + Do not use this to select all the rows in the list -- use SelectAll() for that. + + + + Set the collection of objects that this control will show. + + + Should the state of the list be preserved as far as is possible. + + + + Get the checkedness of an object from the model. Returning null means the + model does know and the value from the control will be used. + + + + + + + Rebuild the list with its current contents. + + + Invalidate any cached information when we rebuild the list. + + + + + Clear any cached info this list may have been using + + + + + Do the work of creating groups for this control + + + + + + Do the plumbing to disable groups on a virtual list + + + + + Do the plumbing to enable groups on a virtual list + + + + + Return the position of the given itemIndex in the list as it currently shown to the user. + If the control is not grouped, the display order is the same as the + sorted list order. But if the list is grouped, the display order is different. + + + + + + + Return the last item in the order they are shown to the user. + If the control is not grouped, the display order is the same as the + sorted list order. But if the list is grouped, the display order is different. + + + + + + Return the n'th item (0-based) in the order they are shown to the user. + If the control is not grouped, the display order is the same as the + sorted list order. But if the list is grouped, the display order is different. + + + + + + + Return the ListViewItem that appears immediately after the given item. + If the given item is null, the first item in the list will be returned. + Return null if the given item is the last item. + + The item that is before the item that is returned, or null + A OLVListItem + + + + Return the ListViewItem that appears immediately before the given item. + If the given item is null, the last item in the list will be returned. + Return null if the given item is the first item. + + The item that is before the item that is returned + A ListViewItem + + + + Make a list of groups that should be shown according to the given parameters + + + + + + + Create a OLVListItem for given row index + + The index of the row that is needed + An OLVListItem + + + + On virtual lists, this cannot work. + + + + + Record the change of checkstate for the given object in the model. + This does not update the UI -- only the model + + + + The check state that was recorded and that should be used to update + the control. + + + + Refresh the given item in the list + + The item to refresh + + + + Change the size of the list + + + + + + Take ownership of the 'objects' collection. This separates our collection from the source. + + + + This method + separates the 'objects' instance variable from its source, so that any AddObject/RemoveObject + calls will modify our collection and not the original colleciton. + + + VirtualObjectListViews always own their collections, so this is a no-op. + + + + + + Change the state of the control to reflect changes in filtering + + + + + Change the size of the virtual list so that it matches its data source + + + + + Handle the CacheVirtualItems event + + + + + + + Handle a RetrieveVirtualItem + + + + + + + Handle the SearchForVirtualList event, which is called when the user types into a virtual list + + + + + + + Find the first row in the given range of rows that prefix matches the string value of the given column. + + + + + + The index of the matched row, or -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 初始化的时候给个alpha值,这样在灰图片的时候可以半透明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 使图片单色化 + + + + + + + + + + + + 自定义 + + + + + 预置 + + + + + 系统 + + + + + 颜色表示法 + + + + + 根据颜色表示字符串获取对应的颜色 + + + + + + + + + + + + + + + + + + + + + + + + + + + 从文件中获取Image对象 + 这个函数的主要功能是处理一些ico文件 + 一些ico文件的格式可能比较新,直接Image.FormFile,会报内存不足的异常 + + + 是否将文件读入内存操作,如果为false,将直接返回Image.FromFile,在此情况下, + 必须手动释放Image对象,否则文件将一直处于占用状态,如果为true,则在内存中拷贝副本 + + + + + + 将图像转为Icon对象,使用png格式 + + + + + + + 将图像转为Icon对象 + + + + + + + + 返回适应指定容器大小的图像 + 如果图像的尺寸(长或宽)超出了容器范围,将按比例获取图像的缩略图返回,否则直接返回图像 + 此方法最终调用 Image.GetThumbnailImage + 但是注意,在指定的容器尺寸过小时,返回的Image尺寸不可知,是在为了显示16x16的小缩略图是发现了此问题 + 使用 GetScaleImage + + + + + + + + + 返回适应指定容器大小的图像 + 在需要的情况下,此方法创建一个新对象,进行绘制 + + + + + + + + 返回适应指定容器大小的图像 + 在需要的情况下,此方法创建一个新对象,进行绘制 + + + + + + + + + Gets the bounding rectangle of an image required to fit + in to the given rectangle keeping the image aspect ratio. + + The source image. + The rectangle to fit in to. + Horizontal image aligment in percent. + Vertical image aligment in percent. + New image size. + + + + Gets the bounding rectangle of an image required to fit + in to the given rectangle keeping the image aspect ratio. + The image will be centered in the fit box. + + The source image. + The rectangle to fit in to. + New image size. + + + + Gets the scaled size of an image required to fit + in to the given size keeping the image aspect ratio. + + The source image. + The size to fit in to. + New image size. + + + + 获取一个圆角矩形 + + + + 角度 + + + + + 获取一个圆角矩形 + + + 角度 + + + + + + + + + + + + + + + + + + + + + + 返回一个表示箭头的Path + 如果开始坐标和结束坐标之间的距离大于箭头的大小,箭头向结束坐标对齐,顶着结束坐标 + + 开始坐标 + 结束坐标(顶点,方向) + 箭头的长短,大小 + 箭头的粗细 + + + + + 在指定的Image上绘制特定标记 + + + + + 文件不存在 + + + + + + 文件不存在 + + + + + + 无法读取文件 + + + + + + + + + + + + + + + + + + + + + 验证失败中显示错误信息时用的标题 + + + + + 验证失败时是否需要高亮显示(改变背景色) + + + + + 验证控件的输入 + + + + + + + 自定义验证方法 + 在基础验证都通过后,才会调用自定义验证方法(如果有) + + + + + + + + + + 是否支持 Windows Vista 以上的玻璃效果 + + + + + 是否打开了玻璃效果 + + + + + 获取应用程序主窗体 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 这个缓存是全局的 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 所对应的绑定数据类型 + + + + + 是否对 DataBoundType 的子类型有效 + 默认无效 + 如果设置为 true,又同时添加了基类与子类的 codon,则运行时会取到哪个codon不确定 + 通常取先添加的那个 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 如果输入的字符串包含 "${...}" 这样的格式,则认为是指代资源文件中的一个字符串资源 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 获取授予该组件的许可证密钥 + + + + + 0:未验证 + 1:验证失败 + 2:验证通过 + + + + + 获取组件的实例或类型的许可证(如果已给定上下文并确定拒绝许可证是否引发异常)。 + + + + + + + + + + 强类型资源类,用于查找本地化字符串等。 + + + + + + + + + + 返回此类使用的缓存 ResourceManager 实例。 + + + + + 为使用此强类型资源类的所有资源查找 + 重写当前线程的 CurrentUICulture 属性。 + + + + + 查找类似 消息 的本地化字符串。 + + + + + 查找类似 底部 的本地化字符串。 + + + + + 查找类似 顶部 的本地化字符串。 + + + + + 查找类似 更大 (48x48) 的本地化字符串。 + + + + + 查找类似 大 (32x32) 的本地化字符串。 + + + + + 查找类似 中 (24x24) 的本地化字符串。 + + + + + 查找类似 小 (16x16) 的本地化字符串。 + + + + + Returns true if the current language is the default language. + + + + + Returns a System.String that represents the current System.Object. + + + + + + + + + + 返回此类使用的缓存 ResourceManager 实例。 + + + + + 为使用此强类型资源类的所有资源查找 + 重写当前线程的 CurrentUICulture 属性。 + + + + + 查找类似 消息 的本地化字符串。 + + + + + 查找类似 底部 的本地化字符串。 + + + + + 查找类似 顶部 的本地化字符串。 + + + + + 查找类似 更大 (48x48) 的本地化字符串。 + + + + + 查找类似 大 (32x32) 的本地化字符串。 + + + + + 查找类似 中 (24x24) 的本地化字符串。 + + + + + 查找类似 小 (16x16) 的本地化字符串。 + + + + + Returns true if the current language is the default language. + + + + + + + + + + Call GetLanguages() to retrieve a list of possible languages that can be used to set this property. + The default value is the default language. + + + + + Gets a list of available languages defined in this assembly. + + + + + + + + + + + + 如果输入的字符串包含 "${...}" 这样的格式,则认为是指代资源文件中的一个字符串资源 + + + + + + + Represents a pop-up window. + + + + + Gets the content of the pop-up. + + + + + Determines which animation to use while showing the pop-up window. + + + + + Determines which animation to use while hiding the pop-up window. + + + + + Determines the duration of the animation. + + + + + Gets or sets a value indicating whether the content should receive the focus after the pop-up has been opened. + + true if the content should be focused after the pop-up has been opened; otherwise, false. + If the FocusOnOpen property is set to false, then pop-up cannot use the fade effect. + + + + Gets or sets a value indicating whether presing the alt key should close the pop-up. + + true if presing the alt key does not close the pop-up; otherwise, false. + + + + Gets or sets a value indicating whether the is resizable. + + true if resizable; otherwise, false. + + + + Gets or sets a minimum size of the pop-up. + + An ordered pair of type representing the width and height of a rectangle. + + + + Gets or sets a maximum size of the pop-up. + + An ordered pair of type representing the width and height of a rectangle. + + + + Gets parameters of a new window. + + An object of type used when creating a new window. + + + + Initializes a new instance of the class. + + The content of the pop-up. + + Pop-up will be disposed immediately after disposion of the content control. + + is null. + + + + Raises the event. + + An that contains the event data. + + + + Processes a dialog box key. + + One of the values that represents the key to process. + + true if the key was processed by the control; otherwise, false. + + + + + Updates the pop-up region. + + + + + Shows the pop-up window below the specified control. + + The control below which the pop-up will be shown. + + When there is no space below the specified control, the pop-up control is shown above it. + + is null. + + + + Shows the pop-up window below the specified area of the specified control. + + The control used to compute screen location of specified area. + The area of control below which the pop-up will be shown. + + When there is no space below specified area, the pop-up control is shown above it. + + is null. + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + A that contains the event data. + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + A that contains the event data. + + + + Processes Windows messages. + + The Windows to process. + + + + Processes the resizing messages. + + The message. + true, if the WndProc method from the base class shouldn't be invoked. + + + + Paints the sizing grip. + + The instance containing the event data. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Types of animation of the pop-up window. + + + + + Uses no animation. + + + + + Animates the window from left to right. This flag can be used with roll or slide animation. + + + + + Animates the window from right to left. This flag can be used with roll or slide animation. + + + + + Animates the window from top to bottom. This flag can be used with roll or slide animation. + + + + + Animates the window from bottom to top. This flag can be used with roll or slide animation. + + + + + Makes the window appear to collapse inward if it is hiding or expand outward if the window is showing. + + + + + Uses a slide animation. + + + + + Uses a fade effect. + + + + + Uses a roll animation. + + + + + Uses a default animation. + + + + + Represents a Windows combo box control with a custom popup control attached. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the drop down control. + + The drop down control. + + + + Gets or sets a value indicating whether the combo box is displaying its drop-down portion. + + + true if the drop-down portion is displayed; otherwise, false. The default is false. + + + + + Occurs when the drop-down portion of a is shown. + + + + + Shows the drop down. + + + + + Occurs when the drop-down portion of the is no longer visible. + + + + + Hides the drop down. + + + + + Processes Windows messages. + + The Windows to process. + + + This property is not relevant for this class. + This property is not relevant for this class. + + + This property is not relevant for this class. + This property is not relevant for this class. + + + This property is not relevant for this class. + This property is not relevant for this class. + + + This property is not relevant for this class. + This property is not relevant for this class. + + + This property is not relevant for this class. + This property is not relevant for this class. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents a Windows combo box control which can be used in a popup's content control. + + + + + Initializes a new instance of the PopupControl.ComboBox class. + + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + An that contains the event data. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 白色到灰色的垂直渐变 + + + + + + + + + + This method handles the RenderToolStripBorder event. + + + + + + + + + + + + A ToolstripManager rendering class with advanced control features + + + + + Creates a new EasyRender class for modifications + + + + + + + + + + + + + + + + + + + + Gets the manager to edit and change the appearance of the Toolstrip + + + + + Gets the manager to edit and change the appearance of Toolstrip buttons + + + + + Gets the manager to edit and change the appearance of other Toolstrip controls + + + + + Gets the manager to edit and change the appearance of the Panels + + + + + Gets the manager to edit and change the appearance of the Toolstrip split buttons + + + + + Gets the manager to edit and change the appearance of the Status-bar + + + + + Gets or sets whether to smooth the font text on all controls + + + + + Gets or sets the color of the text if the AlterColor is set to true + + + + + Gets or sets whether to override the font-color on all controls + + + + + Creates a GraphicsPath that appreciates an area where things can be drawn + + The rectangular area which will serve as the base + The curve amount of the corners + + + + + Creates a triangle based on the size and bounds sectors + + The area which the triangle is confined to + The size of the triangle + The direction which the triangle is pointing + + + + + Gets a color array based on the state of a normal button + + The button to check the state of + + + + + + Gets a color array based on the state of a split-button + + The button to check the state of + + + + + + Gets a color array based on the state of a menu-item + + The button to check the state of + + + + + + Gets a color array based on the state of a drop-down button + + The button to check the state of + + + + + + Gets a blending property for a specified type of Toolstrip item + + The Toolstrip item + The type of item this is + + + + + Fills a specified boundary with color + + The Graphics object to draw onto + The boundaries to draw the color + The brush to fill the color + + + + Fills a specified boundary with a gradient with specified colors + + The Graphics object to draw onto + The boundaries to draw the color + The color of the gradient at the top + The color of the gradient at the bottom + + + + Fills a specified boundary with a gradient with specified colors at a given angle + + The Graphics object to draw onto + The boundaries to draw the color + The color of the gradient at the top + The color of the gradient at the bottom + The angle which the gradient is drawn (null defaults to 90f) + + + + Fills a specified boundary with a gradient with specified colors at a given angle and with blending properties + + The Graphics object to draw onto + The boundaries to draw the color + The color of the gradient at the top + The color of the gradient at the bottom + The angle which the gradient is drawn (null defaults to 90f) + The blending options to draw the gradient + + + + Draws a set path with a defined brush + + The Graphics object to draw onto + The path to draw along + The brush to fill the color + + + + Draws a set path with specified colors + + The Graphics object to draw onto + The path to draw along + The area of span the border gradient covers + The color of the gradient at the top + The color of the gradient at the bottom + + + + Draws a set path with specified colors at a given angle + + The Graphics object to draw onto + The path to draw along + The area of span the border gradient covers + The color of the gradient at the top + The color of the gradient at the bottom + The angle which the gradient is drawn (null defaults to 90f) + + + + Draws a set path with specified colors at a given angle with blending properties + + The Graphics object to draw onto + The path to draw along + + The color of the gradient at the top + The color of the gradient at the bottom + The angle which the gradient is drawn (null defaults to 90f) + The blending options to draw the gradient + + + + Draws a Toolstrip button + + The Toolstrip button + The Graphics object to handle + The parent Toolstrip + + + + Draws a Toolstrip button + + The Toolstrip button + The Graphics object to handle + The parent Toolstrip + + + + Draws the Toolstrip background + + The Toolstrip being drawn + The Graphics object to handle + The affected bounds + + + + Draws a Toolstrip split-button + + The Toolstrip split-button + The Graphics object to handle + The parent Toolstrip + + + + Draws the Statusbar background + + The Statusbar being drawn + The Graphics object to handle + The affected bounds + + + + Draws a Menustrip item + + The Menustrip item + The Graphics object to handle + The parent Toolstrip + + + + Covers the button background rendering + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Applies any and all changes made to the Renderer + + + + + A class designed to be used in the EasyRender master control to customize the look and feel of the base Toolstrip + + + + + Creates a new IToolstrip class for customization + + + + + Creates a new IToolstrip class for customization + + The IToolstrip to import the settings from + + + + Disposes of the IToolstrip class and clears all resources related to it + + + + + Gets or sets the color of the Toolstrip background gradient from the top + + + + + Gets or sets the color of the Toolstrip background gradient from the bottom + + + + + Gets or sets the blending that will occur when rendering the Toolstrip background + If set to null, the Toolstrip will simply draw the gradient + + + + + Gets or sets the angle which the Toolstrip background will be drawn + + + + + Gets or sets the color of the Toolstrip border gradient from the top + + + + + Gets or sets the color of the Toolstrip border gradient from the bottom + + + + + Gets or sets the blending that will occur when rendering the Toolstrip border + If set to null, the Toolstrip will simply draw the border + + + + + Gets or sets the angle which the Toolstrip border will be drawn + + + + + Gets or sets the curve of the border of the Toolstrip + + + + + Imports the settings from a previous or pre-defined IToolstrip and applies it to the current + + The IToolstrip to import the settings from + + + + Sets the blending for both border and background to their defaults + + + + + + + + + + Creates a new IToolstripControls class for customization + + + + + Disposes of the IToolstripControls class and clears all resources related to it + + + + + Gets or sets the color of the Toolstrip seperator on the dark side + + + + + Gets or sets the color of the Toolstrip seperator on the light side + + + + + Gets or sets the height of the Toolstrip seperator control + + + + + Gets or sets the color of the grip dots/line at the top + + + + + Gets or sets the color of the grip shadow + + + + + Gets or sets in what mode the grip will be drawn + + + + + Gets or sets the distance, in pixels, between each grip dot + + + + + Gets or sets the size of the dots or lines for the grip + + + + + Imports the settings from a previous or pre-defined IToolstripControls and applies it to the current + + The IToolstripControls to import the settings from + + + + + + + + + Creates a new IButton class for customization + + + + + Creates a new IButton class for customization + + The IButton to import the settings from + + + + Disposes of the IButton class and clears all resources related to it + + + + + Gets or sets the color of the Button background at the top, when hovered over + + + + + Gets or sets the color of the Button background at the bottom, when hovered over + + + + + Gets or sets the color of the Button background at the top, when clicked + + + + + Gets or sets the color of the Button background at the bottom, when clicked + + + + + Gets or sets the blending that will occur when rendering the Button background + If set to null, the Button will simply draw the gradient + + + + + Gets or sets the angle which the Button background will be drawn + + + + + Gets or sets the color of the Button border gradient from the top + + + + + Gets or sets the color of the Button border gradient from the bottom + + + + + Gets or sets the blending that will occur when rendering the Button border + If set to null, the Button will simply draw the border + + + + + Gets or sets the angle which the Button border will be drawn + + + + + Gets or sets the color of the inside border + + + + + Gets or sets when to apply the rendering ("Normal" does not apply here) + + + + + Gets or sets the curve of the border of the Button + + + + + Imports the settings from a previous or pre-defined IButton and applies it to the current + + The IButton to import the settings from + + + + Sets the blending for both border and background to their defaults + + + + + + + + + + Creates a new IButton class for customization + + + + + Creates a new IButton class for customization + + The IButton to import the settings from + + + + Disposes of the IButton class and clears all resources related to it + + + + + Gets or sets the color of the Button background at the top, when hovered over + + + + + Gets or sets the color of the Button background at the bottom, when hovered over + + + + + Gets or sets the blending that will occur when rendering the Button background + If set to null, the Button will simply draw the gradient + + + + + Gets or sets the angle which the Button background will be drawn + + + + + Gets or sets the color of the Button border gradient from the top + + + + + Gets or sets the color of the Button border gradient from the bottom + + + + + Gets or sets the blending that will occur when rendering the Button border + If set to null, the Button will simply draw the border + + + + + Gets or sets the angle which the Button border will be drawn + + + + + Gets or sets the color of the inside border + + + + + Gets or sets when to apply the rendering ("Normal" and "Click" do not apply here) + + + + + Gets or sets the curve of the border of the Button + + + + + Imports the settings from a previous or pre-defined IDropDownButton and applies it to the current + + The IDropDownButton to import the settings from + + + + Sets the blending for both border and background to their defaults + + + + + + + + + + Creates a new ISplitButton class for customization + + + + + Disposes of the ISplitButton class and clears all resources related to it + + + + + Gets or sets the color of the Button background at the top, when hovered over + + + + + Gets or sets the color of the Button background at the bottom, when hovered over + + + + + Gets or sets the color of the Button background at the top, when clicked + + + + + Gets or sets the color of the Button background at the bottom, when clicked + + + + + Gets or sets the blending that will occur when rendering the Button background + If set to null, the Button will simply draw the gradient + + + + + Gets or sets the angle which the Button background will be drawn + + + + + Gets or sets the color of the Button border gradient from the top + + + + + Gets or sets the color of the Button border gradient from the bottom + + + + + Gets or sets the blending that will occur when rendering the Button border + If set to null, the Button will simply draw the border + + + + + Gets or sets the angle which the Button border will be drawn + + + + + Gets or sets the color of the inside border + + + + + Gets or sets when to apply the rendering ("Normal" does not apply here) + + + + + Gets or sets the curve of the border of the Button + + + + + Gets or sets when to display the drop-down arrow + + + + + Gets or sets the color of the drop-down arrow + + + + + Imports the settings from a previous or pre-defined ISplitButton and applies it to the current + + The ISplitButton to import the settings from + + + + Sets the blending for both border and background to their defaults + + + + + + + + + + Creates a new IPanel class for customization + + + + + Disposes of the IButton class and clears all resources related to it + + + + + Gets or sets the color of the gradient at the top of the content panel + + + + + Gets or sets the color of the gradient at the bottom of the content panel + + + + + Gets or sets whether each panel inherits the shading from the content panel + + + + + Gets or sets the angle which the background gradient is drawn + + + + + Gets or sets the blend of the background + + + + + Gets or sets a mode to render the background in + + + + + + + + + + Creates a new IStatusBar class for customization + + + + + Disposes of the IButton class and clears all resources related to it + + + + + Gets or sets the color of the gradient of the background at the top + + + + + Gets or sets the color of the gradient of the background at the bottom + + + + + Gets or sets the blending that will apply to the background + + + + + Gets or sets the angle which the background gradient will be drawn + + + + + Gets or sets the color of the dark border + + + + + Gets or sets the color of the light border + + + + + Gets or sets the color of the grip at the top-most + + + + + Gets or sets the color of the grip at the bottom-most + + + + + Gets or sets the spacing of the grip blocks + + + + + Imports the settings from a previous or pre-defined IStatusBar and applies it to the current + + The IStatusBar to import the settings from + + + + Sets the blending for both border and background to their defaults + + + + + A class designed to be used in the EasyRender master control to customize the look and feel of the base Menustrip + + + + + Creates a new IToolstrip class for customization + + + + + Creates a new IMenustrip class for customization + + The IMenustrip to import the settings from + + + + Disposes of the IMenustrip class and clears all resources related to it + + + + + Gets or sets the color of the menu-strip border (dark) + + + + + Gets or sets the color of the menu-strip border (light) + + + + + Gets or sets how the background of the menu-strip is inherited + + + + + If inheritence is set to none, the color of the background gradient at the top + + + + + If inheritence is set to none, the color of the background gradient at the bottom + + + + + If inheritence is set to none, the blending option for the background + + + + + Gets or sets the color of the margin gradient at the left + + + + + Gets or sets the color of the margin gradient at the right + + + + + Gets or sets the color of the margin border (displayed to the right) + + + + + Gets or sets the color of the root menu-strip button background when it is selected + + + + + Gets or sets the color of the root menu-strip button border when it is selected + + + + + Gets or sets the color of the seperator dark color + + + + + Gets or sets the color of the seperator light color + + + + + Gets or sets the inset position of the seperator from the left + + + + + Gets the class that handles the look and feel of the menu-strip items + + + + + Imports the settings from a previous or pre-defined IMenustrip and applies it to the current + + The IMenustrip to import the settings from + + + + Sets the blending for the background to it's default + + + + + Defines when to show an arrow + + + + + + + + + + + + + + + + + + + + Defines when to use a blend property + + + + + Use the blend when the object is drawn + + + + + Use the blend when the object is hovered over + + + + + Use the blend when the object is clicked + + + + + Use the blend when the object is checked + + + + + Always use the blend regardless of the state of the object + + + + + Defines a method of drawing a grip on a control + + + + + Draws the grip as a set of dots + + + + + Draws the grip as two lines + + + + + Does not draw the grip at all, but the object remains moveable + + + + + Defines a specific type of button to search by + + + + + + + + + + + + + + + + + + + + + + + + + Defines a method for background or object inheritence + + + + + + + + + + + + + + + Defines a method of rendering + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 主菜单 + + + + + 背景透明的工具条 + + + + + 银白色至白色渐变 + + + + + 白色至银白色渐变 + + + + + + + + + + + + + + + 当前工作区窗体所关联并激活的工具栏 + + + + + 模拟运行时的外观 + + + + + Represents the visual state of an image list view item. + + + + + 没有任何选择状态,处于一般正常状态 + + + + + 项处于选中状态 + + + + + 鼠标滑过 + + + + + 控件的高度根据内容自动调整,忽略外部设置 + + + + + 边框宽度 + + + + + 文本和description文本之间的间距 + + + + + 最大显示的项数 + + + + + + + + + + 是否显示说明字段,此属性不影响弹出面板是否显示 + 弹出面板是否显示由DescriptionMember是否设置决定 + + + + + + + + + + + + + + + 下拉列表的布局模式 + + + + + + + + + + 是否允许空 + + + + + + + + + + 测量当前控件应该的高度 + + + + + + 整个可用的绘图表面 + + + + + 右边按钮的绘图表面 + + + + + 绘制边框 + + + + + + 绘制背景 + + + + + + 绘制文本 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 当前热点项生改变 + + + + + + + + + + + + + + + + + + + + + 通过外能事件获取用于绘制项的文本 + + + + + + + + + + + + + + + + + + + + + + + + + + 标题 + + + + + 验证失败时是否需要高亮显示(改变背景色) + + + + + + + + + + + + + + + + + + + + + + 排序箭头开始颜色 + + + + + 排序箭头开始颜色 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 控件的背景画布颜色 + 因为控件的边框和过度色都有依靠改变透明度实现渐变,所以一个白色的底版就非常重要 + 使过度色不受控件本身背景色的影响,光不绘制背景不行,要刷上白色背景 + + + + + 控件背景色 + + + + + + + + + + + + + + + 边框颜色 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents the visual state of an image list view item. + + + + + 没有任何选择状态,处于一般正常状态 + + + + + 项处于选中状态 + + + + + 该项具有输入焦点 + + + + + 鼠标滑过 + + + + + + + + + + The item is not visible. + + + + + The item is partially visible. + + + + + The item is fully visible. + + + + + 布局方式 + + + + + 标准布局 + + + + + 使项带有描述的布局 + + + + + 双击项事件参数 + + + + + + + + + + + + + + + + 项被删除事件参数 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 为项绘制带有描述信息的渲染器 + + + + + 字的高度是否已初始化 + 在第一次绘制时,测量文本的高度 + + + + + + + + + + + 默认布局引擎,以类似微软ListView的方式按行排列项 + + + + + 框选的最短开始长度 + + + + + 框选时滚动条的自动滚动速度 + + + + + 用于鼠标框选时,框出了控件中项的显示范围时,自动滚动滚动条 + + + + + 自动滚动时,滚动值 + + + + + 是否处于框选状态中 + + + + + 内框offset,内框offset是绝对相对于滚动条的 + + + + + 整个可显示项的边界的offset,包括上下padding部分 + + + + + 鼠标按下时项区域边界的offset,即 _itemsAreaOffset + 用于框选时,跨越可视部队画框 + + + + + 当前所能显示的最大行数 + + + + + + + + + + Gets whether the shift key is down. + + + + + Gets whether the control key is down. + + + + + + + + + + + + + + + + + + + + + + + + + 没有任何项 + + + + + 没有任何项处于可显示状态 + + + + + 整个控件区域 + + + + + 整个可用于绘制项的可视区域 + 去除左右Padding部分,去除滚动条 + + + + + 用于绘制项的区域 + 考虑边距间隔大小和滚动条区域 + + + + + 项的尺寸 + 不放在ListView本身中定义而是放在LayoutManager中定义,是因为不同的布局方式 + 可能会是带长宽的Size做为itemSize,比如平铺的方式 + + + + + 项周围的边距 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 更新整个布局引擎的状态 + + + + + 判断指定的项是否处于可见状态 + + + + + + + 获取项的呈现区域 + + + + + + + + + + + + + + + + + + + + 获取当前所有可见项 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Calculates the maximum number of rows and columns + that can be fully displayed. + + + + + 计算当前可见项的index范围 + + + + + 更新滚动条状态 + + + + + 创建框选框 + + + + + + 根据矩形区域选择项 + + + + + + 应用导航键,如上下左右,返回应用导航键之后的项的坐标 + + + + + 使指定下标的项处于可见状态 + + + + + + 默认渲染器,不绘制项的实际内容,但是绘制DEBUG信息 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 用于子类重写时删除相应的缓存 + + + + + + 绘制项的背景 + + The System.Drawing.Graphics to draw on. + The client coordinates of the item area. + + + + 绘制最终的前景 + + + + + + 绘制选择边框 + + The System.Drawing.Graphics to draw on. + The client coordinates of the selection rectangle. + + + + 绘制项的边框 + + + + + + + + 绘制项 + + + + + + + 绘制项的背景 + + + + + + + 绘制项的内容 + + + + + + + + 绘制背景 + + + + + + 绘制当前所有可见项 + + + + + + Renders the selection rectangle. + + The graphics to draw on. + + + + 默认渲染器,以类似微软ListView的方式按行绘制项,只绘制简单的文本 + + + + + 字的高度是否已初始化 + 在第一次绘制时,测量文本的高度 + + + + + + + + + + + + + + + + + + + + + + + + + 项的背景色 + + + + + 控件背景色 + + + + + 项的边框色 + + + + + 选择框颜色 + + + + + 选择框的边框色 + + + + + 当控件具有焦点时选定项的背景色 + + + + + + + + + + 控件失去焦点时选定项的背景色 + + + + + + + + + + 热点项的背景色 + + + + + + + + + + 图像内边框颜色 + + + + + 图像外边框颜色 + + + + + + + + + + Creates a control with a border. + + + + + Specifies that the control has a border with a sunken edge. + + + + + + + + + + 是否需要在调用 ResumeLayout 时重绘 + + + + + 为项扩展的用于呈现的属性 + + + + + Gets whether the shift key is down. + + + + + Gets whether the control key is down. + + + + + 鼠标左键是否处于按下状态 + + + + + 鼠标右键是否处于按下状态 + + + + + 鼠标最后点击的位置 + + + + + 当前鼠标经过的项 + + + + + + + + + + + + + + + 配色方案 + + + + + 当前布局中项的高度 + + + + + + + + + + 是否没有任何项 + + + + + + + + + + 获取当前具有输入焦点的项 + + + + + 默认的用于呈现为项中文本的Property + + + + + + + + + + 更改了选择的项 + + + + + 双击项 + + + + + + 请求在下次调用 ResumeLayout 时重绘 + + + + + 获取当前选中的所有项 + + + + + + + + + + + + 设置扩展属性供特定LayoutEngine使用 + 如果指定的 ExtendMember 已存在,覆盖之 + 用String.Empty 或 null 做为 propertyName传入,表示删除指定的 member + + + + + + + + + + + + + + + + + + + + + 恢复正常的布局逻辑。 + + + + + + + + + + + 临时挂起控件的布局逻辑。 + + + + + + + + + + 获取当前选中项所绑定的对象 + 如果没有选中项,返回null,如果选中多项,返回选中项集合中的第一个 + + + + + + 根据指定的绑定项对象 + 设置当前列表中选定的项 + + + + + + 获取当前选中的所有项的绑定对象集合 + 如果当前没有选中任何项,返回空集合 + + + + + + 取消所有项的选择 + + + + + + + + + + + + + + + + 获取创建控件句柄时所需要的创建参数 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 更改了选择的项 + + + + + 双击项 + + + + + 项被删除 + + + + + 通过外能事件获取用于绘制项的文本 + + + + + Represents the color palette of the image list view. + + + + + Gets or sets the background color of the ImageListView control. + + + + + Gets or sets the background color of the ImageListViewItem. + + + + + Gets or sets the background color of alternating cells in Details View. + + + + + Gets or sets the border color of the ImageListViewItem. + + + + + Gets or sets the foreground color of the ImageListViewItem. + + + + + Gets or sets the background gradient color1 of the ImageListViewItem if the control is not focused. + + + + + Gets or sets the background gradient color2 of the ImageListViewItem if the control is not focused. + + + + + Gets or sets the border color of the ImageListViewItem if the control is not focused. + + + + + Gets or sets the fore color of the ImageListViewItem if the control is not focused. + + + + + Gets or sets the background gradient color1 if the ImageListViewItem is hovered. + + + + + Gets or sets the background gradient color2 if the ImageListViewItem is hovered. + + + + + Gets or sets the border color of the ImageListViewItem if the item is hovered. + + + + + Gets or sets the color of the insertion caret. + + + + + Gets or sets the background gradient color1 if the ImageListViewItem is selected. + + + + + Gets or sets the background gradient color2 if the ImageListViewItem is selected. + + + + + Gets or sets the border color of the ImageListViewItem if the item is selected. + + + + + Gets or sets the fore color of the ImageListViewItem if the item is selected. + + + + + Gets or sets the background gradient color1 of the column header. + + + + + Gets or sets the background gradient color2 of the column header. + + + + + Gets or sets the background hover gradient color1 of the column header. + + + + + Gets or sets the background hover gradient color2 of the column header. + + + + + Gets or sets the cells foreground color of the column header text. + + + + + Gets or sets the cells background color if column is selected in Details View. + + + + + Gets or sets the color of the separator in Details View. + + + + + Gets or sets the foreground color of the cell text in Details View. + + + + + Gets or sets the foreground color of alternating cells text in Details View. + + + + + Gets or sets the background color of the image pane. + + + + + Gets or sets the separator line color between image pane and thumbnail view. + + + + + Gets or sets the color of labels in pane view. + + + + + Gets or sets the image inner border color for thumbnails and pane. + + + + + Gets or sets the image outer border color for thumbnails and pane. + + + + + Gets or sets the background color1 of the selection rectangle. + + + + + Gets or sets the background color2 of the selection rectangle. + + + + + Gets or sets the color of the selection rectangle border. + + + + + Initializes a new instance of the ImageListViewColor class. + + + + + Initializes a new instance of the ImageListViewColor class + from its string representation. + + String representation of the object. + + + + Copies color values from the given object. + + The source object. + + + + Represents the default color theme. + + + + + Represents the noir color theme. + + + + + Represents the mandarin color theme. + + + + + Sets the color palette to default colors. + + + + + Sets the color palette to mandarin colors. + + + + + Sets the color palette to noir colors. + + + + + Determines whether all color values of the specified + ImageListViewColor are equal to this instance. + + The object to compare with this instance. + true if the two instances have the same color values; + otherwise false. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in + hashing algorithms and data structures like a hash table. + + + + + Returns a string that represents this instance. + + + A string that represents this instance. + + + + + 测试坐标 + + + + + 项的坐标 + + + + + 是否点击了项 + + + + + + + + + + + + + + + + + + + + + + 该项当前的选中状态 + + + + + + + + + + + + + + + + + + + + 所绑定的对象 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 将指定的事件移动到(紧邻)另一个事件之前 + + + + + + + 将指定的事件移动到(紧邻)另一个事件之后 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Modify a WinForms TreeView control to use the new Explorer style theme + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + WM_COPYDATA消息所要求的数据结构 + + + + + + + + + + + + + + + + + + + + + + + + + 通过窗口的标题来查找窗口的句柄 + + + + + + + + 发送 Windows 消息 + + + + + + + + + + 还原 + + + + + 移动 + + + + + 大小 + + + + + 最小化 + + + + + 最大化 + + + + + 关闭 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 发送消息,只能传递一个自定义的消息ID和消息字符串,想传一个结构,但没成功 + + 目标进程名称,如果有多个,则给每个都发送 + 自定义数据,可以通过这个来决定如何解析下面的strMsg + 传递的消息,是一个字符串 + + + + 接收消息,得到消息字符串 + + System.Windows.Forms.Message m + 接收到的消息字符串 + + + + + + + + + 最大圆角半径 + + + + + 最小矩形边长,用于自动处理圆角大小 + + + + + 绘制一个圆角矩形. + + 当前屏幕的图形对象 + 画笔 + 矩形左上角X坐标 + 矩形左上角Y坐标 + 矩形右下角X坐标 + 矩形右下角Y坐标 + 圆角的半径长度 + + + + 绘制一个圆角矩形. + + 当前屏幕的图形对象 + 画笔 + 要绘制的矩形对象 + 圆角的半径长度 + + + + 绘制一个圆角矩形. + + 当前屏幕的图形对象 + 画笔 + 要绘制的矩形对象 + + + + 填充一个圆角矩形. + + 当前屏幕的图形对象 + 笔刷 + 矩形左上角X坐标 + 矩形左上角Y坐标 + 矩形右下角X坐标 + 矩形右下角Y坐标 + 圆角的半径长度 + + + + 填充一个圆角矩形. + + 当前屏幕的图形对象 + 笔刷 + 要填充的矩形 + 填充区域针对矩形的缩进距离 + 圆角的半径长度 + + + + 填充一个圆角矩形. + + 当前屏幕的图形对象 + 笔刷 + 要填充的矩形 + + + + 使图片单色化 + + + + + + + 获取颜色 + + + + + + + + + + + + + 颜色变化时激发 + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The top left rectangle in auto hide strip area. + + + + + The top right rectangle in auto hide strip area. + + + + + The bottom left rectangle in auto hide strip area. + + + + + The bottom right rectangle in auto hide strip area. + + + + + Gets one of the four auto hide strip rectangles. + + Dock state. + The desired rectangle. + + As the corners are represented by , , , and , + the four strips can be easily calculated out as the borders. + + + + + Context menu. + + + This property should be obsolete as it does not support theming. Please use instead. + + + + + Context menu strip. + + + + + Overridden to avoid resize issues with nested controls + + + http://blogs.msdn.com/b/alejacma/archive/2008/11/20/controls-won-t-get-resized-once-the-nesting-hierarchy-of-windows-exceeds-a-certain-depth-x64.aspx + http://support.microsoft.com/kb/953934 + + + + + Determines whether the close button is visible on the content + + + + + There's a bug in the WinForms layout engine + that can result in a deferred layout to not + properly clear out the cached layout args after + the layout operation is performed. + Specifically, this bug is hit when the bounds of + the Pane change, initiating a layout on the parent + (DockWindow) which is where the bug hits. + To work around it, when a pane loses the DockWindow + as its parent, that parent DockWindow needs to + perform a layout to flush the cached args, if they exist. + + + + + Gets a value indicating whether dock panel can be dragged when in auto hide mode. + Default is false. + + + + + Determines the color with which the client rectangle will be drawn. + If this property is used instead of the BackColor it will not have any influence on the borders to the surrounding controls (DockPane). + The BackColor property changes the borders of surrounding controls (DockPane). + Alternatively both properties may be used (BackColor to draw and define the color of the borders and DockBackColor to define the color of the client rectangle). + For Backgroundimages: Set your prefered Image, then set the DockBackColor and the BackColor to the same Color (Control) + + + + + Dock area. + + + This is the center rectangle of control. + + Excluded spaces are for the following visual elements, + * Auto hide strips on four sides. + * Necessary paddings defined in themes. + + Therefore, all dock contents mainly fall into this area (except auto hide window, which might slightly move beyond this area). + + + + + Flag to show autohide content on mouse hover. Default value is true. + + + This flag is ignored in VS2012/2013 themes. Such themes assume it is always false. + + + + + DragHandlerBase is the base class for drag handlers. The derived class should: + 1. Define its public method BeginDrag. From within this public BeginDrag method, + DragHandlerBase.BeginDrag should be called to initialize the mouse capture + and message filtering. + 2. Override the OnDragging and OnEndDrag methods. + + + + + Loads layout from XML file. + + The file name. + Deserialization handler. + Deserialization might throw exceptions. + + + + Loads layout from a stream. + + The stream. + Deserialization handler. + Deserialization might throw exceptions. + + The stream is closed after deserialization. + + + + + Loads layout from a stream. + + The stream. + Deserialization handler. + The flag to close the stream after deserialization. + Deserialization might throw exceptions. + + + + Deserialization handler of layout file/stream. + + Strings stored in layout file/stream. + Dock content deserialized from layout/stream. + + The deserialization handler method should handle all possible exceptions. + + If any exception happens during deserialization and is not handled, the program might crash or experience other issues. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The skin to use when displaying the DockPanel. + The skin allows custom gradient color schemes to be used when drawing the + DockStrips and Tabs. + + + + + The skin used to display the auto hide strips and tabs. + + + + + The skin used to display the Document and ToolWindow style DockStrips and Tabs. + + + + + The skin used to display the auto hide strip and tabs. + + + + + The gradient color skin for the DockStrips. + + + + + The gradient color skin for the Tabs. + + + + + The gradient color skin for the Tabs. + + + + + Font used in AutoHideStrip elements. + + + + + The skin used to display the document and tool strips and tabs. + + + + + The skin used to display the Document style DockPane strip and tab. + + + + + The skin used to display the ToolWindow style DockPane strip and tab. + + + + + Font used in DockPaneStrip elements. + + + + + The skin used to display the DockPane ToolWindow strip and tab. + + + + + The skin used to display the active ToolWindow caption. + + + + + The skin used to display the inactive ToolWindow caption. + + + + + The skin used to display the DockPane strip and tab. + + + + + The gradient color skin for the DockStrip. + + + + + The skin used to display the active DockPane tabs. + + + + + The skin used to display the inactive DockPane tabs. + + + + + The skin used to display the dock pane tab + + + + + The text color. + + + + + The skin used to display the dock pane tab + + + + + The beginning gradient color. + + + + + The ending gradient color. + + + + + The gradient color skin. + + + + + The beginning gradient color. + + + + + The ending gradient color. + + + + + The gradient mode to display the colors. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Dock window base class. + + + + + Dock window of Visual Studio 2003/2005 theme. + + + + + The location to draw the DockPaneStrip for Document style windows. + + + + + + + + + + + + + + + Gets images for tabs and captions. + + + + + + + + + + Gets images for docking indicators. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Switches a pane with its first child in the pane hierarchy. (The actual hiding happens elsewhere.) + + Pane to switch + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Docking. + + + + + Looks up a localized string similar to Docking Notification. + + + + + Looks up a localized string similar to Performance. + + + + + Looks up a localized string similar to Property Changed. + + + + + Looks up a localized string similar to (Float). + + + + + Looks up a localized string similar to Determines if end user drag and drop docking is allowed.. + + + + + Looks up a localized string similar to The size to display the content in auto hide mode. Value < 1 to specify the size in portion; value >= 1 to specify the size in pixel.. + + + + + Looks up a localized string similar to Enable/Disable the close button of the content.. + + + + + Looks up a localized string similar to Shows or hides the close button of the content. This property does not function with System MDI Document Style.. + + + + + Looks up a localized string similar to The form must be of type IDockContent.. + + + + + Looks up a localized string similar to Gets or sets a value indicating in which area of the DockPanel the content allowed to show.. + + + + + Looks up a localized string similar to Occurs when the value of DockState property changed.. + + + + + Looks up a localized string similar to Indicates the content will be hidden instead of being closed.. + + + + + Looks up a localized string similar to The desired docking state when first showing.. + + + + + Looks up a localized string similar to Context menu displayed for the dock pane tab strip.. + + + + + Looks up a localized string similar to The tab text displayed in the dock pane. If not set, the Text property will be used.. + + + + + Looks up a localized string similar to The text displayed when mouse hovers over the tab.. + + + + + Looks up a localized string similar to The provided value is out of range.. + + + + + Looks up a localized string similar to Invalid Value: The value of DockAreas conflicts with current DockState.. + + + + + Looks up a localized string similar to The pane is invalid. Check the IsFloat and DockPanel properties of this dock pane.. + + + + + Looks up a localized string similar to The pane is invalid. Check the IsFloat and DockPanel properties of this dock pane.. + + + + + Looks up a localized string similar to Invalid value, conflicts with DockableAreas property.. + + + + + Looks up a localized string similar to The dock state is invalid.. + + + + + Looks up a localized string similar to The dock panel is null.. + + + + + Looks up a localized string similar to Invalid beforeContent, it must be contained by the pane.. + + + + + Looks up a localized string similar to Invalid DockState: Content can not be showed as "Unknown" or "Hidden".. + + + + + Looks up a localized string similar to The previous pane is invalid. It can not be null, and its docking state must not be auto-hide.. + + + + + Looks up a localized string similar to DockPanel can not be null.. + + + + + Looks up a localized string similar to The Pane can not be null.. + + + + + Looks up a localized string similar to Invalid value, check DockableAreas property.. + + + + + Looks up a localized string similar to Context menu displayed for the dock pane tab strip.. + + + + + Looks up a localized string similar to Press SHIFT for docking to full side.. + + + + + Looks up a localized string similar to Invalid Content: ActiveContent must be one of the visible contents, or null if there is no visible content.. + + + + + Looks up a localized string similar to Invalid argument: Content can not be "null".. + + + + + Looks up a localized string similar to Invalid argument: The content's DockPanel can not be "null".. + + + + + Looks up a localized string similar to The specified container conflicts with the IsFloat property.. + + + + + Looks up a localized string similar to The previous pane does not exist in the nested docking pane collection.. + + + + + Looks up a localized string similar to The container can not be null.. + + + + + Looks up a localized string similar to The previous pane can not be null when the nested docking pane collection is not empty.. + + + + + Looks up a localized string similar to The previous pane can not be itself.. + + + + + Looks up a localized string similar to FloatWindow property can not be set to "null" when DockState is DockState.Float.. + + + + + Looks up a localized string similar to Invalid Content: Content not within the collection.. + + + + + Looks up a localized string similar to Invalid Index: The index is out of range.. + + + + + Looks up a localized string similar to The state for the dock pane is invalid.. + + + + + Looks up a localized string similar to Auto Hide. + + + + + Looks up a localized string similar to Close. + + + + + Looks up a localized string similar to Options. + + + + + Looks up a localized string similar to Invalid Content: The content must be auto-hide state and associates with this DockPanel.. + + + + + Looks up a localized string similar to Occurs when the value of the AutoHideWindow's ActiveContent changed.. + + + + + Looks up a localized string similar to Occurs when the value of ActiveContentProperty changed.. + + + + + Looks up a localized string similar to Occurs when the value of ActiveDocument property changed.. + + + + + Looks up a localized string similar to Occurs when the value of ActivePane property changed.. + + + + + Looks up a localized string similar to Determines if the drag and drop docking is allowed.. + + + + + Looks up a localized string similar to Determines if the drag and drop nested docking is allowed.. + + + + + Looks up a localized string similar to Occurs when a content added to the DockPanel.. + + + + + Looks up a localized string similar to Occurs when a content removed from the DockPanel.. + + + + + Looks up a localized string similar to The default size of float window.. + + + + + Looks up a localized string similar to Provides Visual Studio .Net style docking.. + + + + + Looks up a localized string similar to Size of the bottom docking window. Value < 1 to specify the size in portion; value > 1 to specify the size in pixels.. + + + + + Looks up a localized string similar to Size of the left docking window. Value < 1 to specify the size in portion; value > 1 to specify the size in pixels.. + + + + + Looks up a localized string similar to The visual skin to use when displaying the docked windows.. + + + + + Looks up a localized string similar to Size of the right docking window. Value < 1 to specify the size in portion; value > 1 to specify the size in pixels.. + + + + + Looks up a localized string similar to Size of the top docking window. Value < 1 to specify the size in portion; value > 1 to specify the size in pixels.. + + + + + Looks up a localized string similar to Occurs when a document or pane is dragged within the dock panel.. + + + + + Looks up a localized string similar to The style of the document window.. + + + + + Looks up a localized string similar to Determines where the tab strip for Document style content is drawn.. + + + + + Looks up a localized string similar to The DockPanel has already been initialized.. + + + + + Looks up a localized string similar to The configuration file's version is invalid.. + + + + + Looks up a localized string similar to The XML file format is invalid.. + + + + + Looks up a localized string similar to Invalid parent form. When using DockingMdi or SystemMdi document style, the DockPanel control must be the child control of the main MDI container form.. + + + + + Looks up a localized string similar to DockPanel configuration file. Author: Weifen Luo, all rights reserved.. + + + + + Looks up a localized string similar to !!! AUTOMATICALLY GENERATED FILE. DO NOT MODIFY !!!. + + + + + Looks up a localized string similar to Indicates whether the control layout is right-to-left when the RightToLeft property is set to Yes.. + + + + + Looks up a localized string similar to Invalid Index: The index is out of range.. + + + + + Looks up a localized string similar to Invalid Pane: DockPane not within the collection.. + + + + + Looks up a localized string similar to Shows the hidden autohide content when hovering over the tab. When disabled, the tab must be clicked to show the content.. + + + + + Looks up a localized string similar to Show close button on each tab. + + + + + Looks up a localized string similar to Determines if the document icon will be displayed in the tab strip.. + + + + + Looks up a localized string similar to Support deeply nested controls. Disabling this setting may improve resize performance but may cause heavily nested content not to resize.. + + + + + Looks up a localized string similar to Close. + + + + + Looks up a localized string similar to Window List. + + + + + Looks up a localized string similar to Invalid argument: DockPanel can not be "null".. + + + + + Looks up a localized string similar to Invalid Index: The index is out of range.. + + + + + Looks up a localized string similar to Invalid Pane: DockPane not within the collection.. + + + + + Looks up a localized string similar to Invalid DockPanel.. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Determines whether the close button is visible on the content + + + + + Calculate which tabs are displayed and in what order. + + + + + Visual Studio 2005 theme (default theme). + + + + + + + + + + X for this inside the logical strip rectangle. + + + + + Width of this . + + + + + Dock window of Visual Studio 2012 Light theme. + + + + + Initializes a new instance of the class. + + The dock panel. + State of the dock. + + + + Determines whether the close button is visible on the content + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Docking. + + + + + Looks up a localized string similar to Docking Notification. + + + + + Looks up a localized string similar to Performance. + + + + + Looks up a localized string similar to Property Changed. + + + + + Looks up a localized string similar to (Float). + + + + + Looks up a localized string similar to Determines if end user drag and drop docking is allowed.. + + + + + Looks up a localized string similar to The size to display the content in auto hide mode. Value < 1 to specify the size in portion; value >= 1 to specify the size in pixel.. + + + + + Looks up a localized string similar to Enable/Disable the close button of the content.. + + + + + Looks up a localized string similar to Shows or hides the close button of the content. This property does not function with System MDI Document Style.. + + + + + Looks up a localized string similar to The form must be of type IDockContent.. + + + + + Looks up a localized string similar to Gets or sets a value indicating in which area of the DockPanel the content allowed to show.. + + + + + Looks up a localized string similar to Occurs when the value of DockState property changed.. + + + + + Looks up a localized string similar to Indicates the content will be hidden instead of being closed.. + + + + + Looks up a localized string similar to The desired docking state when first showing.. + + + + + Looks up a localized string similar to Context menu displayed for the dock pane tab strip.. + + + + + Looks up a localized string similar to The tab text displayed in the dock pane. If not set, the Text property will be used.. + + + + + Looks up a localized string similar to The text displayed when mouse hovers over the tab.. + + + + + Looks up a localized string similar to The provided value is out of range.. + + + + + Looks up a localized string similar to Invalid Value: The value of DockAreas conflicts with current DockState.. + + + + + Looks up a localized string similar to The pane is invalid. Check the IsFloat and DockPanel properties of this dock pane.. + + + + + Looks up a localized string similar to The pane is invalid. Check the IsFloat and DockPanel properties of this dock pane.. + + + + + Looks up a localized string similar to Invalid value, conflicts with DockableAreas property.. + + + + + Looks up a localized string similar to The dock state is invalid.. + + + + + Looks up a localized string similar to The dock panel is null.. + + + + + Looks up a localized string similar to Invalid beforeContent, it must be contained by the pane.. + + + + + Looks up a localized string similar to Invalid DockState: Content can not be showed as "Unknown" or "Hidden".. + + + + + Looks up a localized string similar to The previous pane is invalid. It can not be null, and its docking state must not be auto-hide.. + + + + + Looks up a localized string similar to DockPanel can not be null.. + + + + + Looks up a localized string similar to The Pane can not be null.. + + + + + Looks up a localized string similar to Invalid value, check DockableAreas property.. + + + + + Looks up a localized string similar to Context menu displayed for the dock pane tab strip.. + + + + + Looks up a localized string similar to Press SHIFT for docking to full side.. + + + + + Looks up a localized string similar to Invalid Content: ActiveContent must be one of the visible contents, or null if there is no visible content.. + + + + + Looks up a localized string similar to Invalid argument: Content can not be "null".. + + + + + Looks up a localized string similar to Invalid argument: The content's DockPanel can not be "null".. + + + + + Looks up a localized string similar to The specified container conflicts with the IsFloat property.. + + + + + Looks up a localized string similar to The previous pane does not exist in the nested docking pane collection.. + + + + + Looks up a localized string similar to The container can not be null.. + + + + + Looks up a localized string similar to The previous pane can not be null when the nested docking pane collection is not empty.. + + + + + Looks up a localized string similar to The previous pane can not be itself.. + + + + + Looks up a localized string similar to FloatWindow property can not be set to "null" when DockState is DockState.Float.. + + + + + Looks up a localized string similar to Invalid Content: Content not within the collection.. + + + + + Looks up a localized string similar to Invalid Index: The index is out of range.. + + + + + Looks up a localized string similar to The state for the dock pane is invalid.. + + + + + Looks up a localized string similar to Auto Hide. + + + + + Looks up a localized string similar to Close. + + + + + Looks up a localized string similar to Window Position. + + + + + Looks up a localized string similar to Invalid Content: The content must be auto-hide state and associates with this DockPanel.. + + + + + Looks up a localized string similar to Occurs when the value of the AutoHideWindow's ActiveContent changed.. + + + + + Looks up a localized string similar to Occurs when the value of ActiveContentProperty changed.. + + + + + Looks up a localized string similar to Occurs when the value of ActiveDocument property changed.. + + + + + Looks up a localized string similar to Occurs when the value of ActivePane property changed.. + + + + + Looks up a localized string similar to Determines if the drag and drop docking is allowed.. + + + + + Looks up a localized string similar to Determines if the drag and drop nested docking is allowed.. + + + + + Looks up a localized string similar to Occurs when a content added to the DockPanel.. + + + + + Looks up a localized string similar to Occurs when a content removed from the DockPanel.. + + + + + Looks up a localized string similar to The default size of float window.. + + + + + Looks up a localized string similar to Provides Visual Studio .Net style docking.. + + + + + Looks up a localized string similar to Size of the bottom docking window. Value < 1 to specify the size in portion; value > 1 to specify the size in pixels.. + + + + + Looks up a localized string similar to Size of the left docking window. Value < 1 to specify the size in portion; value > 1 to specify the size in pixels.. + + + + + Looks up a localized string similar to The visual skin to use when displaying the docked windows.. + + + + + Looks up a localized string similar to Size of the right docking window. Value < 1 to specify the size in portion; value > 1 to specify the size in pixels.. + + + + + Looks up a localized string similar to Size of the top docking window. Value < 1 to specify the size in portion; value > 1 to specify the size in pixels.. + + + + + Looks up a localized string similar to The style of the document window.. + + + + + Looks up a localized string similar to Determines where the tab strip for Document style content is drawn.. + + + + + Looks up a localized string similar to The DockPanel has already been initialized.. + + + + + Looks up a localized string similar to The configuration file's version is invalid.. + + + + + Looks up a localized string similar to The XML file format is invalid.. + + + + + Looks up a localized string similar to Invalid parent form. When using DockingMdi or SystemMdi document style, the DockPanel control must be the child control of the main MDI container form.. + + + + + Looks up a localized string similar to DockPanel configuration file. Author: Weifen Luo, all rights reserved.. + + + + + Looks up a localized string similar to !!! AUTOMATICALLY GENERATED FILE. DO NOT MODIFY !!!. + + + + + Looks up a localized string similar to Indicates whether the control layout is right-to-left when the RightToLeft property is set to Yes.. + + + + + Looks up a localized string similar to Invalid Index: The index is out of range.. + + + + + Looks up a localized string similar to Invalid Pane: DockPane not within the collection.. + + + + + Looks up a localized string similar to Shows the hidden autohide content when hovering over the tab. When disabled, the tab must be clicked to show the content.. + + + + + Looks up a localized string similar to Show close button on each tab. + + + + + Looks up a localized string similar to Determines if the document icon will be displayed in the tab strip.. + + + + + Looks up a localized string similar to Support deeply nested controls. Disabling this setting may improve resize performance but may cause heavily nested content not to resize.. + + + + + Looks up a localized string similar to Close. + + + + + Looks up a localized string similar to Window List. + + + + + Looks up a localized string similar to Invalid argument: DockPanel can not be "null".. + + + + + Looks up a localized string similar to Invalid Index: The index is out of range.. + + + + + Looks up a localized string similar to Invalid Pane: DockPane not within the collection.. + + + + + Looks up a localized string similar to Invalid DockPanel.. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Calculate which tabs are displayed and in what order. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Visual Studio 2015 Light theme. + + + + + + + + + + Visual Studio 2015 Light theme. + + + + + + + + + + Visual Studio 2015 Light theme. + + + + + + + + + + Visual Studio 2015 theme base. + + + + + + + + + + + + + + +
+
diff --git a/Bin/Debug/SuperDesign/Scintilla.NET.dll b/Bin/Debug/SuperDesign/Scintilla.NET.dll new file mode 100644 index 0000000..12afe18 Binary files /dev/null and b/Bin/Debug/SuperDesign/Scintilla.NET.dll differ diff --git a/Bin/Debug/SuperDesign/SuperDesign.exe b/Bin/Debug/SuperDesign/SuperDesign.exe index 43baf42..590e833 100644 Binary files a/Bin/Debug/SuperDesign/SuperDesign.exe and b/Bin/Debug/SuperDesign/SuperDesign.exe differ diff --git a/Bin/Debug/SuperDesign/SuperDesign.exe.config b/Bin/Debug/SuperDesign/SuperDesign.exe.config index 9c72f14..05d8b24 100644 --- a/Bin/Debug/SuperDesign/SuperDesign.exe.config +++ b/Bin/Debug/SuperDesign/SuperDesign.exe.config @@ -1,3 +1,3 @@ - + diff --git a/Bin/Debug/SuperDesign/SuperDesign.rar b/Bin/Debug/SuperDesign/SuperDesign.rar deleted file mode 100644 index 78a1fd1..0000000 Binary files a/Bin/Debug/SuperDesign/SuperDesign.rar and /dev/null differ diff --git a/Bin/Debug/SuperDesign/SysDb/AutoComplete/editor.txt b/Bin/Debug/SuperDesign/SysDb/AutoComplete/editor.txt new file mode 100644 index 0000000..db4b587 --- /dev/null +++ b/Bin/Debug/SuperDesign/SysDb/AutoComplete/editor.txt @@ -0,0 +1,164 @@ +div +head +html +body +plaintext +color +width +height +href +table +frame +colspan +rowspan +frameset +cols +rows +framespacing +frameborder +border +scrolling +title +align +bgcolor +cellspacing +cellpadding +password +hidden +textarea +style +font-size +text-decoration +underline +border-radius +important +font-family +opacity +padding-top +padding-bottom +margin +margin-top +margin-bottom +transform +static +relative +absolute +fixed +inherit +vertical-align +middle +background-color +line-height +background +text-align +overflow +solid +display +none +z-index +pointer +inline-block +strpos +submit +strstr +stristr +strrchr +substr +mb_substr +str_replace +str_irreplace +substr_replace +stripos +strrpos +strripos +strspn +strcspan +strlen +strcmp +strcasecmp +strnatcmp +strnatcasecmp +str_split +split +explode +implode +ltrim +rtrim +trim +strip_tags +strtolower +strtoupper +ucfirst +ucwords +addslashes +addcslashes +get_magic_quotes_gpc +stripslashes +array_merge +array_combine +array_slice +array_diff +array_intersect +array_search +array_splice +array_sum +array_key_exists +in_array +count +array_unique +array_rand +array_keys +array_values +array_flip +array_reverse +array_count_values +shuffle +array_shift +array_unshift +array_pop +array_push +quotemeta +similar_text +filesize +date_default_timezone_set +getdate +strtotime +echo +var_dump +var +return +public +private +protected +function +Exception +extends +throw +new +class +Operator +static +where +query +field +order +isset +fetch +foreach +fetch_array +intval +getcache +categorys +json_encode +json_decode +JSON_UNESCAPED_UNICODE +load_model +listinfo +base64_encode +base64_decode +string2array +set_model +mb_convert_encoding +mb_detect_encoding +file_put_contents +file_get_contents diff --git a/Bin/Debug/SuperDesign/SysDb/AutoComplete/post.txt b/Bin/Debug/SuperDesign/SysDb/AutoComplete/post.txt new file mode 100644 index 0000000..5b77a88 --- /dev/null +++ b/Bin/Debug/SuperDesign/SysDb/AutoComplete/post.txt @@ -0,0 +1,33 @@ +starttime +endtime +id +page +pagesize +filename +url +filesize +packageName +getall +realname +userid +username +nickname +title +name +catid +modelid +catids +method +siteid +site +cooperid +search_name +keyword +typelist +is_auto_update +package +keys +softname +hits +sort +type \ No newline at end of file diff --git a/Bin/Debug/SuperDesign/SysDb/Tools.dat b/Bin/Debug/SuperDesign/SysDb/Tools.dat index 4a4feea..119b563 100644 Binary files a/Bin/Debug/SuperDesign/SysDb/Tools.dat and b/Bin/Debug/SuperDesign/SysDb/Tools.dat differ diff --git a/Bin/Debug/SuperDesign/SysDb/layui/css/layui.css b/Bin/Debug/SuperDesign/SysDb/layui/css/layui.css new file mode 100644 index 0000000..c9b3c44 --- /dev/null +++ b/Bin/Debug/SuperDesign/SysDb/layui/css/layui.css @@ -0,0 +1 @@ +blockquote,body,button,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,input,li,ol,p,pre,td,textarea,th,ul{margin:0;padding:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}a:active,a:hover{outline:0}img{display:inline-block;border:none;vertical-align:middle}li{list-style:none}table{border-collapse:collapse;border-spacing:0}h1,h2,h3{font-weight:400}h4,h5,h6{font-size:100%;font-weight:400}button,input,select,textarea{font-size:100%}button,input,optgroup,option,select,textarea{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;outline:0}pre{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}body{line-height:1.6;color:#333;color:rgba(0,0,0,.85);font:14px Helvetica Neue,Helvetica,PingFang SC,Tahoma,Arial,sans-serif}hr{height:0;line-height:0;margin:10px 0;padding:0;border:none!important;border-bottom:1px solid #eee!important;clear:both;overflow:hidden;background:0 0}a{color:#333;text-decoration:none}a:hover{color:#777}a cite{font-style:normal;*cursor:pointer}.layui-border-box,.layui-border-box *{box-sizing:border-box}.layui-box,.layui-box *{box-sizing:content-box}.layui-clear{clear:both;*zoom:1}.layui-clear:after{content:'\20';clear:both;*zoom:1;display:block;height:0}.layui-inline{position:relative;display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.layui-edge{position:relative;display:inline-block;vertical-align:middle;width:0;height:0;border-width:6px;border-style:dashed;border-color:transparent;overflow:hidden}.layui-edge-top{top:-4px;border-bottom-color:#999;border-bottom-style:solid}.layui-edge-right{border-left-color:#999;border-left-style:solid}.layui-edge-bottom{top:2px;border-top-color:#999;border-top-style:solid}.layui-edge-left{border-right-color:#999;border-right-style:solid}.layui-elip{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-disabled,.layui-icon,.layui-unselect{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.layui-disabled,.layui-disabled:hover{color:#d2d2d2!important;cursor:not-allowed!important}.layui-circle{border-radius:100%}.layui-show{display:block!important}.layui-hide{display:none!important}.layui-show-v{visibility:visible!important}.layui-hide-v{visibility:hidden!important}@font-face{font-family:layui-icon;src:url(../font/iconfont.eot?v=256);src:url(../font/iconfont.eot?v=256#iefix) format('embedded-opentype'),url(../font/iconfont.woff2?v=256) format('woff2'),url(../font/iconfont.woff?v=256) format('woff'),url(../font/iconfont.ttf?v=256) format('truetype'),url(../font/iconfont.svg?v=256#layui-icon) format('svg')}.layui-icon{font-family:layui-icon!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.layui-icon-reply-fill:before{content:"\e611"}.layui-icon-set-fill:before{content:"\e614"}.layui-icon-menu-fill:before{content:"\e60f"}.layui-icon-search:before{content:"\e615"}.layui-icon-share:before{content:"\e641"}.layui-icon-set-sm:before{content:"\e620"}.layui-icon-engine:before{content:"\e628"}.layui-icon-close:before{content:"\1006"}.layui-icon-close-fill:before{content:"\1007"}.layui-icon-chart-screen:before{content:"\e629"}.layui-icon-star:before{content:"\e600"}.layui-icon-circle-dot:before{content:"\e617"}.layui-icon-chat:before{content:"\e606"}.layui-icon-release:before{content:"\e609"}.layui-icon-list:before{content:"\e60a"}.layui-icon-chart:before{content:"\e62c"}.layui-icon-ok-circle:before{content:"\1005"}.layui-icon-layim-theme:before{content:"\e61b"}.layui-icon-table:before{content:"\e62d"}.layui-icon-right:before{content:"\e602"}.layui-icon-left:before{content:"\e603"}.layui-icon-cart-simple:before{content:"\e698"}.layui-icon-face-cry:before{content:"\e69c"}.layui-icon-face-smile:before{content:"\e6af"}.layui-icon-survey:before{content:"\e6b2"}.layui-icon-tree:before{content:"\e62e"}.layui-icon-ie:before{content:"\e7bb"}.layui-icon-upload-circle:before{content:"\e62f"}.layui-icon-add-circle:before{content:"\e61f"}.layui-icon-download-circle:before{content:"\e601"}.layui-icon-templeate-1:before{content:"\e630"}.layui-icon-util:before{content:"\e631"}.layui-icon-face-surprised:before{content:"\e664"}.layui-icon-edit:before{content:"\e642"}.layui-icon-speaker:before{content:"\e645"}.layui-icon-down:before{content:"\e61a"}.layui-icon-file:before{content:"\e621"}.layui-icon-layouts:before{content:"\e632"}.layui-icon-rate-half:before{content:"\e6c9"}.layui-icon-add-circle-fine:before{content:"\e608"}.layui-icon-prev-circle:before{content:"\e633"}.layui-icon-read:before{content:"\e705"}.layui-icon-404:before{content:"\e61c"}.layui-icon-carousel:before{content:"\e634"}.layui-icon-help:before{content:"\e607"}.layui-icon-code-circle:before{content:"\e635"}.layui-icon-windows:before{content:"\e67f"}.layui-icon-water:before{content:"\e636"}.layui-icon-username:before{content:"\e66f"}.layui-icon-find-fill:before{content:"\e670"}.layui-icon-about:before{content:"\e60b"}.layui-icon-location:before{content:"\e715"}.layui-icon-up:before{content:"\e619"}.layui-icon-pause:before{content:"\e651"}.layui-icon-date:before{content:"\e637"}.layui-icon-layim-uploadfile:before{content:"\e61d"}.layui-icon-delete:before{content:"\e640"}.layui-icon-play:before{content:"\e652"}.layui-icon-top:before{content:"\e604"}.layui-icon-firefox:before{content:"\e686"}.layui-icon-friends:before{content:"\e612"}.layui-icon-refresh-3:before{content:"\e9aa"}.layui-icon-ok:before{content:"\e605"}.layui-icon-layer:before{content:"\e638"}.layui-icon-face-smile-fine:before{content:"\e60c"}.layui-icon-dollar:before{content:"\e659"}.layui-icon-group:before{content:"\e613"}.layui-icon-layim-download:before{content:"\e61e"}.layui-icon-picture-fine:before{content:"\e60d"}.layui-icon-link:before{content:"\e64c"}.layui-icon-diamond:before{content:"\e735"}.layui-icon-log:before{content:"\e60e"}.layui-icon-key:before{content:"\e683"}.layui-icon-rate-solid:before{content:"\e67a"}.layui-icon-fonts-del:before{content:"\e64f"}.layui-icon-unlink:before{content:"\e64d"}.layui-icon-fonts-clear:before{content:"\e639"}.layui-icon-triangle-r:before{content:"\e623"}.layui-icon-circle:before{content:"\e63f"}.layui-icon-radio:before{content:"\e643"}.layui-icon-align-center:before{content:"\e647"}.layui-icon-align-right:before{content:"\e648"}.layui-icon-align-left:before{content:"\e649"}.layui-icon-loading-1:before{content:"\e63e"}.layui-icon-return:before{content:"\e65c"}.layui-icon-fonts-strong:before{content:"\e62b"}.layui-icon-upload:before{content:"\e67c"}.layui-icon-dialogue:before{content:"\e63a"}.layui-icon-video:before{content:"\e6ed"}.layui-icon-headset:before{content:"\e6fc"}.layui-icon-cellphone-fine:before{content:"\e63b"}.layui-icon-add-1:before{content:"\e654"}.layui-icon-face-smile-b:before{content:"\e650"}.layui-icon-fonts-html:before{content:"\e64b"}.layui-icon-screen-full:before{content:"\e622"}.layui-icon-form:before{content:"\e63c"}.layui-icon-cart:before{content:"\e657"}.layui-icon-camera-fill:before{content:"\e65d"}.layui-icon-tabs:before{content:"\e62a"}.layui-icon-heart-fill:before{content:"\e68f"}.layui-icon-fonts-code:before{content:"\e64e"}.layui-icon-ios:before{content:"\e680"}.layui-icon-at:before{content:"\e687"}.layui-icon-fire:before{content:"\e756"}.layui-icon-set:before{content:"\e716"}.layui-icon-fonts-u:before{content:"\e646"}.layui-icon-triangle-d:before{content:"\e625"}.layui-icon-tips:before{content:"\e702"}.layui-icon-picture:before{content:"\e64a"}.layui-icon-more-vertical:before{content:"\e671"}.layui-icon-bluetooth:before{content:"\e689"}.layui-icon-flag:before{content:"\e66c"}.layui-icon-loading:before{content:"\e63d"}.layui-icon-fonts-i:before{content:"\e644"}.layui-icon-refresh-1:before{content:"\e666"}.layui-icon-rmb:before{content:"\e65e"}.layui-icon-addition:before{content:"\e624"}.layui-icon-home:before{content:"\e68e"}.layui-icon-time:before{content:"\e68d"}.layui-icon-user:before{content:"\e770"}.layui-icon-notice:before{content:"\e667"}.layui-icon-chrome:before{content:"\e68a"}.layui-icon-edge:before{content:"\e68b"}.layui-icon-login-weibo:before{content:"\e675"}.layui-icon-voice:before{content:"\e688"}.layui-icon-upload-drag:before{content:"\e681"}.layui-icon-login-qq:before{content:"\e676"}.layui-icon-snowflake:before{content:"\e6b1"}.layui-icon-heart:before{content:"\e68c"}.layui-icon-logout:before{content:"\e682"}.layui-icon-file-b:before{content:"\e655"}.layui-icon-template:before{content:"\e663"}.layui-icon-transfer:before{content:"\e691"}.layui-icon-auz:before{content:"\e672"}.layui-icon-console:before{content:"\e665"}.layui-icon-app:before{content:"\e653"}.layui-icon-prev:before{content:"\e65a"}.layui-icon-website:before{content:"\e7ae"}.layui-icon-next:before{content:"\e65b"}.layui-icon-component:before{content:"\e857"}.layui-icon-android:before{content:"\e684"}.layui-icon-more:before{content:"\e65f"}.layui-icon-login-wechat:before{content:"\e677"}.layui-icon-shrink-right:before{content:"\e668"}.layui-icon-spread-left:before{content:"\e66b"}.layui-icon-camera:before{content:"\e660"}.layui-icon-note:before{content:"\e66e"}.layui-icon-refresh:before{content:"\e669"}.layui-icon-female:before{content:"\e661"}.layui-icon-male:before{content:"\e662"}.layui-icon-screen-restore:before{content:"\e758"}.layui-icon-password:before{content:"\e673"}.layui-icon-senior:before{content:"\e674"}.layui-icon-theme:before{content:"\e66a"}.layui-icon-tread:before{content:"\e6c5"}.layui-icon-praise:before{content:"\e6c6"}.layui-icon-star-fill:before{content:"\e658"}.layui-icon-rate:before{content:"\e67b"}.layui-icon-template-1:before{content:"\e656"}.layui-icon-vercode:before{content:"\e679"}.layui-icon-service:before{content:"\e626"}.layui-icon-cellphone:before{content:"\e678"}.layui-icon-print:before{content:"\e66d"}.layui-icon-cols:before{content:"\e610"}.layui-icon-wifi:before{content:"\e7e0"}.layui-icon-export:before{content:"\e67d"}.layui-icon-rss:before{content:"\e808"}.layui-icon-slider:before{content:"\e714"}.layui-icon-email:before{content:"\e618"}.layui-icon-subtraction:before{content:"\e67e"}.layui-icon-mike:before{content:"\e6dc"}.layui-icon-light:before{content:"\e748"}.layui-icon-gift:before{content:"\e627"}.layui-icon-mute:before{content:"\e685"}.layui-icon-reduce-circle:before{content:"\e616"}.layui-icon-music:before{content:"\e690"}.layui-main{position:relative;width:1160px;margin:0 auto}.layui-header{position:relative;z-index:1000;height:60px}.layui-header a:hover{transition:all .5s;-webkit-transition:all .5s}.layui-side{position:fixed;left:0;top:0;bottom:0;z-index:999;width:200px;overflow-x:hidden}.layui-side-scroll{position:relative;width:220px;height:100%;overflow-x:hidden}.layui-body{position:relative;left:200px;right:0;top:0;bottom:0;z-index:900;width:auto;box-sizing:border-box}.layui-layout-body{overflow-x:hidden}.layui-layout-admin .layui-header{position:fixed;top:0;left:0;right:0;background-color:#23262e}.layui-layout-admin .layui-side{top:60px;width:200px;overflow-x:hidden}.layui-layout-admin .layui-body{position:absolute;top:60px;padding-bottom:44px}.layui-layout-admin .layui-main{width:auto;margin:0 15px}.layui-layout-admin .layui-footer{position:fixed;left:200px;right:0;bottom:0;z-index:990;height:44px;line-height:44px;padding:0 15px;box-shadow:-1px 0 4px rgb(0 0 0 / 12%);background-color:#fafafa}.layui-layout-admin .layui-logo{position:absolute;left:0;top:0;width:200px;height:100%;line-height:60px;text-align:center;color:#009688;font-size:16px;box-shadow:0 1px 2px 0 rgb(0 0 0 / 15%)}.layui-layout-admin .layui-header .layui-nav{background:0 0}.layui-layout-left{position:absolute!important;left:200px;top:0}.layui-layout-right{position:absolute!important;right:0;top:0}.layui-container{position:relative;margin:0 auto;box-sizing:border-box}.layui-fluid{position:relative;margin:0 auto;padding:0 15px}.layui-row:after,.layui-row:before{content:"";display:block;clear:both}.layui-col-lg1,.layui-col-lg10,.layui-col-lg11,.layui-col-lg12,.layui-col-lg2,.layui-col-lg3,.layui-col-lg4,.layui-col-lg5,.layui-col-lg6,.layui-col-lg7,.layui-col-lg8,.layui-col-lg9,.layui-col-md1,.layui-col-md10,.layui-col-md11,.layui-col-md12,.layui-col-md2,.layui-col-md3,.layui-col-md4,.layui-col-md5,.layui-col-md6,.layui-col-md7,.layui-col-md8,.layui-col-md9,.layui-col-sm1,.layui-col-sm10,.layui-col-sm11,.layui-col-sm12,.layui-col-sm2,.layui-col-sm3,.layui-col-sm4,.layui-col-sm5,.layui-col-sm6,.layui-col-sm7,.layui-col-sm8,.layui-col-sm9,.layui-col-xs1,.layui-col-xs10,.layui-col-xs11,.layui-col-xs12,.layui-col-xs2,.layui-col-xs3,.layui-col-xs4,.layui-col-xs5,.layui-col-xs6,.layui-col-xs7,.layui-col-xs8,.layui-col-xs9{position:relative;display:block;box-sizing:border-box}.layui-col-xs1,.layui-col-xs10,.layui-col-xs11,.layui-col-xs12,.layui-col-xs2,.layui-col-xs3,.layui-col-xs4,.layui-col-xs5,.layui-col-xs6,.layui-col-xs7,.layui-col-xs8,.layui-col-xs9{float:left}.layui-col-xs1{width:8.33333333%}.layui-col-xs2{width:16.66666667%}.layui-col-xs3{width:25%}.layui-col-xs4{width:33.33333333%}.layui-col-xs5{width:41.66666667%}.layui-col-xs6{width:50%}.layui-col-xs7{width:58.33333333%}.layui-col-xs8{width:66.66666667%}.layui-col-xs9{width:75%}.layui-col-xs10{width:83.33333333%}.layui-col-xs11{width:91.66666667%}.layui-col-xs12{width:100%}.layui-col-xs-offset1{margin-left:8.33333333%}.layui-col-xs-offset2{margin-left:16.66666667%}.layui-col-xs-offset3{margin-left:25%}.layui-col-xs-offset4{margin-left:33.33333333%}.layui-col-xs-offset5{margin-left:41.66666667%}.layui-col-xs-offset6{margin-left:50%}.layui-col-xs-offset7{margin-left:58.33333333%}.layui-col-xs-offset8{margin-left:66.66666667%}.layui-col-xs-offset9{margin-left:75%}.layui-col-xs-offset10{margin-left:83.33333333%}.layui-col-xs-offset11{margin-left:91.66666667%}.layui-col-xs-offset12{margin-left:100%}@media screen and (max-width:767.98px){.layui-container{padding:0 15px}.layui-hide-xs{display:none!important}.layui-show-xs-block{display:block!important}.layui-show-xs-inline{display:inline!important}.layui-show-xs-inline-block{display:inline-block!important}}@media screen and (min-width:768px){.layui-container{width:720px}.layui-hide-sm{display:none!important}.layui-show-sm-block{display:block!important}.layui-show-sm-inline{display:inline!important}.layui-show-sm-inline-block{display:inline-block!important}.layui-col-sm1,.layui-col-sm10,.layui-col-sm11,.layui-col-sm12,.layui-col-sm2,.layui-col-sm3,.layui-col-sm4,.layui-col-sm5,.layui-col-sm6,.layui-col-sm7,.layui-col-sm8,.layui-col-sm9{float:left}.layui-col-sm1{width:8.33333333%}.layui-col-sm2{width:16.66666667%}.layui-col-sm3{width:25%}.layui-col-sm4{width:33.33333333%}.layui-col-sm5{width:41.66666667%}.layui-col-sm6{width:50%}.layui-col-sm7{width:58.33333333%}.layui-col-sm8{width:66.66666667%}.layui-col-sm9{width:75%}.layui-col-sm10{width:83.33333333%}.layui-col-sm11{width:91.66666667%}.layui-col-sm12{width:100%}.layui-col-sm-offset1{margin-left:8.33333333%}.layui-col-sm-offset2{margin-left:16.66666667%}.layui-col-sm-offset3{margin-left:25%}.layui-col-sm-offset4{margin-left:33.33333333%}.layui-col-sm-offset5{margin-left:41.66666667%}.layui-col-sm-offset6{margin-left:50%}.layui-col-sm-offset7{margin-left:58.33333333%}.layui-col-sm-offset8{margin-left:66.66666667%}.layui-col-sm-offset9{margin-left:75%}.layui-col-sm-offset10{margin-left:83.33333333%}.layui-col-sm-offset11{margin-left:91.66666667%}.layui-col-sm-offset12{margin-left:100%}}@media screen and (min-width:992px){.layui-container{width:960px}.layui-hide-md{display:none!important}.layui-show-md-block{display:block!important}.layui-show-md-inline{display:inline!important}.layui-show-md-inline-block{display:inline-block!important}.layui-col-md1,.layui-col-md10,.layui-col-md11,.layui-col-md12,.layui-col-md2,.layui-col-md3,.layui-col-md4,.layui-col-md5,.layui-col-md6,.layui-col-md7,.layui-col-md8,.layui-col-md9{float:left}.layui-col-md1{width:8.33333333%}.layui-col-md2{width:16.66666667%}.layui-col-md3{width:25%}.layui-col-md4{width:33.33333333%}.layui-col-md5{width:41.66666667%}.layui-col-md6{width:50%}.layui-col-md7{width:58.33333333%}.layui-col-md8{width:66.66666667%}.layui-col-md9{width:75%}.layui-col-md10{width:83.33333333%}.layui-col-md11{width:91.66666667%}.layui-col-md12{width:100%}.layui-col-md-offset1{margin-left:8.33333333%}.layui-col-md-offset2{margin-left:16.66666667%}.layui-col-md-offset3{margin-left:25%}.layui-col-md-offset4{margin-left:33.33333333%}.layui-col-md-offset5{margin-left:41.66666667%}.layui-col-md-offset6{margin-left:50%}.layui-col-md-offset7{margin-left:58.33333333%}.layui-col-md-offset8{margin-left:66.66666667%}.layui-col-md-offset9{margin-left:75%}.layui-col-md-offset10{margin-left:83.33333333%}.layui-col-md-offset11{margin-left:91.66666667%}.layui-col-md-offset12{margin-left:100%}}@media screen and (min-width:1200px){.layui-container{width:1150px}.layui-hide-lg{display:none!important}.layui-show-lg-block{display:block!important}.layui-show-lg-inline{display:inline!important}.layui-show-lg-inline-block{display:inline-block!important}.layui-col-lg1,.layui-col-lg10,.layui-col-lg11,.layui-col-lg12,.layui-col-lg2,.layui-col-lg3,.layui-col-lg4,.layui-col-lg5,.layui-col-lg6,.layui-col-lg7,.layui-col-lg8,.layui-col-lg9{float:left}.layui-col-lg1{width:8.33333333%}.layui-col-lg2{width:16.66666667%}.layui-col-lg3{width:25%}.layui-col-lg4{width:33.33333333%}.layui-col-lg5{width:41.66666667%}.layui-col-lg6{width:50%}.layui-col-lg7{width:58.33333333%}.layui-col-lg8{width:66.66666667%}.layui-col-lg9{width:75%}.layui-col-lg10{width:83.33333333%}.layui-col-lg11{width:91.66666667%}.layui-col-lg12{width:100%}.layui-col-lg-offset1{margin-left:8.33333333%}.layui-col-lg-offset2{margin-left:16.66666667%}.layui-col-lg-offset3{margin-left:25%}.layui-col-lg-offset4{margin-left:33.33333333%}.layui-col-lg-offset5{margin-left:41.66666667%}.layui-col-lg-offset6{margin-left:50%}.layui-col-lg-offset7{margin-left:58.33333333%}.layui-col-lg-offset8{margin-left:66.66666667%}.layui-col-lg-offset9{margin-left:75%}.layui-col-lg-offset10{margin-left:83.33333333%}.layui-col-lg-offset11{margin-left:91.66666667%}.layui-col-lg-offset12{margin-left:100%}}.layui-col-space1{margin:-.5px}.layui-col-space1>*{padding:.5px}.layui-col-space2{margin:-1px}.layui-col-space2>*{padding:1px}.layui-col-space4{margin:-2px}.layui-col-space4>*{padding:2px}.layui-col-space5{margin:-2.5px}.layui-col-space5>*{padding:2.5px}.layui-col-space6{margin:-3px}.layui-col-space6>*{padding:3px}.layui-col-space8{margin:-4px}.layui-col-space8>*{padding:4px}.layui-col-space10{margin:-5px}.layui-col-space10>*{padding:5px}.layui-col-space12{margin:-6px}.layui-col-space12>*{padding:6px}.layui-col-space14{margin:-7px}.layui-col-space14>*{padding:7px}.layui-col-space15{margin:-7.5px}.layui-col-space15>*{padding:7.5px}.layui-col-space16{margin:-8px}.layui-col-space16>*{padding:8px}.layui-col-space18{margin:-9px}.layui-col-space18>*{padding:9px}.layui-col-space20{margin:-10px}.layui-col-space20>*{padding:10px}.layui-col-space22{margin:-11px}.layui-col-space22>*{padding:11px}.layui-col-space24{margin:-12px}.layui-col-space24>*{padding:12px}.layui-col-space25{margin:-12.5px}.layui-col-space25>*{padding:12.5px}.layui-col-space26{margin:-13px}.layui-col-space26>*{padding:13px}.layui-col-space28{margin:-14px}.layui-col-space28>*{padding:14px}.layui-col-space30{margin:-15px}.layui-col-space30>*{padding:15px}.layui-btn,.layui-input,.layui-select,.layui-textarea,.layui-upload-button{outline:0;-webkit-appearance:none;transition:all .3s;-webkit-transition:all .3s;box-sizing:border-box}.layui-elem-quote{margin-bottom:10px;padding:15px;line-height:1.6;border-left:5px solid #5fb878;border-radius:0 2px 2px 0;background-color:#fafafa}.layui-quote-nm{border-style:solid;border-width:1px;border-left-width:5px;background:0 0}.layui-elem-field{margin-bottom:10px;padding:0;border-width:1px;border-style:solid}.layui-elem-field legend{margin-left:20px;padding:0 10px;font-size:20px;font-weight:300}.layui-field-title{margin:10px 0 20px;border-width:0;border-top-width:1px}.layui-field-box{padding:15px}.layui-field-title .layui-field-box{padding:10px 0}.layui-progress{position:relative;height:6px;border-radius:20px;background-color:#eee}.layui-progress-bar{position:absolute;left:0;top:0;width:0;max-width:100%;height:6px;border-radius:20px;text-align:right;background-color:#5fb878;transition:all .3s;-webkit-transition:all .3s}.layui-progress-big,.layui-progress-big .layui-progress-bar{height:18px;line-height:18px}.layui-progress-text{position:relative;top:-20px;line-height:18px;font-size:12px;color:#5f5f5f}.layui-progress-big .layui-progress-text{position:static;padding:0 10px;color:#fff}.layui-collapse{border-width:1px;border-style:solid;border-radius:2px}.layui-colla-content,.layui-colla-item{border-top-width:1px;border-top-style:solid}.layui-colla-item:first-child{border-top:none}.layui-colla-title{position:relative;height:42px;line-height:42px;padding:0 15px 0 35px;color:#333;background-color:#fafafa;cursor:pointer;font-size:14px;overflow:hidden}.layui-colla-content{display:none;padding:10px 15px;line-height:1.6;color:#5f5f5f}.layui-colla-icon{position:absolute;left:15px;top:0;font-size:14px}.layui-card{margin-bottom:15px;border-radius:2px;background-color:#fff;box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.layui-card:last-child{margin-bottom:0}.layui-card-header{position:relative;height:42px;line-height:42px;padding:0 15px;border-bottom:1px solid #f6f6f6;color:#333;border-radius:2px 2px 0 0;font-size:14px}.layui-card-body{position:relative;padding:10px 15px;line-height:24px}.layui-card-body[pad15]{padding:15px}.layui-card-body[pad20]{padding:20px}.layui-card-body .layui-table{margin:5px 0}.layui-card .layui-tab{margin:0}.layui-panel{position:relative;border-width:1px;border-style:solid;border-radius:2px;box-shadow:1px 1px 4px rgb(0 0 0 / 8%);background-color:#fff;color:#5f5f5f}.layui-panel-window{position:relative;padding:15px;border-radius:0;border-top:5px solid #eee;background-color:#fff}.layui-auxiliar-moving{position:fixed;left:0;right:0;top:0;bottom:0;width:100%;height:100%;background:0 0;z-index:9999999999}.layui-bg-red{background-color:#ff5722!important;color:#fff!important}.layui-bg-orange{background-color:#ffb800!important;color:#fff!important}.layui-bg-green{background-color:#009688!important;color:#fff!important}.layui-bg-cyan{background-color:#2f4056!important;color:#fff!important}.layui-bg-blue{background-color:#1e9fff!important;color:#fff!important}.layui-bg-black{background-color:#393d49!important;color:#fff!important}.layui-bg-gray{background-color:#fafafa!important;color:#5f5f5f!important}.layui-badge-rim,.layui-border,.layui-colla-content,.layui-colla-item,.layui-collapse,.layui-elem-field,.layui-form-pane .layui-form-item[pane],.layui-form-pane .layui-form-label,.layui-input,.layui-layedit,.layui-layedit-tool,.layui-panel,.layui-quote-nm,.layui-select,.layui-tab-bar,.layui-tab-card,.layui-tab-title,.layui-tab-title .layui-this:after,.layui-textarea{border-color:#eee}.layui-border{border-width:1px;border-style:solid;color:#5f5f5f!important}.layui-border-red{border-width:1px;border-style:solid;border-color:#ff5722!important;color:#ff5722!important}.layui-border-orange{border-width:1px;border-style:solid;border-color:#ffb800!important;color:#ffb800!important}.layui-border-green{border-width:1px;border-style:solid;border-color:#009688!important;color:#009688!important}.layui-border-cyan{border-width:1px;border-style:solid;border-color:#2f4056!important;color:#2f4056!important}.layui-border-blue{border-width:1px;border-style:solid;border-color:#1e9fff!important;color:#1e9fff!important}.layui-border-black{border-width:1px;border-style:solid;border-color:#393d49!important;color:#393d49!important}.layui-timeline-item:before{background-color:#eee}.layui-text{line-height:1.6;font-size:14px;color:#5f5f5f}.layui-text h1,.layui-text h2,.layui-text h3,.layui-text h4,.layui-text h5,.layui-text h6{font-weight:500;color:#333}.layui-text h1{font-size:32px}.layui-text h2{font-size:24px}.layui-text h3{font-size:18px}.layui-text h4{font-size:16px}.layui-text h5{font-size:14px}.layui-text h6{font-size:13px}.layui-text a:not(.layui-btn){color:#01aaed}.layui-text a:not(.layui-btn):hover{text-decoration:underline}.layui-text ol,.layui-text ul{padding:5px 0 5px 15px}.layui-text ul li{margin-top:5px;list-style-type:disc}.layui-text ol li{margin-top:5px;list-style-type:decimal}.layui-text em,.layui-word-aux{color:#999!important;padding-left:5px!important;padding-right:5px!important}.layui-text p{margin:15px 0}.layui-text p:first-child{margin-top:0}.layui-text p:last-child{margin-bottom:0}.layui-text blockquote:not(.layui-elem-quote){padding:5px 15px;border-left:5px solid #eee}.layui-text pre:not(.layui-code){padding:15px;font-family:Lucida Console,Consolas,Courier New;background-color:#fafafa}.layui-font-12{font-size:12px!important}.layui-font-14{font-size:14px!important}.layui-font-16{font-size:16px!important}.layui-font-18{font-size:18px!important}.layui-font-20{font-size:20px!important}.layui-font-red{color:#ff5722!important}.layui-font-orange{color:#ffb800!important}.layui-font-green{color:#009688!important}.layui-font-cyan{color:#2f4056!important}.layui-font-blue{color:#01aaed!important}.layui-font-black{color:#000!important}.layui-font-gray{color:#c2c2c2!important}.layui-btn{display:inline-block;vertical-align:middle;height:38px;line-height:38px;border:1px solid transparent;padding:0 18px;background-color:#009688;color:#fff;white-space:nowrap;text-align:center;font-size:14px;border-radius:2px;cursor:pointer;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.layui-btn:hover{opacity:.8;filter:alpha(opacity=80);color:#fff}.layui-btn:active{opacity:1;filter:alpha(opacity=100)}.layui-btn+.layui-btn{margin-left:10px}.layui-btn-container{font-size:0}.layui-btn-container .layui-btn{margin-right:10px;margin-bottom:10px}.layui-btn-container .layui-btn+.layui-btn{margin-left:0}.layui-table .layui-btn-container .layui-btn{margin-bottom:9px}.layui-btn-radius{border-radius:100px}.layui-btn .layui-icon{padding:0 2px;vertical-align:middle\0;vertical-align:bottom}.layui-btn-primary{border-color:#d2d2d2;background:0 0;color:#5f5f5f}.layui-btn-primary:hover{border-color:#009688;color:#333}.layui-btn-normal{background-color:#1e9fff}.layui-btn-warm{background-color:#ffb800}.layui-btn-danger{background-color:#ff5722}.layui-btn-checked{background-color:#5fb878}.layui-btn-disabled,.layui-btn-disabled:active,.layui-btn-disabled:hover{border-color:#eee!important;background-color:#fbfbfb!important;color:#d2d2d2!important;cursor:not-allowed!important;opacity:1}.layui-btn-lg{height:44px;line-height:44px;padding:0 25px;font-size:16px}.layui-btn-sm{height:30px;line-height:30px;padding:0 10px;font-size:12px}.layui-btn-xs{height:22px;line-height:22px;padding:0 5px;font-size:12px}.layui-btn-xs i{font-size:12px!important}.layui-btn-group{display:inline-block;vertical-align:middle;font-size:0}.layui-btn-group .layui-btn{margin-left:0!important;margin-right:0!important;border-left:1px solid rgba(255,255,255,.5);border-radius:0}.layui-btn-group .layui-btn-primary{border-left:none}.layui-btn-group .layui-btn-primary:hover{border-color:#d2d2d2;color:#009688}.layui-btn-group .layui-btn:first-child{border-left:none;border-radius:2px 0 0 2px}.layui-btn-group .layui-btn-primary:first-child{border-left:1px solid #d2d2d2}.layui-btn-group .layui-btn:last-child{border-radius:0 2px 2px 0}.layui-btn-group .layui-btn+.layui-btn{margin-left:0}.layui-btn-group+.layui-btn-group{margin-left:10px}.layui-btn-fluid{width:100%}.layui-input,.layui-select,.layui-textarea{height:38px;line-height:1.3;line-height:38px\9;border-width:1px;border-style:solid;background-color:#fff;color:rgba(0,0,0,.85);border-radius:2px}.layui-input::-webkit-input-placeholder,.layui-select::-webkit-input-placeholder,.layui-textarea::-webkit-input-placeholder{line-height:1.3}.layui-input,.layui-textarea{display:block;width:100%;padding-left:10px}.layui-input:hover,.layui-textarea:hover{border-color:#eee!important}.layui-input:focus,.layui-textarea:focus{border-color:#d2d2d2!important}.layui-textarea{position:relative;min-height:100px;height:auto;line-height:20px;padding:6px 10px;resize:vertical}.layui-select{padding:0 10px}.layui-form input[type=checkbox],.layui-form input[type=radio],.layui-form select{display:none}.layui-form [lay-ignore]{display:initial}.layui-form-item{margin-bottom:15px;clear:both;*zoom:1}.layui-form-item:after{content:'\20';clear:both;*zoom:1;display:block;height:0}.layui-form-label{position:relative;float:left;display:block;padding:9px 15px;width:80px;font-weight:400;line-height:20px;text-align:right}.layui-form-label-col{display:block;float:none;padding:9px 0;line-height:20px;text-align:left}.layui-form-item .layui-inline{margin-bottom:5px;margin-right:10px}.layui-input-block,.layui-input-inline{position:relative}.layui-input-block{margin-left:110px;min-height:36px}.layui-input-inline{display:inline-block;vertical-align:middle}.layui-form-item .layui-input-inline{float:left;width:190px;margin-right:10px}.layui-form-text .layui-input-inline{width:auto}.layui-form-mid{position:relative;float:left;display:block;padding:9px 0!important;line-height:20px;margin-right:10px}.layui-form-danger+.layui-form-select .layui-input,.layui-form-danger:focus{border-color:#ff5722!important}.layui-form-select{position:relative}.layui-form-select .layui-input{padding-right:30px;cursor:pointer}.layui-form-select .layui-edge{position:absolute;right:10px;top:50%;margin-top:-3px;cursor:pointer;border-width:6px;border-top-color:#c2c2c2;border-top-style:solid;transition:all .3s;-webkit-transition:all .3s}.layui-form-select dl{display:none;position:absolute;left:0;top:42px;padding:5px 0;z-index:899;min-width:100%;border:1px solid #eee;max-height:300px;overflow-y:auto;background-color:#fff;border-radius:2px;box-shadow:1px 1px 4px rgb(0 0 0 / 8%);box-sizing:border-box}.layui-form-select dl dd,.layui-form-select dl dt{padding:0 10px;line-height:36px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layui-form-select dl dt{font-size:12px;color:#999}.layui-form-select dl dd{cursor:pointer}.layui-form-select dl dd:hover{background-color:#f6f6f6;-webkit-transition:.5s all;transition:.5s all}.layui-form-select .layui-select-group dd{padding-left:20px}.layui-form-select dl dd.layui-select-tips{padding-left:10px!important;color:#999}.layui-form-select dl dd.layui-this{background-color:#5fb878;color:#fff}.layui-form-select dl dd.layui-disabled{background-color:#fff}.layui-form-selected dl{display:block}.layui-form-selected .layui-edge{margin-top:-9px;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.layui-form-selected .layui-edge{margin-top:-3px\0}:root .layui-form-selected .layui-edge{margin-top:-9px\0/IE9}.layui-form-selectup dl{top:auto;bottom:42px}.layui-select-none{margin:5px 0;text-align:center;color:#999}.layui-select-disabled .layui-disabled{border-color:#eee!important}.layui-select-disabled .layui-edge{border-top-color:#d2d2d2}.layui-form-checkbox{position:relative;display:inline-block;vertical-align:middle;height:30px;line-height:30px;margin-right:10px;padding-right:30px;background-color:#fff;cursor:pointer;font-size:0;-webkit-transition:.1s linear;transition:.1s linear;box-sizing:border-box}.layui-form-checkbox *{display:inline-block;vertical-align:middle}.layui-form-checkbox span{padding:0 10px;height:100%;font-size:14px;border-radius:2px 0 0 2px;background-color:#d2d2d2;color:#fff;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.layui-form-checkbox:hover span{background-color:#c2c2c2}.layui-form-checkbox i{position:absolute;right:0;top:0;width:30px;height:28px;border:1px solid #d2d2d2;border-left:none;border-radius:0 2px 2px 0;color:#fff;font-size:20px;text-align:center}.layui-form-checkbox:hover i{border-color:#c2c2c2;color:#c2c2c2}.layui-form-checked,.layui-form-checked:hover{border-color:#5fb878}.layui-form-checked span,.layui-form-checked:hover span{background-color:#5fb878}.layui-form-checked i,.layui-form-checked:hover i{color:#5fb878}.layui-form-item .layui-form-checkbox{margin-top:4px}.layui-form-checkbox[lay-skin=primary]{height:auto!important;line-height:normal!important;min-width:18px;min-height:18px;border:none!important;margin-right:0;padding-left:28px;padding-right:0;background:0 0}.layui-form-checkbox[lay-skin=primary] span{padding-left:0;padding-right:15px;line-height:18px;background:0 0;color:#5f5f5f}.layui-form-checkbox[lay-skin=primary] i{right:auto;left:0;width:16px;height:16px;line-height:16px;border:1px solid #d2d2d2;font-size:12px;border-radius:2px;background-color:#fff;-webkit-transition:.1s linear;transition:.1s linear}.layui-form-checkbox[lay-skin=primary]:hover i{border-color:#5fb878;color:#fff}.layui-form-checked[lay-skin=primary] i{border-color:#5fb878!important;background-color:#5fb878;color:#fff}.layui-checkbox-disabled[lay-skin=primary] span{background:0 0!important;color:#c2c2c2!important}.layui-form-checked.layui-checkbox-disabled[lay-skin=primary] i{background:#eee!important;border-color:#eee!important}.layui-checkbox-disabled[lay-skin=primary]:hover i{border-color:#d2d2d2}.layui-form-item .layui-form-checkbox[lay-skin=primary]{margin-top:10px}.layui-form-switch{position:relative;display:inline-block;vertical-align:middle;height:22px;line-height:22px;min-width:35px;padding:0 5px;margin-top:8px;border:1px solid #d2d2d2;border-radius:20px;cursor:pointer;background-color:#fff;-webkit-transition:.1s linear;transition:.1s linear}.layui-form-switch i{position:absolute;left:5px;top:3px;width:16px;height:16px;border-radius:20px;background-color:#d2d2d2;-webkit-transition:.1s linear;transition:.1s linear}.layui-form-switch em{position:relative;top:0;width:25px;margin-left:21px;padding:0!important;text-align:center!important;color:#999!important;font-style:normal!important;font-size:12px}.layui-form-onswitch{border-color:#5fb878;background-color:#5fb878}.layui-form-onswitch i{left:100%;margin-left:-21px;background-color:#fff}.layui-form-onswitch em{margin-left:5px;margin-right:21px;color:#fff!important}.layui-checkbox-disabled{border-color:#eee!important}.layui-checkbox-disabled span{background-color:#eee!important}.layui-checkbox-disabled i{border-color:#eee!important}.layui-checkbox-disabled em{color:#d2d2d2!important}.layui-checkbox-disabled:hover i{color:#fff!important}[lay-radio]{display:none}.layui-form-radio{display:inline-block;vertical-align:middle;line-height:28px;margin:6px 10px 0 0;padding-right:10px;cursor:pointer;font-size:0}.layui-form-radio *{display:inline-block;vertical-align:middle;font-size:14px}.layui-form-radio>i{margin-right:8px;font-size:22px;color:#c2c2c2}.layui-form-radio:hover *,.layui-form-radioed,.layui-form-radioed>i{color:#5fb878}.layui-radio-disabled>i{color:#eee!important}.layui-radio-disabled *{color:#c2c2c2!important}.layui-form-pane .layui-form-label{width:110px;padding:8px 15px;height:38px;line-height:20px;border-width:1px;border-style:solid;border-radius:2px 0 0 2px;text-align:center;background-color:#fafafa;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;box-sizing:border-box}.layui-form-pane .layui-input-inline{margin-left:-1px}.layui-form-pane .layui-input-block{margin-left:110px;left:-1px}.layui-form-pane .layui-input{border-radius:0 2px 2px 0}.layui-form-pane .layui-form-text .layui-form-label{float:none;width:100%;border-radius:2px;box-sizing:border-box;text-align:left}.layui-form-pane .layui-form-text .layui-input-inline{display:block;margin:0;top:-1px;clear:both}.layui-form-pane .layui-form-text .layui-input-block{margin:0;left:0;top:-1px}.layui-form-pane .layui-form-text .layui-textarea{min-height:100px;border-radius:0 0 2px 2px}.layui-form-pane .layui-form-checkbox{margin:4px 0 4px 10px}.layui-form-pane .layui-form-radio,.layui-form-pane .layui-form-switch{margin-top:6px;margin-left:10px}.layui-form-pane .layui-form-item[pane]{position:relative;border-width:1px;border-style:solid}.layui-form-pane .layui-form-item[pane] .layui-form-label{position:absolute;left:0;top:0;height:100%;border-width:0;border-right-width:1px}.layui-form-pane .layui-form-item[pane] .layui-input-inline{margin-left:110px}@media screen and (max-width:450px){.layui-form-item .layui-form-label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-form-item .layui-inline{display:block;margin-right:0;margin-bottom:20px;clear:both}.layui-form-item .layui-inline:after{content:'\20';clear:both;display:block;height:0}.layui-form-item .layui-input-inline{display:block;float:none;left:-3px;width:auto!important;margin:0 0 10px 112px}.layui-form-item .layui-input-inline+.layui-form-mid{margin-left:110px;top:-5px;padding:0}.layui-form-item .layui-form-checkbox{margin-right:5px;margin-bottom:5px}}.layui-layedit{border-width:1px;border-style:solid;border-radius:2px}.layui-layedit-tool{padding:3px 5px;border-bottom-width:1px;border-bottom-style:solid;font-size:0}.layedit-tool-fixed{position:fixed;top:0;border-top:1px solid #eee}.layui-layedit-tool .layedit-tool-mid,.layui-layedit-tool .layui-icon{display:inline-block;vertical-align:middle;text-align:center;font-size:14px}.layui-layedit-tool .layui-icon{position:relative;width:32px;height:30px;line-height:30px;margin:3px 5px;border-radius:2px;color:#777;cursor:pointer;border-radius:2px}.layui-layedit-tool .layui-icon:hover{color:#393d49}.layui-layedit-tool .layui-icon:active{color:#000}.layui-layedit-tool .layedit-tool-active{background-color:#eee;color:#000}.layui-layedit-tool .layui-disabled,.layui-layedit-tool .layui-disabled:hover{color:#d2d2d2;cursor:not-allowed}.layui-layedit-tool .layedit-tool-mid{width:1px;height:18px;margin:0 10px;background-color:#d2d2d2}.layedit-tool-html{width:50px!important;font-size:30px!important}.layedit-tool-b,.layedit-tool-code,.layedit-tool-help{font-size:16px!important}.layedit-tool-d,.layedit-tool-face,.layedit-tool-image,.layedit-tool-unlink{font-size:18px!important}.layedit-tool-image input{position:absolute;font-size:0;left:0;top:0;width:100%;height:100%;opacity:.01;filter:Alpha(opacity=1);cursor:pointer}.layui-layedit-iframe iframe{display:block;width:100%}#LAY_layedit_code{overflow:hidden}.layui-laypage{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;margin:10px 0;font-size:0}.layui-laypage>a:first-child,.layui-laypage>a:first-child em{border-radius:2px 0 0 2px}.layui-laypage>a:last-child,.layui-laypage>a:last-child em{border-radius:0 2px 2px 0}.layui-laypage>:first-child{margin-left:0!important}.layui-laypage>:last-child{margin-right:0!important}.layui-laypage a,.layui-laypage button,.layui-laypage input,.layui-laypage select,.layui-laypage span{border:1px solid #eee}.layui-laypage a,.layui-laypage span{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding:0 15px;height:28px;line-height:28px;margin:0 -1px 5px 0;background-color:#fff;color:#333;font-size:12px}.layui-laypage a:hover{color:#009688}.layui-laypage em{font-style:normal}.layui-laypage .layui-laypage-spr{color:#999;font-weight:700}.layui-laypage a{text-decoration:none}.layui-laypage .layui-laypage-curr{position:relative}.layui-laypage .layui-laypage-curr em{position:relative;color:#fff}.layui-laypage .layui-laypage-curr .layui-laypage-em{position:absolute;left:-1px;top:-1px;padding:1px;width:100%;height:100%;background-color:#009688}.layui-laypage-em{border-radius:2px}.layui-laypage-next em,.layui-laypage-prev em{font-family:Sim sun;font-size:16px}.layui-laypage .layui-laypage-count,.layui-laypage .layui-laypage-limits,.layui-laypage .layui-laypage-refresh,.layui-laypage .layui-laypage-skip{margin-left:10px;margin-right:10px;padding:0;border:none}.layui-laypage .layui-laypage-limits,.layui-laypage .layui-laypage-refresh{vertical-align:top}.layui-laypage .layui-laypage-refresh i{font-size:18px;cursor:pointer}.layui-laypage select{height:22px;padding:3px;border-radius:2px;cursor:pointer}.layui-laypage .layui-laypage-skip{height:30px;line-height:30px;color:#999}.layui-laypage button,.layui-laypage input{height:30px;line-height:30px;border-radius:2px;vertical-align:top;background-color:#fff;box-sizing:border-box}.layui-laypage input{display:inline-block;width:40px;margin:0 10px;padding:0 3px;text-align:center}.layui-laypage input:focus,.layui-laypage select:focus{border-color:#009688!important}.layui-laypage button{margin-left:10px;padding:0 10px;cursor:pointer}.layui-flow-more{margin:10px 0;text-align:center;color:#999;font-size:14px}.layui-flow-more a{height:32px;line-height:32px}.layui-flow-more a *{display:inline-block;vertical-align:top}.layui-flow-more a cite{padding:0 20px;border-radius:3px;background-color:#eee;color:#333;font-style:normal}.layui-flow-more a cite:hover{opacity:.8}.layui-flow-more a i{font-size:30px;color:#737383}.layui-table{width:100%;margin:10px 0;background-color:#fff;color:#5f5f5f}.layui-table tr{transition:all .3s;-webkit-transition:all .3s}.layui-table th{text-align:left;font-weight:400}.layui-table tbody tr:hover,.layui-table thead tr,.layui-table-click,.layui-table-header,.layui-table-hover,.layui-table-mend,.layui-table-patch,.layui-table-tool,.layui-table-total,.layui-table-total tr{background-color:#fafafa}.layui-table[lay-even] tr:nth-child(even){background-color:#f2f2f2}.layui-table td,.layui-table th,.layui-table-col-set,.layui-table-fixed-r,.layui-table-grid-down,.layui-table-header,.layui-table-page,.layui-table-tips-main,.layui-table-tool,.layui-table-total,.layui-table-view,.layui-table[lay-skin=line],.layui-table[lay-skin=row]{border-width:1px;border-style:solid;border-color:#eee}.layui-table td,.layui-table th{position:relative;padding:9px 15px;min-height:20px;line-height:20px;font-size:14px}.layui-table[lay-skin=line] td,.layui-table[lay-skin=line] th{border-width:0;border-bottom-width:1px}.layui-table[lay-skin=row] td,.layui-table[lay-skin=row] th{border-width:0;border-right-width:1px}.layui-table[lay-skin=nob] td,.layui-table[lay-skin=nob] th{border:none}.layui-table img{max-width:100px}.layui-table[lay-size=lg] td,.layui-table[lay-size=lg] th{padding-top:15px;padding-right:30px;padding-bottom:15px;padding-left:30px}.layui-table-view .layui-table[lay-size=lg] .layui-table-cell{height:50px;line-height:40px}.layui-table[lay-size=sm] td,.layui-table[lay-size=sm] th{padding-top:5px;padding-right:10px;padding-bottom:5px;padding-left:10px;font-size:12px}.layui-table-view .layui-table[lay-size=sm] .layui-table-cell{height:30px;line-height:20px}.layui-table[lay-data]{display:none}.layui-table-box{position:relative;overflow:hidden}.layui-table-view{margin:10px 0}.layui-table-view .layui-table{position:relative;width:auto;margin:0;border:0;border-collapse:separate}.layui-table-view .layui-table[lay-skin=line]{border-width:0;border-right-width:1px}.layui-table-view .layui-table[lay-skin=row]{border-width:0;border-bottom-width:1px}.layui-table-view .layui-table td,.layui-table-view .layui-table th{padding:0;border-top:none;border-left:none}.layui-table-view .layui-table th.layui-unselect .layui-table-cell span{cursor:pointer}.layui-table-view .layui-table td{cursor:default}.layui-table-view .layui-table td[data-edit=text]{cursor:text}.layui-table-view .layui-form-checkbox[lay-skin=primary] i{width:18px;height:18px}.layui-table-view .layui-form-radio{line-height:0;padding:0}.layui-table-view .layui-form-radio>i{margin:0;font-size:20px}.layui-table-init{position:absolute;left:0;top:0;width:100%;height:100%;text-align:center;z-index:110}.layui-table-init .layui-icon{position:absolute;left:50%;top:50%;margin:-15px 0 0 -15px;font-size:30px;color:#c2c2c2}.layui-table-header{border-width:0;border-bottom-width:1px;overflow:hidden}.layui-table-header .layui-table{margin-bottom:-1px}.layui-table-column{position:relative;width:100%;min-height:41px;padding:8px 16px;border-width:0;border-bottom-width:1px}.layui-table-column .layui-btn-container{margin-bottom:-8px}.layui-table-column .layui-btn-container .layui-btn{margin-right:8px;margin-bottom:8px}.layui-table-tool .layui-inline[lay-event]{position:relative;width:26px;height:26px;padding:5px;line-height:16px;margin-right:10px;text-align:center;color:#333;border:1px solid #ccc;cursor:pointer;-webkit-transition:.5s all;transition:.5s all}.layui-table-tool .layui-inline[lay-event]:hover{border:1px solid #999}.layui-table-tool-temp{padding-right:120px}.layui-table-tool-self{position:absolute;right:17px;top:10px}.layui-table-tool .layui-table-tool-self .layui-inline[lay-event]{margin:0 0 0 10px}.layui-table-tool-panel{position:absolute;top:29px;left:-1px;padding:5px 0;min-width:150px;min-height:40px;border:1px solid #d2d2d2;text-align:left;overflow-y:auto;background-color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.12)}.layui-table-tool-panel li{padding:0 10px;line-height:30px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-transition:.5s all;transition:.5s all}.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary]{width:100%}.layui-table-tool-panel li:hover{background-color:#f6f6f6}.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary]{padding-left:28px}.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary] i{position:absolute;left:0;top:0}.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary] span{padding:0}.layui-table-tool .layui-table-tool-self .layui-table-tool-panel{left:auto;right:-1px}.layui-table-col-set{position:absolute;right:0;top:0;width:20px;height:100%;border-width:0;border-left-width:1px;background-color:#fff}.layui-table-sort{width:10px;height:20px;margin-left:5px;cursor:pointer!important}.layui-table-sort .layui-edge{position:absolute;left:5px;border-width:5px}.layui-table-sort .layui-table-sort-asc{top:3px;border-top:none;border-bottom-style:solid;border-bottom-color:#b2b2b2}.layui-table-sort .layui-table-sort-asc:hover{border-bottom-color:#5f5f5f}.layui-table-sort .layui-table-sort-desc{bottom:5px;border-bottom:none;border-top-style:solid;border-top-color:#b2b2b2}.layui-table-sort .layui-table-sort-desc:hover{border-top-color:#5f5f5f}.layui-table-sort[lay-sort=asc] .layui-table-sort-asc{border-bottom-color:#000}.layui-table-sort[lay-sort=desc] .layui-table-sort-desc{border-top-color:#000}.layui-table-cell{height:38px;line-height:28px;padding:6px 15px;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box}.layui-table-cell .layui-form-checkbox[lay-skin=primary]{top:-1px;padding:0}.layui-table-cell .layui-table-link{color:#01aaed}.layui-table-cell[align=center]{-webkit-box-pack:center}.layui-table-cell[align=right]{-webkit-box-pack:end}.laytable-cell-checkbox,.laytable-cell-numbers,.laytable-cell-radio,.laytable-cell-space{text-align:center;-webkit-box-pack:center}.layui-table-body{position:relative;overflow:auto;margin-right:-1px;margin-bottom:-1px}.layui-table-body .layui-none{line-height:26px;padding:30px 15px;text-align:center;color:#999}.layui-table-fixed{position:absolute;left:0;top:0;z-index:101}.layui-table-fixed .layui-table-body{overflow:hidden}.layui-table-fixed-l{box-shadow:1px 0 8px rgba(0,0,0,.08)}.layui-table-fixed-r{left:auto;right:-1px;border-width:0;border-left-width:1px;box-shadow:-1px 0 8px rgba(0,0,0,.08)}.layui-table-fixed-r .layui-table-header{position:relative;overflow:visible}.layui-table-mend{position:absolute;right:-49px;top:0;height:100%;width:50px}.layui-table-tool{position:relative;z-index:890;width:100%;min-height:50px;line-height:30px;padding:10px 15px;border-width:0;border-bottom-width:1px}.layui-table-tool .layui-btn-container{margin-bottom:-10px}.layui-table-total{margin-bottom:-1px;border-width:0;border-top-width:1px;overflow:hidden}.layui-table-page{z-index:880;border-width:0;border-top-width:1px;margin-bottom:-1px;white-space:nowrap;overflow:hidden}.layui-table-page>div{height:26px}.layui-table-page .layui-laypage{margin:0}.layui-table-page .layui-laypage a,.layui-table-page .layui-laypage span{height:26px;line-height:26px;margin-bottom:10px;border:none;background:0 0}.layui-table-page .layui-laypage a,.layui-table-page .layui-laypage span.layui-laypage-curr{padding:0 12px}.layui-table-page .layui-laypage span{margin-left:0;padding:0}.layui-table-page .layui-laypage .layui-laypage-prev{margin-left:-11px!important}.layui-table-page .layui-laypage .layui-laypage-curr .layui-laypage-em{left:0;top:0;padding:0}.layui-table-page .layui-laypage button,.layui-table-page .layui-laypage input{height:26px;line-height:26px}.layui-table-page .layui-laypage input{width:40px}.layui-table-page .layui-laypage button{padding:0 10px}.layui-table-page select{height:18px}.layui-table-pagebar{float:right;line-height:32px}.layui-table-view select[lay-ignore]{display:inline-block}.layui-table-patch .layui-table-cell{padding:0;width:30px}.layui-table-edit{position:absolute;left:0;top:0;z-index:900;min-width:100%;min-height:100%;padding:5px 14px;border-radius:0;box-shadow:1px 1px 20px rgba(0,0,0,.15);background-color:#fff}.layui-table-edit:focus{border-color:#5fb878!important}select.layui-table-edit{padding:0 0 0 10px;border-color:#d2d2d2}.layui-table-view .layui-form-checkbox,.layui-table-view .layui-form-radio,.layui-table-view .layui-form-switch{top:0;margin:0;box-sizing:content-box}.layui-table-view .layui-form-checkbox{top:-1px;height:26px;line-height:26px}.layui-table-view .layui-form-checkbox i{height:26px}.layui-table-grid .layui-table-cell{overflow:visible}.layui-table-grid-down{position:absolute;top:0;right:0;width:26px;height:100%;padding:5px 0;border-width:0;border-left-width:1px;text-align:center;background-color:#fff;color:#999;cursor:pointer}.layui-table-grid-down .layui-icon{position:absolute;top:50%;left:50%;margin:-8px 0 0 -8px}.layui-table-grid-down:hover{background-color:#fbfbfb}body .layui-table-tips .layui-layer-content{background:0 0;padding:0;box-shadow:0 1px 6px rgba(0,0,0,.12)}.layui-table-tips-main{margin:-49px 0 0 -1px;max-height:150px;padding:8px 15px;font-size:14px;overflow-y:scroll;background-color:#fff;color:#5f5f5f}.layui-table-tips-c{position:absolute;right:-3px;top:-13px;width:20px;height:20px;padding:3px;cursor:pointer;background-color:#5f5f5f;border-radius:50%;color:#fff}.layui-table-tips-c:hover{background-color:#777}.layui-table-tips-c:before{position:relative;right:-2px}.layui-upload-file{display:none!important;opacity:.01;filter:Alpha(opacity=1)}.layui-upload-list{margin:10px 0}.layui-upload-choose{max-width:200px;padding:0 10px;color:#999;font-size:14px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-upload-drag{position:relative;display:inline-block;padding:30px;border:1px dashed #e2e2e2;background-color:#fff;text-align:center;cursor:pointer;color:#999}.layui-upload-drag .layui-icon{font-size:50px;color:#009688}.layui-upload-drag[lay-over]{border-color:#009688}.layui-upload-form{display:inline-block}.layui-upload-iframe{position:absolute;width:0;height:0;border:0;visibility:hidden}.layui-upload-wrap{position:relative;display:inline-block;vertical-align:middle}.layui-upload-wrap .layui-upload-file{display:block!important;position:absolute;left:0;top:0;z-index:10;font-size:100px;width:100%;height:100%;opacity:.01;filter:Alpha(opacity=1);cursor:pointer}.layui-btn-container .layui-upload-choose{padding-left:0}.layui-menu{position:relative;margin:5px 0;background-color:#fff;box-sizing:border-box}.layui-menu *{box-sizing:border-box}.layui-menu li,.layui-menu-body-title a{padding:5px 15px}.layui-menu li{position:relative;margin:1px 0;width:calc(100% + 1px);line-height:26px;color:rgba(0,0,0,.8);font-size:14px;white-space:nowrap;cursor:pointer;transition:all .3s}.layui-menu li:hover{background-color:#f6f6f6}.layui-menu-item-parent:hover>.layui-menu-body-panel{display:block;animation-name:layui-fadein;animation-duration:.3s;animation-fill-mode:both;animation-delay:.2s}.layui-menu-item-group .layui-menu-body-title,.layui-menu-item-parent .layui-menu-body-title{padding-right:25px}.layui-menu .layui-menu-item-divider:hover,.layui-menu .layui-menu-item-group:hover,.layui-menu .layui-menu-item-none:hover{background:0 0;cursor:default}.layui-menu .layui-menu-item-group>ul{margin:5px 0 -5px}.layui-menu .layui-menu-item-group>.layui-menu-body-title{color:rgba(0,0,0,.35);user-select:none}.layui-menu .layui-menu-item-none{color:rgba(0,0,0,.35);cursor:default}.layui-menu .layui-menu-item-none{text-align:center}.layui-menu .layui-menu-item-divider{margin:5px 0;padding:0;height:0;line-height:0;border-bottom:1px solid #eee;overflow:hidden}.layui-menu .layui-menu-item-down:hover,.layui-menu .layui-menu-item-up:hover{cursor:pointer}.layui-menu .layui-menu-item-up>.layui-menu-body-title{color:rgba(0,0,0,.8)}.layui-menu .layui-menu-item-up>ul{visibility:hidden;height:0;overflow:hidden}.layui-menu .layui-menu-item-down:hover>.layui-menu-body-title>.layui-icon,.layui-menu .layui-menu-item-up>.layui-menu-body-title:hover>.layui-icon{color:#000}.layui-menu .layui-menu-item-down>ul{visibility:visible;height:auto}.layui-menu .layui-menu-item-checked,.layui-menu .layui-menu-item-checked2{background-color:#f6f6f6!important;color:#5fb878}.layui-menu .layui-menu-item-checked a,.layui-menu .layui-menu-item-checked2 a{color:#5fb878}.layui-menu .layui-menu-item-checked:after{position:absolute;right:0;top:0;bottom:0;border-right:3px solid #5fb878;content:""}.layui-menu-body-title{position:relative;overflow:hidden;text-overflow:ellipsis}.layui-menu-body-title a{display:block;margin:-5px -15px;color:rgba(0,0,0,.8)}.layui-menu-body-title a:hover{transition:all .3s}.layui-menu-body-title>.layui-icon{position:absolute;right:0;top:0;font-size:14px}.layui-menu-body-title>.layui-icon:hover{transition:all .3s}.layui-menu-body-title>.layui-icon-right{right:-1px}.layui-menu-body-panel{display:none;position:absolute;top:-7px;left:100%;z-index:1000;margin-left:13px;padding:5px 0}.layui-menu-body-panel:before{content:"";position:absolute;width:20px;left:-16px;top:0;bottom:0}.layui-menu-body-panel-left{left:auto;right:100%;margin:0 13px 0}.layui-menu-body-panel-left:before{left:auto;right:-16px}.layui-menu-lg li{line-height:32px}.layui-menu-lg .layui-menu-body-title a:hover,.layui-menu-lg li:hover{background:0 0;color:#5fb878}.layui-menu-lg li .layui-menu-body-panel{margin-left:14px}.layui-menu-lg li .layui-menu-body-panel-left{margin:0 15px 0}.layui-dropdown{position:absolute;left:-999999px;top:-999999px;z-index:77777777;margin:5px 0;min-width:100px}.layui-dropdown:before{content:"";position:absolute;width:100%;height:6px;left:0;top:-6px}.layui-nav{position:relative;padding:0 20px;background-color:#393d49;color:#fff;border-radius:2px;font-size:0;box-sizing:border-box}.layui-nav *{font-size:14px}.layui-nav .layui-nav-item{position:relative;display:inline-block;*display:inline;*zoom:1;vertical-align:middle;line-height:60px}.layui-nav .layui-nav-item a{display:block;padding:0 20px;color:#fff;color:rgba(255,255,255,.7);transition:all .3s;-webkit-transition:all .3s}.layui-nav .layui-this:after,.layui-nav-bar{content:"";position:absolute;left:0;top:0;width:0;height:5px;background-color:#5fb878;transition:all .2s;-webkit-transition:all .2s;pointer-events:none}.layui-nav-bar{z-index:1000}.layui-nav[lay-bar=disabled] .layui-nav-bar{display:none}.layui-nav .layui-nav-item a:hover,.layui-nav .layui-this a{color:#fff}.layui-nav .layui-this:after{top:auto;bottom:0;width:100%}.layui-nav-img{width:30px;height:30px;margin-right:10px;border-radius:50%}.layui-nav .layui-nav-more{position:absolute;top:0;right:3px;left:auto!important;margin-top:0;font-size:12px;cursor:pointer;transition:all .2s;-webkit-transition:all .2s}.layui-nav .layui-nav-mored,.layui-nav-itemed>a .layui-nav-more{transform:rotate(180deg)}.layui-nav-child{display:none;position:absolute;left:0;top:65px;min-width:100%;line-height:36px;padding:5px 0;box-shadow:0 2px 4px rgba(0,0,0,.12);border:1px solid #eee;background-color:#fff;z-index:100;border-radius:2px;white-space:nowrap}.layui-nav .layui-nav-child a{color:#5f5f5f;color:rgba(0,0,0,.8)}.layui-nav .layui-nav-child a:hover{background-color:#f6f6f6;color:rgba(0,0,0,.8)}.layui-nav-child dd{margin:1px 0;position:relative}.layui-nav-child dd.layui-this{background-color:#f6f6f6;color:#000}.layui-nav-child dd.layui-this:after{display:none}.layui-nav-child-r{left:auto;right:0}.layui-nav-child-c{text-align:center}.layui-nav-tree{width:200px;padding:0}.layui-nav-tree .layui-nav-item{display:block;width:100%;line-height:40px}.layui-nav-tree .layui-nav-item a{position:relative;height:40px;line-height:40px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-nav-tree .layui-nav-item>a{padding-top:5px;padding-bottom:5px}.layui-nav-tree .layui-nav-more{right:15px}.layui-nav-tree .layui-nav-item>a .layui-nav-more{padding:5px 0}.layui-nav-tree .layui-nav-bar{width:5px;height:0}.layui-side .layui-nav-tree .layui-nav-bar{width:2px}.layui-nav-tree .layui-nav-child dd.layui-this,.layui-nav-tree .layui-nav-child dd.layui-this a,.layui-nav-tree .layui-this,.layui-nav-tree .layui-this>a,.layui-nav-tree .layui-this>a:hover{background-color:#009688;color:#fff}.layui-nav-tree .layui-this:after{display:none}.layui-nav-itemed>a,.layui-nav-tree .layui-nav-title a,.layui-nav-tree .layui-nav-title a:hover{color:#fff!important}.layui-nav-tree .layui-nav-bar{background-color:#009688}.layui-nav-tree .layui-nav-child{position:relative;z-index:0;top:0;border:none;box-shadow:none}.layui-nav-tree .layui-nav-child dd{margin:0}.layui-nav-tree .layui-nav-child a{color:#fff;color:rgba(255,255,255,.7)}.layui-nav-tree .layui-nav-child,.layui-nav-tree .layui-nav-child a:hover{background:0 0;color:#fff}.layui-nav-itemed>.layui-nav-child{display:block;background-color:rgba(0,0,0,.3)!important}.layui-nav-itemed>.layui-nav-child>.layui-this>.layui-nav-child{display:block}.layui-nav-side{position:fixed;top:0;bottom:0;left:0;overflow-x:hidden;z-index:999}.layui-breadcrumb{visibility:hidden;font-size:0}.layui-breadcrumb>*{font-size:14px}.layui-breadcrumb a{color:#999!important}.layui-breadcrumb a:hover{color:#5fb878!important}.layui-breadcrumb a cite{color:#5f5f5f;font-style:normal}.layui-breadcrumb span[lay-separator]{margin:0 10px;color:#999}.layui-tab{margin:10px 0;text-align:left!important}.layui-tab[overflow]>.layui-tab-title{overflow:hidden}.layui-tab-title{position:relative;left:0;height:40px;white-space:nowrap;font-size:0;border-bottom-width:1px;border-bottom-style:solid;transition:all .2s;-webkit-transition:all .2s}.layui-tab-title li{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;font-size:14px;transition:all .2s;-webkit-transition:all .2s}.layui-tab-title li{position:relative;line-height:40px;min-width:65px;padding:0 15px;text-align:center;cursor:pointer}.layui-tab-title li a{display:block;padding:0 15px;margin:0 -15px}.layui-tab-title .layui-this{color:#000}.layui-tab-title .layui-this:after{position:absolute;left:0;top:0;content:"";width:100%;height:41px;border-width:1px;border-style:solid;border-bottom-color:#fff;border-radius:2px 2px 0 0;box-sizing:border-box;pointer-events:none}.layui-tab-bar{position:absolute;right:0;top:0;z-index:10;width:30px;height:39px;line-height:39px;border-width:1px;border-style:solid;border-radius:2px;text-align:center;background-color:#fff;cursor:pointer}.layui-tab-bar .layui-icon{position:relative;display:inline-block;top:3px;transition:all .3s;-webkit-transition:all .3s}.layui-tab-item{display:none}.layui-tab-more{padding-right:30px;height:auto!important;white-space:normal!important}.layui-tab-more li.layui-this:after{border-bottom-color:#eee;border-radius:2px}.layui-tab-more .layui-tab-bar .layui-icon{top:-2px;top:3px\0;-webkit-transform:rotate(180deg);transform:rotate(180deg)}:root .layui-tab-more .layui-tab-bar .layui-icon{top:-2px\0/IE9}.layui-tab-content{padding:15px 0}.layui-tab-title li .layui-tab-close{position:relative;display:inline-block;width:18px;height:18px;line-height:20px;margin-left:8px;top:1px;text-align:center;font-size:14px;color:#c2c2c2;transition:all .2s;-webkit-transition:all .2s}.layui-tab-title li .layui-tab-close:hover{border-radius:2px;background-color:#ff5722;color:#fff}.layui-tab-brief>.layui-tab-title .layui-this{color:#009688}.layui-tab-brief>.layui-tab-more li.layui-this:after,.layui-tab-brief>.layui-tab-title .layui-this:after{border:none;border-radius:0;border-bottom:2px solid #5fb878}.layui-tab-brief[overflow]>.layui-tab-title .layui-this:after{top:-1px}.layui-tab-card{border-width:1px;border-style:solid;border-radius:2px;box-shadow:0 2px 5px 0 rgba(0,0,0,.1)}.layui-tab-card>.layui-tab-title{background-color:#fafafa}.layui-tab-card>.layui-tab-title li{margin-right:-1px;margin-left:-1px}.layui-tab-card>.layui-tab-title .layui-this{background-color:#fff}.layui-tab-card>.layui-tab-title .layui-this:after{border-top:none;border-width:1px;border-bottom-color:#fff}.layui-tab-card>.layui-tab-title .layui-tab-bar{height:40px;line-height:40px;border-radius:0;border-top:none;border-right:none}.layui-tab-card>.layui-tab-more .layui-this{background:0 0;color:#5fb878}.layui-tab-card>.layui-tab-more .layui-this:after{border:none}.layui-timeline{padding-left:5px}.layui-timeline-item{position:relative;padding-bottom:20px}.layui-timeline-axis{position:absolute;left:-5px;top:0;z-index:10;width:20px;height:20px;line-height:20px;background-color:#fff;color:#5fb878;border-radius:50%;text-align:center;cursor:pointer}.layui-timeline-axis:hover{color:#ff5722}.layui-timeline-item:before{content:"";position:absolute;left:5px;top:0;z-index:0;width:1px;height:100%}.layui-timeline-item:first-child:before{display:block}.layui-timeline-item:last-child:before{display:none}.layui-timeline-content{padding-left:25px}.layui-timeline-title{position:relative;margin-bottom:10px;line-height:22px}.layui-badge,.layui-badge-dot,.layui-badge-rim{position:relative;display:inline-block;padding:0 6px;font-size:12px;text-align:center;background-color:#ff5722;color:#fff;border-radius:2px}.layui-badge{height:18px;line-height:18px}.layui-badge-dot{width:8px;height:8px;padding:0;border-radius:50%}.layui-badge-rim{height:18px;line-height:18px;border-width:1px;border-style:solid;background-color:#fff;color:#5f5f5f}.layui-btn .layui-badge,.layui-btn .layui-badge-dot{margin-left:5px}.layui-nav .layui-badge,.layui-nav .layui-badge-dot{position:absolute;top:50%;margin:-5px 6px 0}.layui-nav .layui-badge{margin-top:-10px}.layui-tab-title .layui-badge,.layui-tab-title .layui-badge-dot{left:5px;top:-2px}.layui-carousel{position:relative;left:0;top:0;background-color:#f8f8f8}.layui-carousel>[carousel-item]{position:relative;width:100%;height:100%;overflow:hidden}.layui-carousel>[carousel-item]:before{position:absolute;content:'\e63d';left:50%;top:50%;width:100px;line-height:20px;margin:-10px 0 0 -50px;text-align:center;color:#c2c2c2;font-family:layui-icon!important;font-size:30px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.layui-carousel>[carousel-item]>*{display:none;position:absolute;left:0;top:0;width:100%;height:100%;background-color:#f8f8f8;transition-duration:.3s;-webkit-transition-duration:.3s}.layui-carousel-updown>*{-webkit-transition:.3s ease-in-out up;transition:.3s ease-in-out up}.layui-carousel-arrow{display:none\0;opacity:0;position:absolute;left:10px;top:50%;margin-top:-18px;width:36px;height:36px;line-height:36px;text-align:center;font-size:20px;border:none 0;border-radius:50%;background-color:rgba(0,0,0,.2);color:#fff;-webkit-transition-duration:.3s;transition-duration:.3s;cursor:pointer}.layui-carousel-arrow[lay-type=add]{left:auto!important;right:10px}.layui-carousel[lay-arrow=always] .layui-carousel-arrow{opacity:1;left:20px}.layui-carousel[lay-arrow=always] .layui-carousel-arrow[lay-type=add]{right:20px}.layui-carousel[lay-arrow=none] .layui-carousel-arrow{display:none}.layui-carousel-arrow:hover,.layui-carousel-ind ul:hover{background-color:rgba(0,0,0,.35)}.layui-carousel:hover .layui-carousel-arrow{display:block\0;opacity:1;left:20px}.layui-carousel:hover .layui-carousel-arrow[lay-type=add]{right:20px}.layui-carousel-ind{position:relative;top:-35px;width:100%;line-height:0!important;text-align:center;font-size:0}.layui-carousel[lay-indicator=outside]{margin-bottom:30px}.layui-carousel[lay-indicator=outside] .layui-carousel-ind{top:10px}.layui-carousel[lay-indicator=outside] .layui-carousel-ind ul{background-color:rgba(0,0,0,.5)}.layui-carousel[lay-indicator=none] .layui-carousel-ind{display:none}.layui-carousel-ind ul{display:inline-block;padding:5px;background-color:rgba(0,0,0,.2);border-radius:10px;-webkit-transition-duration:.3s;transition-duration:.3s}.layui-carousel-ind li{display:inline-block;width:10px;height:10px;margin:0 3px;font-size:14px;background-color:#eee;background-color:rgba(255,255,255,.5);border-radius:50%;cursor:pointer;-webkit-transition-duration:.3s;transition-duration:.3s}.layui-carousel-ind li:hover{background-color:rgba(255,255,255,.7)}.layui-carousel-ind li.layui-this{background-color:#fff}.layui-carousel>[carousel-item]>.layui-carousel-next,.layui-carousel>[carousel-item]>.layui-carousel-prev,.layui-carousel>[carousel-item]>.layui-this{display:block}.layui-carousel>[carousel-item]>.layui-this{left:0}.layui-carousel>[carousel-item]>.layui-carousel-prev{left:-100%}.layui-carousel>[carousel-item]>.layui-carousel-next{left:100%}.layui-carousel>[carousel-item]>.layui-carousel-next.layui-carousel-left,.layui-carousel>[carousel-item]>.layui-carousel-prev.layui-carousel-right{left:0}.layui-carousel>[carousel-item]>.layui-this.layui-carousel-left{left:-100%}.layui-carousel>[carousel-item]>.layui-this.layui-carousel-right{left:100%}.layui-carousel[lay-anim=updown] .layui-carousel-arrow{left:50%!important;top:20px;margin:0 0 0 -18px}.layui-carousel[lay-anim=updown] .layui-carousel-arrow[lay-type=add]{top:auto!important;bottom:20px}.layui-carousel[lay-anim=updown] .layui-carousel-ind{position:absolute;top:50%;right:20px;width:auto;height:auto}.layui-carousel[lay-anim=updown] .layui-carousel-ind ul{padding:3px 5px}.layui-carousel[lay-anim=updown] .layui-carousel-ind li{display:block;margin:6px 0}.layui-carousel[lay-anim=updown]>[carousel-item]>*{left:0!important}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this{top:0}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-prev{top:-100%}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-next{top:100%}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-next.layui-carousel-left,.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-prev.layui-carousel-right{top:0}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this.layui-carousel-left{top:-100%}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this.layui-carousel-right{top:100%}.layui-carousel[lay-anim=fade]>[carousel-item]>*{left:0!important}.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-next,.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-prev{opacity:0}.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-next.layui-carousel-left,.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-prev.layui-carousel-right{opacity:1}.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-this.layui-carousel-left,.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-this.layui-carousel-right{opacity:0}.layui-fixbar{position:fixed;right:15px;bottom:15px;z-index:999999}.layui-fixbar li{width:50px;height:50px;line-height:50px;margin-bottom:1px;text-align:center;cursor:pointer;font-size:30px;background-color:#9f9f9f;color:#fff;border-radius:2px;opacity:.95}.layui-fixbar li:hover{opacity:.85}.layui-fixbar li:active{opacity:1}.layui-fixbar .layui-fixbar-top{display:none;font-size:40px}body .layui-util-face{border:none;background:0 0}body .layui-util-face .layui-layer-content{padding:0;background-color:#fff;color:#5f5f5f;box-shadow:none}.layui-util-face .layui-layer-TipsG{display:none}.layui-util-face ul{position:relative;width:372px;padding:10px;border:1px solid #d9d9d9;background-color:#fff;box-shadow:0 0 20px rgba(0,0,0,.2)}.layui-util-face ul li{cursor:pointer;float:left;border:1px solid #e8e8e8;height:22px;width:26px;overflow:hidden;margin:-1px 0 0 -1px;padding:4px 2px;text-align:center}.layui-util-face ul li:hover{position:relative;z-index:2;border:1px solid #eb7350;background:#fff9ec}.layui-code{position:relative;margin:10px 0;padding:15px;line-height:20px;border:1px solid #eee;border-left-width:6px;background-color:#fafafa;color:#333;font-family:Courier New;font-size:12px}.layui-transfer-box,.layui-transfer-header,.layui-transfer-search{border-width:0;border-style:solid;border-color:#eee}.layui-transfer-box{position:relative;display:inline-block;vertical-align:middle;border-width:1px;width:200px;height:360px;border-radius:2px;background-color:#fff}.layui-transfer-box .layui-form-checkbox{width:100%;margin:0!important}.layui-transfer-header{height:38px;line-height:38px;padding:0 10px;border-bottom-width:1px}.layui-transfer-search{position:relative;padding:10px;border-bottom-width:1px}.layui-transfer-search .layui-input{height:32px;padding-left:30px;font-size:12px}.layui-transfer-search .layui-icon-search{position:absolute;left:20px;top:50%;margin-top:-8px;color:#5f5f5f}.layui-transfer-active{margin:0 15px;display:inline-block;vertical-align:middle}.layui-transfer-active .layui-btn{display:block;margin:0;padding:0 15px;background-color:#5fb878;border-color:#5fb878;color:#fff}.layui-transfer-active .layui-btn-disabled{background-color:#fbfbfb;border-color:#eee;color:#d2d2d2}.layui-transfer-active .layui-btn:first-child{margin-bottom:15px}.layui-transfer-active .layui-btn .layui-icon{margin:0;font-size:14px!important}.layui-transfer-data{padding:5px 0;overflow:auto}.layui-transfer-data li{height:32px;line-height:32px;padding:0 10px}.layui-transfer-data li:hover{background-color:#f6f6f6;transition:.5s all}.layui-transfer-data .layui-none{padding:15px 10px;text-align:center;color:#999}.layui-rate,.layui-rate *{display:inline-block;vertical-align:middle}.layui-rate{padding:10px 5px 10px 0;font-size:0}.layui-rate li i.layui-icon{font-size:20px;color:#ffb800}.layui-rate li i.layui-icon{margin-right:5px;transition:all .3s;-webkit-transition:all .3s}.layui-rate li i:hover{cursor:pointer;transform:scale(1.12);-webkit-transform:scale(1.12)}.layui-rate[readonly] li i:hover{cursor:default;transform:scale(1)}.layui-colorpicker{width:26px;height:26px;border:1px solid #eee;padding:5px;border-radius:2px;line-height:24px;display:inline-block;cursor:pointer;transition:all .3s;-webkit-transition:all .3s}.layui-colorpicker:hover{border-color:#d2d2d2}.layui-colorpicker.layui-colorpicker-lg{width:34px;height:34px;line-height:32px}.layui-colorpicker.layui-colorpicker-sm{width:24px;height:24px;line-height:22px}.layui-colorpicker.layui-colorpicker-xs{width:22px;height:22px;line-height:20px}.layui-colorpicker-trigger-bgcolor{display:block;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==);border-radius:2px}.layui-colorpicker-trigger-span{display:block;height:100%;box-sizing:border-box;border:1px solid rgba(0,0,0,.15);border-radius:2px;text-align:center}.layui-colorpicker-trigger-i{display:inline-block;color:#fff;font-size:12px}.layui-colorpicker-trigger-i.layui-icon-close{color:#999}.layui-colorpicker-main{position:absolute;left:-999999px;top:-999999px;z-index:77777777;width:280px;margin:5px 0;padding:7px;background:#fff;border:1px solid #d2d2d2;border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,.12)}.layui-colorpicker-main-wrapper{height:180px;position:relative}.layui-colorpicker-basis{width:260px;height:100%;position:relative}.layui-colorpicker-basis-white{width:100%;height:100%;position:absolute;top:0;left:0;background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.layui-colorpicker-basis-black{width:100%;height:100%;position:absolute;top:0;left:0;background:linear-gradient(0deg,#000,transparent)}.layui-colorpicker-basis-cursor{width:10px;height:10px;border:1px solid #fff;border-radius:50%;position:absolute;top:-3px;right:-3px;cursor:pointer}.layui-colorpicker-side{position:absolute;top:0;right:0;width:12px;height:100%;background:linear-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.layui-colorpicker-side-slider{width:100%;height:5px;box-shadow:0 0 1px #888;box-sizing:border-box;background:#fff;border-radius:1px;border:1px solid #f0f0f0;cursor:pointer;position:absolute;left:0}.layui-colorpicker-main-alpha{display:none;height:12px;margin-top:7px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.layui-colorpicker-alpha-bgcolor{height:100%;position:relative}.layui-colorpicker-alpha-slider{width:5px;height:100%;box-shadow:0 0 1px #888;box-sizing:border-box;background:#fff;border-radius:1px;border:1px solid #f0f0f0;cursor:pointer;position:absolute;top:0}.layui-colorpicker-main-pre{padding-top:7px;font-size:0}.layui-colorpicker-pre{width:20px;height:20px;border-radius:2px;display:inline-block;margin-left:6px;margin-bottom:7px;cursor:pointer}.layui-colorpicker-pre:nth-child(11n+1){margin-left:0}.layui-colorpicker-pre-isalpha{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.layui-colorpicker-pre.layui-this{box-shadow:0 0 3px 2px rgba(0,0,0,.15)}.layui-colorpicker-pre>div{height:100%;border-radius:2px}.layui-colorpicker-main-input{text-align:right;padding-top:7px}.layui-colorpicker-main-input .layui-btn-container .layui-btn{margin:0 0 0 10px}.layui-colorpicker-main-input div.layui-inline{float:left;margin-right:10px;font-size:14px}.layui-colorpicker-main-input input.layui-input{width:150px;height:30px;color:#5f5f5f}.layui-slider{height:4px;background:#eee;border-radius:3px;position:relative;cursor:pointer}.layui-slider-bar{border-radius:3px;position:absolute;height:100%}.layui-slider-step{position:absolute;top:0;width:4px;height:4px;border-radius:50%;background:#fff;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.layui-slider-wrap{width:36px;height:36px;position:absolute;top:-16px;-webkit-transform:translateX(-50%);transform:translateX(-50%);z-index:10;text-align:center}.layui-slider-wrap-btn{width:12px;height:12px;border-radius:50%;background:#fff;display:inline-block;vertical-align:middle;cursor:pointer;transition:.3s}.layui-slider-wrap:after{content:"";height:100%;display:inline-block;vertical-align:middle}.layui-slider-wrap-btn.layui-slider-hover,.layui-slider-wrap-btn:hover{transform:scale(1.2)}.layui-slider-wrap-btn.layui-disabled:hover{transform:scale(1)!important}.layui-slider-tips{position:absolute;top:-42px;z-index:77777777;white-space:nowrap;display:none;-webkit-transform:translateX(-50%);transform:translateX(-50%);color:#fff;background:#000;border-radius:3px;height:25px;line-height:25px;padding:0 10px}.layui-slider-tips:after{content:"";position:absolute;bottom:-12px;left:50%;margin-left:-6px;width:0;height:0;border-width:6px;border-style:solid;border-color:#000 transparent transparent transparent}.layui-slider-input{width:70px;height:32px;border:1px solid #eee;border-radius:3px;font-size:16px;line-height:32px;position:absolute;right:0;top:-14px}.layui-slider-input-btn{position:absolute;top:0;right:0;width:20px;height:100%;border-left:1px solid #eee}.layui-slider-input-btn i{cursor:pointer;position:absolute;right:0;bottom:0;width:20px;height:50%;font-size:12px;line-height:16px;text-align:center;color:#999}.layui-slider-input-btn i:first-child{top:0;border-bottom:1px solid #eee}.layui-slider-input-txt{height:100%;font-size:14px}.layui-slider-input-txt input{height:100%;border:none}.layui-slider-input-btn i:hover{color:#009688}.layui-slider-vertical{width:4px;margin-left:33px}.layui-slider-vertical .layui-slider-bar{width:4px}.layui-slider-vertical .layui-slider-step{top:auto;left:0;-webkit-transform:translateY(50%);transform:translateY(50%)}.layui-slider-vertical .layui-slider-wrap{top:auto;left:-16px;-webkit-transform:translateY(50%);transform:translateY(50%)}.layui-slider-vertical .layui-slider-tips{top:auto;left:2px}@media \0screen{.layui-slider-wrap-btn{margin-left:-20px}.layui-slider-vertical .layui-slider-wrap-btn{margin-left:0;margin-bottom:-20px}.layui-slider-vertical .layui-slider-tips{margin-left:-8px}.layui-slider>span{margin-left:8px}}.layui-tree{line-height:22px}.layui-tree .layui-form-checkbox{margin:0!important}.layui-tree-set{width:100%;position:relative}.layui-tree-pack{display:none;padding-left:20px;position:relative}.layui-tree-line .layui-tree-pack{padding-left:27px}.layui-tree-line .layui-tree-set .layui-tree-set:after{content:"";position:absolute;top:14px;left:-9px;width:17px;height:0;border-top:1px dotted #c0c4cc}.layui-tree-entry{position:relative;padding:3px 0;height:20px;white-space:nowrap}.layui-tree-entry:hover{background-color:#eee}.layui-tree-line .layui-tree-entry:hover{background-color:rgba(0,0,0,0)}.layui-tree-line .layui-tree-entry:hover .layui-tree-txt{color:#999;text-decoration:underline;transition:.3s}.layui-tree-main{display:inline-block;vertical-align:middle;cursor:pointer;padding-right:10px}.layui-tree-line .layui-tree-set:before{content:"";position:absolute;top:0;left:-9px;width:0;height:100%;border-left:1px dotted #c0c4cc}.layui-tree-line .layui-tree-set.layui-tree-setLineShort:before{height:13px}.layui-tree-line .layui-tree-set.layui-tree-setHide:before{height:0}.layui-tree-iconClick{display:inline-block;vertical-align:middle;position:relative;height:20px;line-height:20px;margin:0 10px;color:#c0c4cc}.layui-tree-icon{height:12px;line-height:12px;width:12px;text-align:center;border:1px solid #c0c4cc}.layui-tree-iconClick .layui-icon{font-size:18px}.layui-tree-icon .layui-icon{font-size:12px;color:#5f5f5f}.layui-tree-iconArrow{padding:0 5px}.layui-tree-iconArrow:after{content:"";position:absolute;left:4px;top:3px;z-index:100;width:0;height:0;border-width:5px;border-style:solid;border-color:transparent transparent transparent #c0c4cc;transition:.5s}.layui-tree-spread>.layui-tree-entry .layui-tree-iconClick>.layui-tree-iconArrow:after{transform:rotate(90deg) translate(3px,4px)}.layui-tree-txt{display:inline-block;vertical-align:middle;color:#555}.layui-tree-search{margin-bottom:15px;color:#5f5f5f}.layui-tree-btnGroup{visibility:hidden;display:inline-block;vertical-align:middle;position:relative}.layui-tree-btnGroup .layui-icon{display:inline-block;vertical-align:middle;padding:0 2px;cursor:pointer}.layui-tree-btnGroup .layui-icon:hover{color:#999;transition:.3s}.layui-tree-entry:hover .layui-tree-btnGroup{visibility:visible}.layui-tree-editInput{position:relative;display:inline-block;vertical-align:middle;height:20px;line-height:20px;padding:0 3px;border:none;background-color:rgba(0,0,0,.05)}.layui-tree-emptyText{text-align:center;color:#999}.layui-anim{-webkit-animation-duration:.3s;-webkit-animation-fill-mode:both;animation-duration:.3s;animation-fill-mode:both}.layui-anim.layui-icon{display:inline-block}.layui-anim-loop{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.layui-trans,.layui-trans a{transition:all .2s;-webkit-transition:all .2s}@-webkit-keyframes layui-rotate{from{-webkit-transform:rotate(0)}to{-webkit-transform:rotate(360deg)}}@keyframes layui-rotate{from{transform:rotate(0)}to{transform:rotate(360deg)}}.layui-anim-rotate{-webkit-animation-name:layui-rotate;animation-name:layui-rotate;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:linear;animation-timing-function:linear}@-webkit-keyframes layui-up{from{-webkit-transform:translate3d(0,100%,0);opacity:.3}to{-webkit-transform:translate3d(0,0,0);opacity:1}}@keyframes layui-up{from{transform:translate3d(0,100%,0);opacity:.3}to{transform:translate3d(0,0,0);opacity:1}}.layui-anim-up{-webkit-animation-name:layui-up;animation-name:layui-up}@-webkit-keyframes layui-upbit{from{-webkit-transform:translate3d(0,15px,0);opacity:.3}to{-webkit-transform:translate3d(0,0,0);opacity:1}}@keyframes layui-upbit{from{transform:translate3d(0,15px,0);opacity:.3}to{transform:translate3d(0,0,0);opacity:1}}.layui-anim-upbit{-webkit-animation-name:layui-upbit;animation-name:layui-upbit}@keyframes layui-down{0%{opacity:.3;transform:translate3d(0,-100%,0)}100%{opacity:1;transform:translate3d(0,0,0)}}.layui-anim-down{animation-name:layui-down}@keyframes layui-downbit{0%{opacity:.3;transform:translate3d(0,-5px,0)}100%{opacity:1;transform:translate3d(0,0,0)}}.layui-anim-downbit{animation-name:layui-downbit}@-webkit-keyframes layui-scale{0%{opacity:.3;-webkit-transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes layui-scale{0%{opacity:.3;-ms-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-ms-transform:scale(1);transform:scale(1)}}.layui-anim-scale{-webkit-animation-name:layui-scale;animation-name:layui-scale}@-webkit-keyframes layui-scale-spring{0%{opacity:.5;-webkit-transform:scale(.5)}80%{opacity:.8;-webkit-transform:scale(1.1)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes layui-scale-spring{0%{opacity:.5;transform:scale(.5)}80%{opacity:.8;transform:scale(1.1)}100%{opacity:1;transform:scale(1)}}.layui-anim-scaleSpring{-webkit-animation-name:layui-scale-spring;animation-name:layui-scale-spring}@keyframes layui-scalesmall{0%{opacity:.3;transform:scale(1.5)}100%{opacity:1;transform:scale(1)}}.layui-anim-scalesmall{animation-name:layui-scalesmall}@keyframes layui-scalesmall-spring{0%{opacity:.3;transform:scale(1.5)}80%{opacity:.8;transform:scale(.9)}100%{opacity:1;transform:scale(1)}}.layui-anim-scalesmall-spring{animation-name:layui-scalesmall-spring}@-webkit-keyframes layui-fadein{0%{opacity:0}100%{opacity:1}}@keyframes layui-fadein{0%{opacity:0}100%{opacity:1}}.layui-anim-fadein{-webkit-animation-name:layui-fadein;animation-name:layui-fadein}@-webkit-keyframes layui-fadeout{0%{opacity:1}100%{opacity:0}}@keyframes layui-fadeout{0%{opacity:1}100%{opacity:0}}.layui-anim-fadeout{-webkit-animation-name:layui-fadeout;animation-name:layui-fadeout} \ No newline at end of file diff --git a/Bin/Debug/SuperDesign/SysDb/layui/css/modules/code.css b/Bin/Debug/SuperDesign/SysDb/layui/css/modules/code.css new file mode 100644 index 0000000..8adf0fd --- /dev/null +++ b/Bin/Debug/SuperDesign/SysDb/layui/css/modules/code.css @@ -0,0 +1 @@ +html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-view{display:block;position:relative;margin:10px 0;padding:0;border:1px solid #eee;border-left-width:6px;background-color:#fafafa;color:#333;font-family:Courier New;font-size:13px}.layui-code-h3{position:relative;padding:0 10px;height:40px;line-height:40px;border-bottom:1px solid #eee;font-size:12px}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 10px;border-left:1px solid #e2e2e2;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view .layui-code-ol li:first-child{padding-top:10px}.layui-code-view .layui-code-ol li:last-child{padding-bottom:10px}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0c0c0c;border-left-color:#3f3f3f;background-color:#0c0c0c;color:#c2be9e}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3f3f3f;border-left:none}.layui-code-demo .layui-code{visibility:visible!important;margin:-15px;border-top:none;border-right:none;border-bottom:none}.layui-code-demo .layui-tab-content{padding:15px;border-top:none} \ No newline at end of file diff --git a/Bin/Debug/SuperDesign/SysDb/layui/css/modules/laydate/default/laydate.css b/Bin/Debug/SuperDesign/SysDb/layui/css/modules/laydate/default/laydate.css new file mode 100644 index 0000000..b836cb6 --- /dev/null +++ b/Bin/Debug/SuperDesign/SysDb/layui/css/modules/laydate/default/laydate.css @@ -0,0 +1 @@ +html #layuicss-laydate{display:none;position:absolute;width:1989px}.layui-laydate *{margin:0;padding:0}.layui-laydate,.layui-laydate *{box-sizing:border-box}.layui-laydate{position:absolute;z-index:66666666;margin:5px 0;border-radius:2px;font-size:14px;-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.layui-laydate-main{width:272px}.layui-laydate-content td,.layui-laydate-header *,.layui-laydate-list li{transition-duration:.3s;-webkit-transition-duration:.3s}@keyframes laydate-downbit{0%{opacity:.3;transform:translate3d(0,-5px,0)}100%{opacity:1;transform:translate3d(0,0,0)}}.layui-laydate{animation-name:laydate-downbit}.layui-laydate-static{position:relative;z-index:0;display:inline-block;margin:0;-webkit-animation:none;animation:none}.laydate-ym-show .laydate-next-m,.laydate-ym-show .laydate-prev-m{display:none!important}.laydate-ym-show .laydate-next-y,.laydate-ym-show .laydate-prev-y{display:inline-block!important}.laydate-ym-show .laydate-set-ym span[lay-type=month]{display:none!important}.laydate-time-show .laydate-set-ym span[lay-type=month],.laydate-time-show .laydate-set-ym span[lay-type=year],.laydate-time-show .layui-laydate-header .layui-icon{display:none!important}.layui-laydate-header{position:relative;line-height:30px;padding:10px 70px 5px}.layui-laydate-header *{display:inline-block;vertical-align:bottom}.layui-laydate-header i{position:absolute;top:10px;padding:0 5px;color:#999;font-size:18px;cursor:pointer}.layui-laydate-header i.laydate-prev-y{left:15px}.layui-laydate-header i.laydate-prev-m{left:45px}.layui-laydate-header i.laydate-next-y{right:15px}.layui-laydate-header i.laydate-next-m{right:45px}.laydate-set-ym{width:100%;text-align:center;box-sizing:border-box;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.laydate-set-ym span{padding:0 10px;cursor:pointer}.laydate-time-text{cursor:default!important}.layui-laydate-content{position:relative;padding:10px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.layui-laydate-content table{border-collapse:collapse;border-spacing:0}.layui-laydate-content td,.layui-laydate-content th{width:36px;height:30px;padding:5px;text-align:center}.layui-laydate-content th{font-weight:400}.layui-laydate-content td{position:relative;cursor:pointer}.laydate-day-mark{position:absolute;left:0;top:0;width:100%;line-height:30px;font-size:12px;overflow:hidden}.laydate-day-mark::after{position:absolute;content:'';right:2px;top:2px;width:5px;height:5px;border-radius:50%}.layui-laydate-footer{position:relative;height:46px;line-height:26px;padding:10px}.layui-laydate-footer span{display:inline-block;vertical-align:top;height:26px;line-height:24px;padding:0 10px;border:1px solid #c9c9c9;border-radius:2px;background-color:#fff;font-size:12px;cursor:pointer;white-space:nowrap;transition:all .3s}.layui-laydate-footer span:hover{color:#5fb878}.layui-laydate-footer span.layui-laydate-preview{cursor:default;border-color:transparent!important}.layui-laydate-footer span.layui-laydate-preview:hover{color:#666}.layui-laydate-footer span:first-child.layui-laydate-preview{padding-left:0}.laydate-footer-btns{position:absolute;right:10px;top:10px}.laydate-footer-btns span{margin:0 0 0 -1px}.layui-laydate-list{position:absolute;left:0;top:0;width:100%;height:100%;padding:10px;box-sizing:border-box;background-color:#fff}.layui-laydate-list>li{position:relative;display:inline-block;width:33.3%;height:36px;line-height:36px;margin:3px 0;vertical-align:middle;text-align:center;cursor:pointer}.laydate-month-list>li{width:25%;margin:17px 0}.laydate-time-list>li{height:100%;margin:0;line-height:normal;cursor:default}.laydate-time-list p{position:relative;top:-4px;line-height:29px}.laydate-time-list ol{height:181px;overflow:hidden}.laydate-time-list>li:hover ol{overflow-y:auto}.laydate-time-list ol li{width:130%;padding-left:33px;height:30px;line-height:30px;text-align:left;cursor:pointer}.layui-laydate-hint{position:absolute;top:115px;left:50%;width:250px;margin-left:-125px;line-height:20px;padding:15px;text-align:center;font-size:12px;color:#ff5722}.layui-laydate-range{width:546px}.layui-laydate-range .layui-laydate-main{display:inline-block;vertical-align:middle}.layui-laydate-range .laydate-main-list-1 .layui-laydate-content,.layui-laydate-range .laydate-main-list-1 .layui-laydate-header{border-left:1px solid #e2e2e2}.layui-laydate,.layui-laydate-hint{border:1px solid #d2d2d2;box-shadow:0 2px 4px rgba(0,0,0,.12);background-color:#fff;color:#666}.layui-laydate-header{border-bottom:1px solid #e2e2e2}.layui-laydate-header i:hover,.layui-laydate-header span:hover{color:#5fb878}.layui-laydate-content{border-top:none 0;border-bottom:none 0}.layui-laydate-content th{color:#333}.layui-laydate-content td{color:#666}.layui-laydate-content td.laydate-selected{background-color:#b5fff8}.laydate-selected:hover{background-color:#00f7de!important}.layui-laydate-content td:hover,.layui-laydate-list li:hover{background-color:#eee;color:#333}.laydate-time-list li ol{margin:0;padding:0;border:1px solid #e2e2e2;border-left-width:0}.laydate-time-list li:first-child ol{border-left-width:1px}.laydate-time-list>li:hover{background:0 0}.layui-laydate-content .laydate-day-next,.layui-laydate-content .laydate-day-prev{color:#d2d2d2}.laydate-selected.laydate-day-next,.laydate-selected.laydate-day-prev{background-color:#f8f8f8!important}.layui-laydate-footer{border-top:1px solid #e2e2e2}.layui-laydate-hint{color:#ff5722}.laydate-day-mark::after{background-color:#5fb878}.layui-laydate-content td.layui-this .laydate-day-mark::after{display:none}.layui-laydate-footer span[lay-type=date]{color:#5fb878}.layui-laydate .layui-this{background-color:#009688!important;color:#fff!important}.layui-laydate .laydate-disabled,.layui-laydate .laydate-disabled:hover{background:0 0!important;color:#d2d2d2!important;cursor:not-allowed!important;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.laydate-theme-molv{border:none}.laydate-theme-molv.layui-laydate-range{width:548px}.laydate-theme-molv .layui-laydate-main{width:274px}.laydate-theme-molv .layui-laydate-header{border:none;background-color:#009688}.laydate-theme-molv .layui-laydate-header i,.laydate-theme-molv .layui-laydate-header span{color:#f6f6f6}.laydate-theme-molv .layui-laydate-header i:hover,.laydate-theme-molv .layui-laydate-header span:hover{color:#fff}.laydate-theme-molv .layui-laydate-content{border:1px solid #e2e2e2;border-top:none;border-bottom:none}.laydate-theme-molv .laydate-main-list-1 .layui-laydate-content{border-left:none}.laydate-theme-molv .layui-laydate-footer{border:1px solid #e2e2e2}.laydate-theme-grid .laydate-month-list>li,.laydate-theme-grid .laydate-year-list>li,.laydate-theme-grid .layui-laydate-content td,.laydate-theme-grid .layui-laydate-content thead{border:1px solid #e2e2e2}.laydate-theme-grid .laydate-selected,.laydate-theme-grid .laydate-selected:hover{background-color:#f2f2f2!important;color:#009688!important}.laydate-theme-grid .laydate-selected.laydate-day-next,.laydate-theme-grid .laydate-selected.laydate-day-prev{color:#d2d2d2!important}.laydate-theme-grid .laydate-month-list,.laydate-theme-grid .laydate-year-list{margin:1px 0 0 1px}.laydate-theme-grid .laydate-month-list>li,.laydate-theme-grid .laydate-year-list>li{margin:0 -1px -1px 0}.laydate-theme-grid .laydate-year-list>li{height:43px;line-height:43px}.laydate-theme-grid .laydate-month-list>li{height:71px;line-height:71px} \ No newline at end of file diff --git a/Bin/Debug/SuperDesign/SysDb/layui/css/modules/layer/default/icon-ext.png b/Bin/Debug/SuperDesign/SysDb/layui/css/modules/layer/default/icon-ext.png new file mode 100644 index 0000000..bbbb669 Binary files /dev/null and b/Bin/Debug/SuperDesign/SysDb/layui/css/modules/layer/default/icon-ext.png differ diff --git a/Bin/Debug/SuperDesign/SysDb/layui/css/modules/layer/default/icon.png b/Bin/Debug/SuperDesign/SysDb/layui/css/modules/layer/default/icon.png new file mode 100644 index 0000000..3e17da8 Binary files /dev/null and b/Bin/Debug/SuperDesign/SysDb/layui/css/modules/layer/default/icon.png differ diff --git a/Bin/Debug/SuperDesign/SysDb/layui/css/modules/layer/default/layer.css b/Bin/Debug/SuperDesign/SysDb/layui/css/modules/layer/default/layer.css new file mode 100644 index 0000000..d5122e3 --- /dev/null +++ b/Bin/Debug/SuperDesign/SysDb/layui/css/modules/layer/default/layer.css @@ -0,0 +1 @@ +html #layuicss-layer{display:none;position:absolute;width:1989px}.layui-layer,.layui-layer-shade{position:fixed;_position:absolute;pointer-events:auto}.layui-layer-shade{top:0;left:0;width:100%;height:100%;_height:expression(document.body.offsetHeight+"px")}.layui-layer{-webkit-overflow-scrolling:touch}.layui-layer{top:150px;left:0;margin:0;padding:0;background-color:#fff;-webkit-background-clip:content;border-radius:2px;box-shadow:1px 1px 50px rgba(0,0,0,.3)}.layui-layer-close{position:absolute}.layui-layer-content{position:relative}.layui-layer-border{border:1px solid #b2b2b2;border:1px solid rgba(0,0,0,.1);box-shadow:1px 1px 5px rgba(0,0,0,.2)}.layui-layer-load{background:url(loading-1.gif) #eee center center no-repeat}.layui-layer-ico{background:url(icon.png) no-repeat}.layui-layer-btn a,.layui-layer-dialog .layui-layer-ico,.layui-layer-setwin a{display:inline-block;*display:inline;*zoom:1;vertical-align:top}.layui-layer-move{display:none;position:fixed;*position:absolute;left:0;top:0;width:100%;height:100%;cursor:move;opacity:0;filter:alpha(opacity=0);background-color:#fff;z-index:2147483647}.layui-layer-resize{position:absolute;width:15px;height:15px;right:0;bottom:0;cursor:se-resize}.layer-anim{-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.3s;animation-duration:.3s}@-webkit-keyframes layer-bounceIn{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes layer-bounceIn{0%{opacity:0;-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.layer-anim-00{-webkit-animation-name:layer-bounceIn;animation-name:layer-bounceIn}@-webkit-keyframes layer-zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes layer-zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);-ms-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);-ms-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layer-anim-01{-webkit-animation-name:layer-zoomInDown;animation-name:layer-zoomInDown}@-webkit-keyframes layer-fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes layer-fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);-ms-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.layer-anim-02{-webkit-animation-name:layer-fadeInUpBig;animation-name:layer-fadeInUpBig}@-webkit-keyframes layer-zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes layer-zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);-ms-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);-ms-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layer-anim-03{-webkit-animation-name:layer-zoomInLeft;animation-name:layer-zoomInLeft}@-webkit-keyframes layer-rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0) rotate(0);transform:translateX(0) rotate(0)}}@keyframes layer-rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);-ms-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0) rotate(0);-ms-transform:translateX(0) rotate(0);transform:translateX(0) rotate(0)}}.layer-anim-04{-webkit-animation-name:layer-rollIn;animation-name:layer-rollIn}@keyframes layer-fadeIn{0%{opacity:0}100%{opacity:1}}.layer-anim-05{-webkit-animation-name:layer-fadeIn;animation-name:layer-fadeIn}@-webkit-keyframes layer-shake{0%,100%{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes layer-shake{0%,100%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);-ms-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);-ms-transform:translateX(10px);transform:translateX(10px)}}.layer-anim-06{-webkit-animation-name:layer-shake;animation-name:layer-shake}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.layui-layer-title{padding:0 80px 0 20px;height:50px;line-height:50px;border-bottom:1px solid #f0f0f0;font-size:14px;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:2px 2px 0 0}.layui-layer-setwin{position:absolute;right:15px;*right:0;top:17px;font-size:0;line-height:initial}.layui-layer-setwin a{position:relative;width:16px;height:16px;margin-left:10px;font-size:12px;_overflow:hidden}.layui-layer-setwin .layui-layer-min cite{position:absolute;width:14px;height:2px;left:0;top:50%;margin-top:-1px;background-color:#2e2d3c;cursor:pointer;_overflow:hidden}.layui-layer-setwin .layui-layer-min:hover cite{background-color:#2d93ca}.layui-layer-setwin .layui-layer-max{background-position:-32px -40px}.layui-layer-setwin .layui-layer-max:hover{background-position:-16px -40px}.layui-layer-setwin .layui-layer-maxmin{background-position:-65px -40px}.layui-layer-setwin .layui-layer-maxmin:hover{background-position:-49px -40px}.layui-layer-setwin .layui-layer-close1{background-position:1px -40px;cursor:pointer}.layui-layer-setwin .layui-layer-close1:hover{opacity:.7}.layui-layer-setwin .layui-layer-close2{position:absolute;right:-28px;top:-28px;width:30px;height:30px;margin-left:0;background-position:-149px -31px;*right:-18px;_display:none}.layui-layer-setwin .layui-layer-close2:hover{background-position:-180px -31px}.layui-layer-btn{text-align:right;padding:0 15px 12px;pointer-events:auto;user-select:none;-webkit-user-select:none}.layui-layer-btn a{height:28px;line-height:28px;margin:5px 5px 0;padding:0 15px;border:1px solid #dedede;background-color:#fff;color:#333;border-radius:2px;font-weight:400;cursor:pointer;text-decoration:none}.layui-layer-btn a:hover{opacity:.9;text-decoration:none}.layui-layer-btn a:active{opacity:.8}.layui-layer-btn .layui-layer-btn0{border-color:#1e9fff;background-color:#1e9fff;color:#fff}.layui-layer-btn-l{text-align:left}.layui-layer-btn-c{text-align:center}.layui-layer-dialog{min-width:300px}.layui-layer-dialog .layui-layer-content{position:relative;padding:20px;line-height:24px;word-break:break-all;overflow:hidden;font-size:14px;overflow-x:hidden;overflow-y:auto}.layui-layer-dialog .layui-layer-content .layui-layer-ico{position:absolute;top:16px;left:15px;_left:-40px;width:30px;height:30px}.layui-layer-ico1{background-position:-30px 0}.layui-layer-ico2{background-position:-60px 0}.layui-layer-ico3{background-position:-90px 0}.layui-layer-ico4{background-position:-120px 0}.layui-layer-ico5{background-position:-150px 0}.layui-layer-ico6{background-position:-180px 0}.layui-layer-rim{border:6px solid #8d8d8d;border:6px solid rgba(0,0,0,.3);border-radius:5px;box-shadow:none}.layui-layer-msg{min-width:180px;border:1px solid #d3d4d3;box-shadow:none}.layui-layer-hui{min-width:100px;background-color:#000;filter:alpha(opacity=60);background-color:rgba(0,0,0,.6);color:#fff;border:none}.layui-layer-hui .layui-layer-content{padding:12px 25px;text-align:center}.layui-layer-dialog .layui-layer-padding{padding:20px 20px 20px 55px;text-align:left}.layui-layer-page .layui-layer-content{position:relative;overflow:auto}.layui-layer-iframe .layui-layer-btn,.layui-layer-page .layui-layer-btn{padding-top:10px}.layui-layer-nobg{background:0 0}.layui-layer-iframe iframe{display:block;width:100%}.layui-layer-loading{border-radius:100%;background:0 0;box-shadow:none;border:none}.layui-layer-loading .layui-layer-content{width:60px;height:24px;background:url(loading-0.gif) no-repeat}.layui-layer-loading .layui-layer-loading1{width:37px;height:37px;background:url(loading-1.gif) no-repeat}.layui-layer-ico16,.layui-layer-loading .layui-layer-loading2{width:32px;height:32px;background:url(loading-2.gif) no-repeat}.layui-layer-tips{background:0 0;box-shadow:none;border:none}.layui-layer-tips .layui-layer-content{position:relative;line-height:22px;min-width:12px;padding:8px 15px;font-size:12px;_float:left;border-radius:2px;box-shadow:1px 1px 3px rgba(0,0,0,.2);background-color:#000;color:#fff}.layui-layer-tips .layui-layer-close{right:-2px;top:-1px}.layui-layer-tips i.layui-layer-TipsG{position:absolute;width:0;height:0;border-width:8px;border-color:transparent;border-style:dashed;*overflow:hidden}.layui-layer-tips i.layui-layer-TipsB,.layui-layer-tips i.layui-layer-TipsT{left:5px;border-right-style:solid;border-right-color:#000}.layui-layer-tips i.layui-layer-TipsT{bottom:-8px}.layui-layer-tips i.layui-layer-TipsB{top:-8px}.layui-layer-tips i.layui-layer-TipsL,.layui-layer-tips i.layui-layer-TipsR{top:5px;border-bottom-style:solid;border-bottom-color:#000}.layui-layer-tips i.layui-layer-TipsR{left:-8px}.layui-layer-tips i.layui-layer-TipsL{right:-8px}.layui-layer-lan[type=dialog]{min-width:280px}.layui-layer-lan .layui-layer-title{background:#4476a7;color:#fff;border:none}.layui-layer-lan .layui-layer-btn{padding:5px 10px 10px;text-align:right;border-top:1px solid #e9e7e7}.layui-layer-lan .layui-layer-btn a{background:#fff;border-color:#e9e7e7;color:#333}.layui-layer-lan .layui-layer-btn .layui-layer-btn1{background:#c9c5c5}.layui-layer-molv .layui-layer-title{background:#009f95;color:#fff;border:none}.layui-layer-molv .layui-layer-btn a{background:#009f95;border-color:#009f95}.layui-layer-molv .layui-layer-btn .layui-layer-btn1{background:#92b8b1}.layui-layer-iconext{background:url(icon-ext.png) no-repeat}.layui-layer-prompt .layui-layer-input{display:block;width:260px;height:36px;margin:0 auto;line-height:30px;padding-left:10px;border:1px solid #e6e6e6;color:#333}.layui-layer-prompt textarea.layui-layer-input{width:300px;height:100px;line-height:20px;padding:6px 10px}.layui-layer-prompt .layui-layer-content{padding:20px}.layui-layer-prompt .layui-layer-btn{padding-top:0}.layui-layer-tab{box-shadow:1px 1px 50px rgba(0,0,0,.4)}.layui-layer-tab .layui-layer-title{padding-left:0;overflow:visible}.layui-layer-tab .layui-layer-title span{position:relative;float:left;min-width:80px;max-width:300px;padding:0 20px;text-align:center;cursor:default;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;cursor:pointer}.layui-layer-tab .layui-layer-title span.layui-this{height:51px;border-left:1px solid #eee;border-right:1px solid #eee;background-color:#fff;z-index:10}.layui-layer-tab .layui-layer-title span:first-child{border-left:none}.layui-layer-tabmain{line-height:24px;clear:both}.layui-layer-tabmain .layui-layer-tabli{display:none}.layui-layer-tabmain .layui-layer-tabli.layui-this{display:block}.layui-layer-photos{background:0 0;box-shadow:none}.layui-layer-photos .layui-layer-content{overflow:hidden;text-align:center}.layui-layer-photos .layui-layer-phimg img{position:relative;width:100%;display:inline-block;*display:inline;*zoom:1;vertical-align:top}.layui-layer-imgnext,.layui-layer-imgprev{position:fixed;top:50%;width:27px;_width:44px;height:44px;margin-top:-22px;outline:0;blr:expression(this.onFocus=this.blur())}.layui-layer-imgprev{left:30px;background-position:-5px -5px;_background-position:-70px -5px}.layui-layer-imgprev:hover{background-position:-33px -5px;_background-position:-120px -5px}.layui-layer-imgnext{right:30px;_right:8px;background-position:-5px -50px;_background-position:-70px -50px}.layui-layer-imgnext:hover{background-position:-33px -50px;_background-position:-120px -50px}.layui-layer-imgbar{position:fixed;left:0;right:0;bottom:0;width:100%;height:40px;line-height:40px;background-color:#000\9;filter:Alpha(opacity=60);background-color:rgba(2,0,0,.35);color:#fff;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:0}.layui-layer-imgtit *{display:inline-block;*display:inline;*zoom:1;vertical-align:top;font-size:12px}.layui-layer-imgtit a{max-width:65%;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;color:#fff}.layui-layer-imgtit a:hover{color:#fff;text-decoration:underline}.layui-layer-imgtit em{padding-left:10px;font-style:normal}@-webkit-keyframes layer-bounceOut{100%{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1.05);transform:scale(1.05)}0%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes layer-bounceOut{100%{opacity:0;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1.05);-ms-transform:scale(1.05);transform:scale(1.05)}0%{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.layer-anim-close{-webkit-animation-name:layer-bounceOut;animation-name:layer-bounceOut;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.2s;animation-duration:.2s}@media screen and (max-width:1100px){.layui-layer-iframe{overflow-y:auto;-webkit-overflow-scrolling:touch}} \ No newline at end of file diff --git a/Bin/Debug/SuperDesign/SysDb/layui/css/modules/layer/default/loading-0.gif b/Bin/Debug/SuperDesign/SysDb/layui/css/modules/layer/default/loading-0.gif new file mode 100644 index 0000000..6f3c953 Binary files /dev/null and b/Bin/Debug/SuperDesign/SysDb/layui/css/modules/layer/default/loading-0.gif differ diff --git a/Bin/Debug/SuperDesign/SysDb/layui/css/modules/layer/default/loading-1.gif b/Bin/Debug/SuperDesign/SysDb/layui/css/modules/layer/default/loading-1.gif new file mode 100644 index 0000000..db3a483 Binary files /dev/null and b/Bin/Debug/SuperDesign/SysDb/layui/css/modules/layer/default/loading-1.gif differ diff --git a/Bin/Debug/SuperDesign/SysDb/layui/css/modules/layer/default/loading-2.gif b/Bin/Debug/SuperDesign/SysDb/layui/css/modules/layer/default/loading-2.gif new file mode 100644 index 0000000..5bb90fd Binary files /dev/null and b/Bin/Debug/SuperDesign/SysDb/layui/css/modules/layer/default/loading-2.gif differ diff --git a/Bin/Debug/SuperDesign/SysDb/layui/font/iconfont.eot b/Bin/Debug/SuperDesign/SysDb/layui/font/iconfont.eot new file mode 100644 index 0000000..622d7ec Binary files /dev/null and b/Bin/Debug/SuperDesign/SysDb/layui/font/iconfont.eot differ diff --git a/Bin/Debug/SuperDesign/SysDb/layui/font/iconfont.svg b/Bin/Debug/SuperDesign/SysDb/layui/font/iconfont.svg new file mode 100644 index 0000000..999ca1f --- /dev/null +++ b/Bin/Debug/SuperDesign/SysDb/layui/font/iconfont.svg @@ -0,0 +1,554 @@ + + + + + +Created by iconfont + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Bin/Debug/SuperDesign/SysDb/layui/font/iconfont.ttf b/Bin/Debug/SuperDesign/SysDb/layui/font/iconfont.ttf new file mode 100644 index 0000000..06e30f9 Binary files /dev/null and b/Bin/Debug/SuperDesign/SysDb/layui/font/iconfont.ttf differ diff --git a/Bin/Debug/SuperDesign/SysDb/layui/font/iconfont.woff b/Bin/Debug/SuperDesign/SysDb/layui/font/iconfont.woff new file mode 100644 index 0000000..66a1783 Binary files /dev/null and b/Bin/Debug/SuperDesign/SysDb/layui/font/iconfont.woff differ diff --git a/Bin/Debug/SuperDesign/SysDb/layui/font/iconfont.woff2 b/Bin/Debug/SuperDesign/SysDb/layui/font/iconfont.woff2 new file mode 100644 index 0000000..47e9980 Binary files /dev/null and b/Bin/Debug/SuperDesign/SysDb/layui/font/iconfont.woff2 differ diff --git a/Bin/Debug/SuperDesign/SysDb/layui/layui.js b/Bin/Debug/SuperDesign/SysDb/layui/layui.js new file mode 100644 index 0000000..15c2f38 --- /dev/null +++ b/Bin/Debug/SuperDesign/SysDb/layui/layui.js @@ -0,0 +1 @@ +/** 2.7.1 | MIT Licensed */;!function(d){"use strict";var t,h=d.document,m={modules:{},status:{},timeout:10,event:{}},r=function(){this.v="2.7.1"},e=d.LAYUI_GLOBAL||{},v=(t=h.currentScript?h.currentScript.src:function(){for(var t,e=h.scripts,o=e.length-1,r=o;01e3*m.timeout/4?g(u+" is not a valid module","error"):void(m.status[u]?c():setTimeout(r,4))}())}function c(){e.push(layui[u]),11e3*m.timeout/4?g(u+" is not a valid module","error"):void("string"==typeof m.modules[u]&&m.status[u]?c():setTimeout(f,4))}():((p=h.createElement("script"))["async"]=!0,p.charset="utf-8",p.src=y+((i=!0===m.version?m.v||(new Date).getTime():m.version||"")?"?v="+i:""),a.appendChild(p),!p.attachEvent||p.attachEvent.toString&&p.attachEvent.toString().indexOf("[native code")<0||b?p.addEventListener("load",function(t){s(t,y)},!1):p.attachEvent("onreadystatechange",function(t){s(t,y)}),m.modules[u]=y),n},r.prototype.disuse=function(t){var o=this;t=o.isArray(t)?t:[t],o.each(t,function(t,e){if(!m.status[e])return g("module "+e+" is not exist");delete o[e],delete N[e],delete o.modules[e],delete m.status[e],delete m.modules[e]})},r.prototype.getStyle=function(t,e){t=t.currentStyle||d.getComputedStyle(t,null);return t[t.getPropertyValue?"getPropertyValue":"getAttribute"](e)},r.prototype.link=function(o,r,t){var n=this,e=h.getElementsByTagName("head")[0],i=h.createElement("link"),t=((t="string"==typeof r?r:t)||o).replace(/\.|\//g,""),a=i.id="layuicss-"+t,u="creating",l=0;return i.rel="stylesheet",i.href=o+(m.debug?"?v="+(new Date).getTime():""),i.media="all",h.getElementById(a)||e.appendChild(i),"function"!=typeof r||function s(t){var e=h.getElementById(a);return++l>1e3*m.timeout/100?g(o+" timeout"):void(1989===parseInt(n.getStyle(e,"width"))?(t===u&&e.removeAttribute("lay-status"),e.getAttribute("lay-status")===u?setTimeout(s,100):r()):(e.setAttribute("lay-status",u),setTimeout(function(){s(u)},100)))}(),n},r.prototype.addcss=function(t,e,o){return layui.link(m.dir+"css/"+t,e,o)},m.callback={},r.prototype.factory=function(t){if(layui[t])return"function"==typeof m.callback[t]?m.callback[t]:null},r.prototype.img=function(t,e,o){var r=new Image;if(r.src=t,r.complete)return e(r);r.onload=function(){r.onload=null,"function"==typeof e&&e(r)},r.onerror=function(t){r.onerror=null,"function"==typeof o&&o(t)}},r.prototype.config=function(t){for(var e in t=t||{})m[e]=t[e];return this},r.prototype.modules=function(){var t,e={};for(t in N)e[t]=N[t];return e}(),r.prototype.extend=function(t){for(var e in t=t||{})this[e]||this.modules[e]?g(e+" Module already exists","error"):this.modules[e]=t[e];return this},r.prototype.router=r.prototype.hash=function(t){var o={path:[],search:{},hash:((t=t||location.hash).match(/[^#](#.*$)/)||[])[1]||""};return/^#\//.test(t)&&(t=t.replace(/^#\//,""),o.href="/"+t,t=t.replace(/([^#])(#.*$)/,"$1").split("/")||[],this.each(t,function(t,e){/^\w+=/.test(e)?(e=e.split("="),o.search[e[0]]=e[1]):o.path.push(e)})),o},r.prototype.url=function(t){var n,e,o=this;return{pathname:(t?((t.match(/\.[^.]+?\/.+/)||[])[0]||"").replace(/^[^\/]+/,"").replace(/\?.+/,""):location.pathname).replace(/^\//,"").split("/"),search:(n={},e=(t?((t.match(/\?.+/)||[])[0]||"").replace(/\#.+/,""):location.search).replace(/^\?+/,"").split("&"),o.each(e,function(t,e){var o=e.indexOf("="),r=o<0?e.substr(0,e.length):0!==o&&e.substr(0,o);r&&(n[r]=0(l.innerHeight||f.documentElement.clientHeight)},h.position=function(t,e,n){var o,i,r,c,u,a,s;e&&(n=n||{},t!==f&&t!==h("body")[0]||(n.clickType="right"),u="right"===n.clickType?{left:(u=n.e||l.event||{}).clientX,top:u.clientY,right:u.clientX,bottom:u.clientY}:t.getBoundingClientRect(),a=e.offsetWidth,s=e.offsetHeight,o=function(t){return f.body[t=t?"scrollLeft":"scrollTop"]|f.documentElement[t]},r=u.left,c=u.bottom,"center"===n.align?r-=(a-t.offsetWidth)/2:"right"===n.align&&(r=r-a+t.offsetWidth),(r=r+a+5>(i=function(t){return f.documentElement[t?"clientWidth":"clientHeight"]})("width")?i("width")-a-5:r)<5&&(r=5),c+s+5>i()&&(u.top>s+5?c=u.top-s-10:"right"===n.clickType?(c=i()-s-10)<0&&(c=0):c=5),(a=n.position)&&(e.style.position=a),e.style.left=r+("fixed"===a?0:o(1))+"px",e.style.top=c+("fixed"===a?0:o())+"px",h.hasScrollbar()||(s=e.getBoundingClientRect(),!n.SYSTEM_RELOAD&&s.bottom+5>i()&&(n.SYSTEM_RELOAD=!0,setTimeout(function(){h.position(t,e,n)},50))))},h.options=function(t,e){t=h(t),e=e||"lay-options";try{return new Function("return "+(t.attr(e)||"{}"))()}catch(n){return hint.error("parseerror\uff1a"+n,"error"),{}}},h.isTopElem=function(n){var t=[f,h("body")[0]],o=!1;return h.each(t,function(t,e){if(e===n)return o=!0}),o},i.addStr=function(n,t){return n=n.replace(/\s+/," "),t=t.replace(/\s+/," ").split(" "),h.each(t,function(t,e){new RegExp("\\b"+e+"\\b").test(n)||(n=n+" "+e)}),n.replace(/^\s|\s$/,"")},i.removeStr=function(n,t){return n=n.replace(/\s+/," "),t=t.replace(/\s+/," ").split(" "),h.each(t,function(t,e){e=new RegExp("\\b"+e+"\\b");e.test(n)&&(n=n.replace(e,""))}),n.replace(/\s+/," ").replace(/^\s|\s$/,"")},i.prototype.find=function(o){var i=this,r=0,c=[],u="object"==typeof o;return this.each(function(t,e){for(var n=u?e.contains(o):e.querySelectorAll(o||null);r]|&(?=#[a-zA-Z0-9]+)/g.test(e+="")?e.replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,"""):e},error:function(e,r){var n="Laytpl Error: ";return"object"==typeof console&&console.error(n+e+"\n"+(r||"")),n+e}},l=a.exp,r=function(e){this.tpl=e},n=(r.pt=r.prototype,window.errors=0,r.pt.parse=function(e,r){var n=e,c=l("^"+p.open+"#",""),t=l(p.close+"$","");e='"use strict";var view = "'+(e=e.replace(/\s+|\r|\t|\n/g," ").replace(l(p.open+"#"),p.open+"# ").replace(l(p.close+"}"),"} "+p.close).replace(/\\/g,"\\\\").replace(l(p.open+"!(.+?)!"+p.close),function(e){return e=e.replace(l("^"+p.open+"!"),"").replace(l("!"+p.close),"").replace(l(p.open+"|"+p.close),function(e){return e.replace(/(.)/g,"\\$1")})}).replace(/(?="|')/g,"\\").replace(a.query(),function(e){return'";'+(e=e.replace(c,"").replace(t,"")).replace(/\\(.)/g,"$1")+';view+="'}).replace(a.query(1),function(e){var r='"+laytpl.escape(';return e.replace(/\s/g,"")===p.open+p.close?"":(e=e.replace(l(p.open+"|"+p.close),""),/^=/.test(e)?e=e.replace(/^=/,""):/^-/.test(e)&&(e=e.replace(/^-/,""),r='"+('),r+e.replace(/\\(.)/g,"$1")+')+"')}))+'";return view;';try{return this.cache=e=new Function("d, laytpl",e),e(r,a)}catch(o){return delete this.cache,a.error(o,n)}},r.pt.render=function(e,r){var n=this;return e?(e=n.cache?n.cache(e,a):n.parse(n.tpl,e),r?void r(e):e):a.error("no data")},function(e){return"string"!=typeof e?a.error("Template not found"):new r(e)});n.config=function(e){for(var r in e=e||{})p[r]=e[r]},n.v="1.2.0",e("laytpl",n)});layui.define(function(e){"use strict";var n=document,u="getElementById",c="getElementsByTagName",a="layui-disabled",t=function(e){var a=this;a.config=e||{},a.config.index=++o.index,a.render(!0)},o=(t.prototype.type=function(){var e=this.config;if("object"==typeof e.elem)return e.elem.length===undefined?2:3},t.prototype.view=function(){var t,i,r=this.config,n=r.groups="groups"in r?Number(r.groups)||0:5,u=(r.layout="object"==typeof r.layout?r.layout:["prev","page","next"],r.count=Number(r.count)||0,r.curr=Number(r.curr)||1,r.limits="object"==typeof r.limits?r.limits:[10,20,30,40,50],r.limit=Number(r.limit)||10,r.pages=Math.ceil(r.count/r.limit)||1,r.curr>r.pages?r.curr=r.pages:r.curr<1&&(r.curr=1),n<0?n=1:n>r.pages&&(n=r.pages),r.prev="prev"in r?r.prev:"上一页",r.next="next"in r?r.next:"下一页",r.pages>n?Math.ceil((r.curr+(1'+r.prev+"":"",page:function(){var e=[];if(r.count<1)return"";1'+(r.first||1)+"");var a=Math.floor((n-1)/2),t=1r.pages?r.pages:a:n;for(i-t…');t<=i;t++)t===r.curr?e.push('"+t+""):e.push(''+t+"");return r.pages>n&&r.pages>i&&!1!==r.last&&(i+1…'),0!==n&&e.push(''+(r.last||r.pages)+"")),e.join("")}(),next:r.next?''+r.next+"":"",count:'\u5171 '+r.count+" \u6761",limit:(t=['"),refresh:['','',""].join(""),skip:['到第','','页',""].join("")};return['
',(i=[],layui.each(r.layout,function(e,a){s[a]&&i.push(s[a])}),i.join("")),"
"].join("")},t.prototype.jump=function(e,a){if(e){var t=this,i=t.config,r=e.children,n=e[c]("button")[0],u=e[c]("input")[0],e=e[c]("select")[0],s=function(){var e=Number(u.value.replace(/\s|\D/g,""));e&&(i.curr=e,t.render())};if(a)return s();for(var l=0,p=r.length;li.pages||(i.curr=e,t.render())});e&&o.on(e,"change",function(){var e=this.value;i.curr*e>i.count&&(i.curr=Math.ceil(i.count/e)),i.limit=e,t.render()}),n&&o.on(n,"click",function(){s()})}},t.prototype.skip=function(t){var i,e;t&&(i=this,(e=t[c]("input")[0])&&o.on(e,"keyup",function(e){var a=this.value,e=e.keyCode;/^(37|38|39|40)$/.test(e)||(/\D/.test(a)&&(this.value=a.replace(/\D/,"")),13===e&&i.jump(t,!0))}))},t.prototype.render=function(e){var a=this,t=a.config,i=a.type(),r=a.view(),i=(2===i?t.elem&&(t.elem.innerHTML=r):3===i?t.elem.html(r):n[u](t.elem)&&(n[u](t.elem).innerHTML=r),t.jump&&t.jump(t,e),n[u]("layui-laypage-"+t.index));a.jump(i),t.hash&&!e&&(location.hash="!"+t.hash+"="+t.curr),a.skip(i)},{render:function(e){return new t(e).index},index:layui.laypage?layui.laypage.index+1e4:0,on:function(a,e,t){return a.attachEvent?a.attachEvent("on"+e,function(e){e.target=e.srcElement,t.call(a,e)}):a.addEventListener(e,t,!1),this}});e("laypage",o)});!function(i,r){"use strict";var n=i.layui&&layui.define,l={getPath:i.lay&&lay.getPath?lay.getPath:"",link:function(e,t,a){u.path&&i.lay&&lay.layui&&lay.layui.link(u.path+e,t,a)}},e=i.LAYUI_GLOBAL||{},u={v:"5.3.1",config:{weekStart:0},index:i.laydate&&i.laydate.v?1e5:0,path:e.laydate_dir||l.getPath,set:function(e){var t=this;return t.config=lay.extend({},t.config,e),t},ready:function(e){var t="laydate",a=(n?"modules/laydate/":"theme/")+"default/laydate.css?v="+u.v;return n?layui.addcss(a,e,t):l.link(a,e,t),this}},s=function(){var t=this,e=t.config.id;return{hint:function(e){t.hint.call(t,e)},config:(s.that[e]=t).config}},a="laydate",w="layui-this",x="laydate-disabled",h=[100,2e5],p="layui-laydate-static",M="layui-laydate-list",o="layui-laydate-hint",E=".laydate-btns-confirm",C="laydate-time-text",k="laydate-btns-time",f="layui-laydate-preview",g=function(e){var t=this;t.index=++u.index,t.config=lay.extend({},t.config,u.config,e),(e=t.config).id="id"in e?e.id:t.index,u.ready(function(){t.init()})},y="yyyy|y|MM|M|dd|d|HH|H|mm|m|ss|s";s.formatArr=function(e){return(e||"").match(new RegExp(y+"|.","g"))||[]},g.isLeapYear=function(e){return e%4==0&&e%100!=0||e%400==0},g.prototype.config={type:"date",range:!1,format:"yyyy-MM-dd",value:null,isInitValue:!0,min:"1900-1-1",max:"2099-12-31",trigger:"click",show:!1,showBottom:!0,isPreview:!0,btns:["clear","now","confirm"],lang:"cn",theme:"default",position:null,calendar:!1,mark:{},zIndex:null,done:null,change:null},g.prototype.lang=function(){var e={cn:{weeks:["\u65e5","\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d"],time:["\u65f6","\u5206","\u79d2"],timeTips:"\u9009\u62e9\u65f6\u95f4",startTime:"\u5f00\u59cb\u65f6\u95f4",endTime:"\u7ed3\u675f\u65f6\u95f4",dateTips:"\u8fd4\u56de\u65e5\u671f",month:["\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d","\u4e03","\u516b","\u4e5d","\u5341","\u5341\u4e00","\u5341\u4e8c"],tools:{confirm:"\u786e\u5b9a",clear:"\u6e05\u7a7a",now:"\u73b0\u5728"},timeout:"\u7ed3\u675f\u65f6\u95f4\u4e0d\u80fd\u65e9\u4e8e\u5f00\u59cb\u65f6\u95f4
\u8bf7\u91cd\u65b0\u9009\u62e9",invalidDate:"\u4e0d\u5728\u6709\u6548\u65e5\u671f\u6216\u65f6\u95f4\u8303\u56f4\u5185",formatError:["\u65e5\u671f\u683c\u5f0f\u4e0d\u5408\u6cd5
\u5fc5\u987b\u9075\u5faa\u4e0b\u8ff0\u683c\u5f0f\uff1a
","
\u5df2\u4e3a\u4f60\u91cd\u7f6e"],preview:"\u5f53\u524d\u9009\u4e2d\u7684\u7ed3\u679c"},en:{weeks:["Su","Mo","Tu","We","Th","Fr","Sa"],time:["Hours","Minutes","Seconds"],timeTips:"Select Time",startTime:"Start Time",endTime:"End Time",dateTips:"Select Date",month:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],tools:{confirm:"Confirm",clear:"Clear",now:"Now"},timeout:"End time cannot be less than start Time
Please re-select",invalidDate:"Invalid date",formatError:["The date format error
Must be followed\uff1a
","
It has been reset"],preview:"The selected result"}};return e[this.config.lang]||e.cn},g.prototype.init=function(){var r=this,o=r.config,e="static"===o.position,t={year:"yyyy",month:"yyyy-MM",date:"yyyy-MM-dd",time:"HH:mm:ss",datetime:"yyyy-MM-dd HH:mm:ss"};o.elem=lay(o.elem),o.eventElem=lay(o.eventElem),o.elem[0]&&(r.rangeStr=o.range?"string"==typeof o.range?o.range:"-":"","array"===layui.type(o.range)&&(r.rangeElem=[lay(o.range[0]),lay(o.range[1])]),t[o.type]||(i.console&&console.error&&console.error("laydate type error:'"+o.type+"' is not supported"),o.type="date"),o.format===t.date&&(o.format=t[o.type]||t.date),r.format=s.formatArr(o.format),o.weekStart&&!/^[0-6]$/.test(o.weekStart)&&(t=r.lang(),o.weekStart=t.weeks.indexOf(o.weekStart),-1===o.weekStart&&(o.weekStart=0)),r.EXP_IF="",r.EXP_SPLIT="",lay.each(r.format,function(e,t){e=new RegExp(y).test(t)?"\\d{"+(new RegExp(y).test(r.format[0===e?e+1:e-1]||"")?/^yyyy|y$/.test(t)?4:t.length:/^yyyy$/.test(t)?"1,4":/^y$/.test(t)?"1,308":"1,2")+"}":"\\"+t;r.EXP_IF=r.EXP_IF+e,r.EXP_SPLIT=r.EXP_SPLIT+"("+e+")"}),r.EXP_IF_ONE=new RegExp("^"+r.EXP_IF+"$"),r.EXP_IF=new RegExp("^"+(o.range?r.EXP_IF+"\\s\\"+r.rangeStr+"\\s"+r.EXP_IF:r.EXP_IF)+"$"),r.EXP_SPLIT=new RegExp("^"+r.EXP_SPLIT+"$",""),r.isInput(o.elem[0])||"focus"===o.trigger&&(o.trigger="click"),o.elem.attr("lay-key")||(o.elem.attr("lay-key",r.index),o.eventElem.attr("lay-key",r.index)),o.mark=lay.extend({},o.calendar&&"cn"===o.lang?{"0-1-1":"\u5143\u65e6","0-2-14":"\u60c5\u4eba","0-3-8":"\u5987\u5973","0-3-12":"\u690d\u6811","0-4-1":"\u611a\u4eba","0-5-1":"\u52b3\u52a8","0-5-4":"\u9752\u5e74","0-6-1":"\u513f\u7ae5","0-9-10":"\u6559\u5e08","0-10-1":"\u56fd\u5e86","0-12-25":"\u5723\u8bde"}:{},o.mark),lay.each(["min","max"],function(e,t){var a,n,i=[],l=[];l="number"==typeof o[t]?(n=o[t],a=new Date,a=r.newDate({year:a.getFullYear(),month:a.getMonth(),date:a.getDate(),hours:"23",minutes:"59",seconds:"59"}).getTime(),i=[(n=new Date(n?n<864e5?a+864e5*n:n:a)).getFullYear(),n.getMonth()+1,n.getDate()],[n.getHours(),n.getMinutes(),n.getSeconds()]):(i=(o[t].match(/\d+-\d+-\d+/)||[""])[0].split("-"),(o[t].match(/\d+:\d+:\d+/)||[""])[0].split(":")),o[t]={year:0|i[0]||(new Date).getFullYear(),month:i[1]?(0|i[1])-1:(new Date).getMonth(),date:0|i[2]||(new Date).getDate(),hours:0|l[0],minutes:0|l[1],seconds:0|l[2]}}),r.elemID="layui-laydate"+o.elem.attr("lay-key"),(o.show||e)&&r.render(),e||r.events(),o.value&&o.isInitValue&&("date"===layui.type(o.value)?r.setValue(r.parse(0,r.systemDate(o.value))):r.setValue(o.value)))},g.prototype.render=function(){var n,e,t=this,o=t.config,s=t.lang(),i="static"===o.position,a=t.elem=lay.elem("div",{id:t.elemID,"class":["layui-laydate",o.range?" layui-laydate-range":"",i?" "+p:"",o.theme&&"default"!==o.theme&&!/^#/.test(o.theme)?" laydate-theme-"+o.theme:""].join("")}),y=t.elemMain=[],d=t.elemHeader=[],m=t.elemCont=[],c=t.table=[],l=t.footer=lay.elem("div",{"class":"layui-laydate-footer"});o.zIndex&&(a.style.zIndex=o.zIndex),lay.each(new Array(2),function(e){if(!o.range&&0'+s.timeTips+""),!o.range&&"datetime"===o.type||e.push(''),lay.each(o.btns,function(e,t){var a=s.tools[t]||"btn";o.range&&"now"===t||(i&&"clear"===t&&(a="cn"===o.lang?"\u91cd\u7f6e":"Reset"),n.push(''+a+""))}),e.push('"),e.join(""))),lay.each(y,function(e,t){a.appendChild(t)}),o.showBottom&&a.appendChild(l),/^#/.test(o.theme)&&(e=lay.elem("style"),l=["#{{id}} .layui-laydate-header{background-color:{{theme}};}","#{{id}} .layui-this{background-color:{{theme}} !important;}"].join("").replace(/{{id}}/g,t.elemID).replace(/{{theme}}/g,o.theme),"styleSheet"in e?(e.setAttribute("type","text/css"),e.styleSheet.cssText=l):e.innerHTML=l,lay(a).addClass("laydate-theme-molv"),a.appendChild(e)),t.remove(g.thisElemDate),u.thisId=o.id,i?o.elem.append(a):(r.body.appendChild(a),t.position()),t.checkDate().calendar(null,0,"init"),t.changeEvent(),g.thisElemDate=t.elemID,"function"==typeof o.ready&&o.ready(lay.extend({},o.dateTime,{month:o.dateTime.month+1})),t.preview()},g.prototype.remove=function(e){var t=this,a=(t.config,lay("#"+(e||t.elemID)));return a[0]&&(a.hasClass(p)||t.checkDate(function(){a.remove(),delete u.thisId})),t},g.prototype.position=function(){var e=this.config;return lay.position(this.bindElem||e.elem[0],this.elem,{position:e.position}),this},g.prototype.hint=function(e){var t=this,a=(t.config,lay.elem("div",{"class":o}));t.elem&&(a.innerHTML=e||"",lay(t.elem).find("."+o).remove(),t.elem.appendChild(a),clearTimeout(t.hinTimer),t.hinTimer=setTimeout(function(){lay(t.elem).find("."+o).remove()},3e3))},g.prototype.getAsYM=function(e,t,a){return a?t--:t++,t<0&&(t=11,e--),11h[1]&&(e.year=h[1],o=!0),11t&&(e.date=t,o=!0)},r=function(n,i,l){var r=["startTime","endTime"];i=(i.match(s.EXP_SPLIT)||[]).slice(1),l=l||0,y.range&&(s[r[l]]=s[r[l]]||{}),lay.each(s.format,function(e,t){var a=parseFloat(i[e]);i[e].lengthc(y.max)?n=y.dateTime=lay.extend({},y.max):c(n)c(y.max))&&(s.endDate=lay.extend({},y.max)),e&&e(),s},g.prototype.mark=function(e,a){var n,t=this.config;return lay.each(t.mark,function(e,t){e=e.split("-");e[0]!=a[0]&&0!=e[0]||e[1]!=a[1]&&0!=e[1]||e[2]!=a[2]||(n=t||a[2])}),n&&e.html(''+n+""),this},g.prototype.limit=function(e,t,a,i){var l=this,n=l.config,r={},a=n[41r.max,e&&e[t?"addClass":"removeClass"](x),t},g.prototype.thisDateTime=function(e){var t=this.config;return e?this.endDate:t.dateTime},g.prototype.calendar=function(e,t,a){var i,l,r,o=this,n=o.config,t=t?1:0,s=e||o.thisDateTime(t),y=new Date,d=o.lang(),m="date"!==n.type&&"datetime"!==n.type,c=lay(o.table[t]).find("td"),t=lay(o.elemHeader[t][2]).find("span");return s.yearh[1]&&(s.year=h[1],o.hint(d.invalidDate)),o.firstDate||(o.firstDate=lay.extend({},s)),y.setFullYear(s.year,s.month,1),i=(y.getDay()+(7-n.weekStart))%7,l=u.getEndDate(s.month||12,s.year),r=u.getEndDate(s.month+1,s.year),lay.each(c,function(e,t){var a=[s.year,s.month],n=0;(t=lay(t)).removeAttr("class"),e"+d.time[t]+"

    "];lay.each(new Array(e),function(e){n.push(""+lay.digit(e,2)+"")}),a.innerHTML=n.join("")+"
",m.appendChild(a)}),l()),p&&h.removeChild(p),h.appendChild(m),"year"===t||"month"===t?(lay(o.elemMain[n]).addClass("laydate-ym-show"),lay(m).find("li").on("click",function(){var e=0|lay(this).attr("lay-ym");lay(this).hasClass(x)||(0===n?(y[t]=e,o.limit(lay(o.footer).find(E),null,0)):o.endDate[t]=e,"year"===s.type||"month"===s.type?(lay(m).find("."+w).removeClass(w),lay(this).addClass(w),"month"===s.type&&"year"===t&&(o.listYM[n][0]=e,a&&((n?o.endDate:y).year=e),o.list("month",n))):(o.checkDate("limit").calendar(null,n),o.closeList()),o.setBtnStatus(),s.range||("month"===s.type&&"month"===t||"year"===s.type&&"year"===t)&&o.setValue(o.parse()).remove().done(),o.done(null,"change"),lay(o.footer).find("."+k).removeClass(x))})):(e=lay.elem("span",{"class":C}),r=function(){lay(m).find("ol").each(function(e){var a=this,t=lay(a).find("li");a.scrollTop=30*(o[D][T[e]]-2),a.scrollTop<=0&&t.each(function(e,t){if(!lay(this).hasClass(x))return a.scrollTop=30*(e-2),!0})})},u=lay(c[2]).find("."+C),r(),e.innerHTML=s.range?[d.startTime,d.endTime][n]:d.timeTips,lay(o.elemMain[n]).addClass("laydate-time-show"),u[0]&&u.remove(),c[2].appendChild(e),lay(m).find("ol").each(function(t){var a=this;lay(a).find("li").on("click",function(){var e=0|this.innerHTML;lay(this).hasClass(x)||(s.range?o[D][T[t]]=e:y[T[t]]=e,lay(a).find("."+w).removeClass(w),lay(this).addClass(w),l(),r(),!o.endDate&&"time"!==s.type||o.done(null,"change"),o.setBtnStatus())})})),o},g.prototype.listYM=[],g.prototype.closeList=function(){var a=this;a.config;lay.each(a.elemCont,function(e,t){lay(this).find("."+M).remove(),lay(a.elemMain[e]).removeClass("laydate-ym-show laydate-time-show")}),lay(a.elem).find("."+C).remove()},g.prototype.setBtnStatus=function(e,t,a){var n=this,i=n.config,l=n.lang(),r=lay(n.footer).find(E);i.range&&"time"!==i.type&&(t=t||i.dateTime,a=a||n.endDate,i=n.newDate(t).getTime()>n.newDate(a).getTime(),n.limit(null,t)||n.limit(null,a)?r.addClass(x):r[i?"addClass":"removeClass"](x),e&&i&&n.hint("string"==typeof e?l.timeout.replace(/\u65e5\u671f/g,e):l.timeout))},g.prototype.parse=function(e,t){var a=this,n=a.config,t=t||("end"==e?lay.extend({},a.endDate,a.endTime):n.range?lay.extend({},n.dateTime,a.startTime):n.dateTime),t=u.parse(t,a.format,1);return n.range&&e===undefined?t+" "+a.rangeStr+" "+a.parse("end"):t},g.prototype.newDate=function(e){return e=e||{},new Date(e.year||1,e.month||0,e.date||1,e.hours||0,e.minutes||0,e.seconds||0)},g.prototype.setValue=function(e){var t=this,a=t.config,n=t.bindElem||a.elem[0];return"static"===a.position||(e=e||"",t.isInput(n)?lay(n).val(e):(a=t.rangeElem)?("array"!==layui.type(e)&&(e=e.split(" "+t.rangeStr+" ")),a[0].val(e[0]||""),a[1].val(e[1]||"")):(0===lay(n).find("*").length&&lay(n).html(e),lay(n).attr("lay-date",e))),t},g.prototype.preview=function(){var e,t=this,a=t.config;a.isPreview&&(e=lay(t.elem).find("."+f),a=!a.range||t.endDate?t.parse():"",e.html(a).css({color:"#5FB878"}),setTimeout(function(){e.css({color:"#666"})},300))},g.prototype.done=function(e,t){var a=this,n=a.config,i=lay.extend({},lay.extend(n.dateTime,a.startTime)),l=lay.extend({},lay.extend(a.endDate,a.endTime));return lay.each([i,l],function(e,t){"month"in t&&lay.extend(t,{month:t.month+1})}),a.preview(),e=e||[a.parse(),i,l],"function"==typeof n[t||"done"]&&n[t||"done"].apply(n,e),a},g.prototype.choose=function(e,t){var a=this,n=a.config,i=a.thisDateTime(t),l=(lay(a.elem).find("td"),{year:0|(l=e.attr("lay-ymd").split("-"))[0],month:(0|l[1])-1,date:0|l[2]});e.hasClass(x)||(lay.extend(i,l),n.range?(lay.each(["startTime","endTime"],function(e,t){a[t]=a[t]||{hours:e?23:0,minutes:e?59:0,seconds:e?59:0}}),a.calendar(null,t).done(null,"change")):"static"===n.position?a.calendar().done().done(null,"change"):"date"===n.type?a.setValue(a.parse()).remove().done():"datetime"===n.type&&a.calendar().done(null,"change"))},g.prototype.tool=function(e,t){var a=this,n=a.config,i=a.lang(),l=n.dateTime,r="static"===n.position,o={datetime:function(){lay(e).hasClass(x)||(a.list("time",0),n.range&&a.list("time",1),lay(e).attr("lay-type","date").html(a.lang().dateTips))},date:function(){a.closeList(),lay(e).attr("lay-type","datetime").html(a.lang().timeTips)},clear:function(){r&&(lay.extend(l,a.firstDate),a.calendar()),n.range&&(delete n.dateTime,delete a.endDate,delete a.startTime,delete a.endTime),a.setValue("").remove(),a.done(["",{},{}])},now:function(){var e=new Date;lay.extend(l,a.systemDate(),{hours:e.getHours(),minutes:e.getMinutes(),seconds:e.getSeconds()}),a.setValue(a.parse()).remove(),r&&a.calendar(),a.done()},confirm:function(){if(n.range){if(lay(e).hasClass(x))return a.hint("time"===n.type?i.timeout.replace(/\u65e5\u671f/g,"\u65f6\u95f4"):i.timeout)}else if(lay(e).hasClass(x))return a.hint(i.invalidDate);a.setValue(a.parse()).remove(),a.done()}};o[t]&&o[t]()},g.prototype.change=function(n){var i=this,l=i.config,r=i.thisDateTime(n),o=l.range&&("year"===l.type||"month"===l.type),s=i.elemCont[n||0],y=i.listYM[n],e=function(e){var t=lay(s).find(".laydate-year-list")[0],a=lay(s).find(".laydate-month-list")[0];return t&&(y[0]=e?y[0]-15:y[0]+15,i.list("year",n)),a&&(e?y[0]--:y[0]++,i.list("month",n)),(t||a)&&(lay.extend(r,{year:y[0]}),o&&(r.year=y[0]),l.range||i.done(null,"change"),l.range||i.limit(lay(i.footer).find(E),{year:y[0]})),i.setBtnStatus(),t||a};return{prevYear:function(){e("sub")||(r.year--,i.checkDate("limit").calendar(null,n),i.done(null,"change"))},prevMonth:function(){var e=i.getAsYM(r.year,r.month,"sub");lay.extend(r,{year:e[0],month:e[1]}),i.checkDate("limit").calendar(null,n),i.done(null,"change")},nextMonth:function(){var e=i.getAsYM(r.year,r.month);lay.extend(r,{year:e[0],month:e[1]}),i.checkDate("limit").calendar(null,n),i.done(null,"change")},nextYear:function(){e()||(r.year++,i.checkDate("limit").calendar(null,n),i.done(null,"change"))}}},g.prototype.changeEvent=function(){var i=this;i.config;lay(i.elem).on("click",function(e){lay.stope(e)}).on("mousedown",function(e){lay.stope(e)}),lay.each(i.elemHeader,function(n,e){lay(e[0]).on("click",function(e){i.change(n).prevYear()}),lay(e[1]).on("click",function(e){i.change(n).prevMonth()}),lay(e[2]).find("span").on("click",function(e){var t=lay(this),a=t.attr("lay-ym"),t=t.attr("lay-type");a&&(a=a.split("-"),i.listYM[n]=[0|a[0],0|a[1]],i.list(t,n),lay(i.footer).find("."+k).addClass(x))}),lay(e[3]).on("click",function(e){i.change(n).nextMonth()}),lay(e[4]).on("click",function(e){i.change(n).nextYear()})}),lay.each(i.table,function(e,t){lay(t).find("td").on("click",function(){i.choose(lay(this),e)})}),lay(i.footer).find("span").on("click",function(){var e=lay(this).attr("lay-type");i.tool(this,e)})},g.prototype.isInput=function(e){return/input|textarea/.test(e.tagName.toLocaleLowerCase())||/INPUT|TEXTAREA/.test(e.tagName)},g.prototype.events=function(){var a=this,n=a.config,e=function(e,t){e.on(n.trigger,function(){u.thisId!==n.id&&(t&&(a.bindElem=this),a.render())})};n.elem[0]&&!n.elem[0].eventHandler&&(e(n.elem,"bind"),e(n.eventElem),n.elem[0].eventHandler=!0)},s.that={},s.getThis=function(e){var t=s.that[e];return!t&&n&&layui.hint().error(e?a+" instance with ID '"+e+"' not found":"ID argument required"),t},l.run=function(n){n(r).on("mousedown",function(e){var t,a;!u.thisId||(t=s.getThis(u.thisId))&&(a=t.config,e.target!==a.elem[0]&&e.target!==a.eventElem[0]&&e.target!==n(a.closeStop)[0]&&t.remove())}).on("keydown",function(e){var t;!u.thisId||(t=s.getThis(u.thisId))&&"static"!==t.config.position&&13===e.keyCode&&n("#"+t.elemID)[0]&&t.elemID===g.thisElemDate&&(e.preventDefault(),n(t.footer).find(E)[0].click())}),n(i).on("resize",function(){if(u.thisId){var e=s.getThis(u.thisId);if(e)return!(!e.elem||!n(".layui-laydate")[0])&&void e.position()}})},u.render=function(e){e=new g(e);return s.call(e)},u.parse=function(a,n,i){return a=a||{},n=((n="string"==typeof n?s.formatArr(n):n)||[]).concat(),lay.each(n,function(e,t){/yyyy|y/.test(t)?n[e]=lay.digit(a.year,t.length):/MM|M/.test(t)?n[e]=lay.digit(a.month+(i||0),t.length):/dd|d/.test(t)?n[e]=lay.digit(a.date,t.length):/HH|H/.test(t)?n[e]=lay.digit(a.hours,t.length):/mm|m/.test(t)?n[e]=lay.digit(a.minutes,t.length):/ss|s/.test(t)&&(n[e]=lay.digit(a.seconds,t.length))}),n.join("")},u.getEndDate=function(e,t){var a=new Date;return a.setFullYear(t||a.getFullYear(),e||a.getMonth()+1,1),new Date(a.getTime()-864e5).getDate()},n?(u.ready(),layui.define("lay",function(e){u.path=layui.cache.dir,l.run(lay),e(a,u)})):"function"==typeof define&&define.amd?define(function(){return l.run(lay),u}):(u.ready(),l.run(i.lay),i.laydate=u)}(window,window.document);!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e):function(e){if(e.document)return t(e);throw new Error("jQuery requires a window with a document")}:t(e)}("undefined"!=typeof window?window:this,function(T,M){var f=[],g=T.document,c=f.slice,O=f.concat,R=f.push,P=f.indexOf,B={},W=B.toString,m=B.hasOwnProperty,y={},e="1.12.4",C=function(e,t){return new C.fn.init(e,t)},I=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,$=/^-ms-/,z=/-([\da-z])/gi,X=function(e,t){return t.toUpperCase()};function U(e){var t=!!e&&"length"in e&&e.length,n=C.type(e);return"function"!==n&&!C.isWindow(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+a+")"+a+"*"),ee=new RegExp("="+a+"*([^\\]'\"]*?)"+a+"*\\]","g"),te=new RegExp(G),ne=new RegExp("^"+s+"$"),f={ID:new RegExp("^#("+s+")"),CLASS:new RegExp("^\\.("+s+")"),TAG:new RegExp("^("+s+"|[*])"),ATTR:new RegExp("^"+J),PSEUDO:new RegExp("^"+G),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+a+"*(even|odd|(([+-]|)(\\d*)n|)"+a+"*(?:([+-]|)"+a+"*(\\d+)|))"+a+"*\\)|)","i"),bool:new RegExp("^(?:"+Y+")$","i"),needsContext:new RegExp("^"+a+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+a+"*((?:-\\d)?\\d*)"+a+"*\\)|)(?=[^-]|$)","i")},re=/^(?:input|select|textarea|button)$/i,ie=/^h\d$/i,c=/^[^{]+\{\s*\[native \w/,oe=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ae=/[+~]/,se=/'|\\/g,d=new RegExp("\\\\([\\da-f]{1,6}"+a+"?|("+a+")|.)","ig"),p=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(65536+r):String.fromCharCode(r>>10|55296,1023&r|56320)},ue=function(){C()};try{D.apply(n=V.call(v.childNodes),v.childNodes),n[v.childNodes.length].nodeType}catch(F){D={apply:n.length?function(e,t){U.apply(e,V.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function H(e,t,n,r){var i,o,a,s,u,l,c,f,d=t&&t.ownerDocument,p=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==p&&9!==p&&11!==p)return n;if(!r&&((t?t.ownerDocument||t:v)!==E&&C(t),t=t||E,N)){if(11!==p&&(l=oe.exec(e)))if(i=l[1]){if(9===p){if(!(a=t.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(d&&(a=d.getElementById(i))&&y(t,a)&&a.id===i)return n.push(a),n}else{if(l[2])return D.apply(n,t.getElementsByTagName(e)),n;if((i=l[3])&&g.getElementsByClassName&&t.getElementsByClassName)return D.apply(n,t.getElementsByClassName(i)),n}if(g.qsa&&!A[e+" "]&&(!m||!m.test(e))){if(1!==p)d=t,f=e;else if("object"!==t.nodeName.toLowerCase()){for((s=t.getAttribute("id"))?s=s.replace(se,"\\$&"):t.setAttribute("id",s=k),o=(c=w(e)).length,u=ne.test(s)?"#"+s:"[id='"+s+"']";o--;)c[o]=u+" "+_(c[o]);f=c.join(","),d=ae.test(e)&&de(t.parentNode)||t}if(f)try{return D.apply(n,d.querySelectorAll(f)),n}catch(h){}finally{s===k&&t.removeAttribute("id")}}}return P(e.replace(L,"$1"),t,n,r)}function le(){var n=[];function r(e,t){return n.push(e+" ")>b.cacheLength&&delete r[n.shift()],r[e+" "]=t}return r}function q(e){return e[k]=!0,e}function h(e){var t=E.createElement("div");try{return!!e(t)}catch(F){return!1}finally{t.parentNode&&t.parentNode.removeChild(t)}}function ce(e,t){for(var n=e.split("|"),r=n.length;r--;)b.attrHandle[n[r]]=t}function fe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||1<<31)-(~e.sourceIndex||1<<31);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function x(a){return q(function(o){return o=+o,q(function(e,t){for(var n,r=a([],e.length,o),i=r.length;i--;)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function de(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in g=H.support={},O=H.isXML=function(e){e=e&&(e.ownerDocument||e).documentElement;return!!e&&"HTML"!==e.nodeName},C=H.setDocument=function(e){var e=e?e.ownerDocument||e:v;return e!==E&&9===e.nodeType&&e.documentElement&&(t=(E=e).documentElement,N=!O(E),(e=E.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",ue,!1):e.attachEvent&&e.attachEvent("onunload",ue)),g.attributes=h(function(e){return e.className="i",!e.getAttribute("className")}),g.getElementsByTagName=h(function(e){return e.appendChild(E.createComment("")),!e.getElementsByTagName("*").length}),g.getElementsByClassName=c.test(E.getElementsByClassName),g.getById=h(function(e){return t.appendChild(e).id=k,!E.getElementsByName||!E.getElementsByName(k).length}),g.getById?(b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&N)return(e=t.getElementById(e))?[e]:[]},b.filter.ID=function(e){var t=e.replace(d,p);return function(e){return e.getAttribute("id")===t}}):(delete b.find.ID,b.filter.ID=function(e){var t=e.replace(d,p);return function(e){e="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return e&&e.value===t}}),b.find.TAG=g.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):g.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"!==e)return o;for(;n=o[i++];)1===n.nodeType&&r.push(n);return r},b.find.CLASS=g.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&N)return t.getElementsByClassName(e)},r=[],m=[],(g.qsa=c.test(E.querySelectorAll))&&(h(function(e){t.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&m.push("[*^$]="+a+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||m.push("\\["+a+"*(?:value|"+Y+")"),e.querySelectorAll("[id~="+k+"-]").length||m.push("~="),e.querySelectorAll(":checked").length||m.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||m.push(".#.+[+~]")}),h(function(e){var t=E.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&m.push("name"+a+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||m.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),m.push(",.*:")})),(g.matchesSelector=c.test(i=t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.msMatchesSelector))&&h(function(e){g.disconnectedMatch=i.call(e,"div"),i.call(e,"[s!='']:x"),r.push("!=",G)}),m=m.length&&new RegExp(m.join("|")),r=r.length&&new RegExp(r.join("|")),e=c.test(t.compareDocumentPosition),y=e||c.test(t.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,t=t&&t.parentNode;return e===t||!(!t||1!==t.nodeType||!(n.contains?n.contains(t):e.compareDocumentPosition&&16&e.compareDocumentPosition(t)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},$=e?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!g.sortDetached&&t.compareDocumentPosition(e)===n?e===E||e.ownerDocument===v&&y(v,e)?-1:t===E||t.ownerDocument===v&&y(v,t)?1:u?j(u,e)-j(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===E?-1:t===E?1:i?-1:o?1:u?j(u,e)-j(u,t):0;if(i===o)return fe(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;a[r]===s[r];)r++;return r?fe(a[r],s[r]):a[r]===v?-1:s[r]===v?1:0}),E},H.matches=function(e,t){return H(e,null,null,t)},H.matchesSelector=function(e,t){if((e.ownerDocument||e)!==E&&C(e),t=t.replace(ee,"='$1']"),g.matchesSelector&&N&&!A[t+" "]&&(!r||!r.test(t))&&(!m||!m.test(t)))try{var n=i.call(e,t);if(n||g.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(F){}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(d,p),e[3]=(e[3]||e[4]||e[5]||"").replace(d,p),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||H.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&H.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return f.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&te.test(n)&&(t=w(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(d,p).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=W[e+" "];return t||(t=new RegExp("(^|"+a+")"+e+"("+a+"|$)"))&&W(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(t,n,r){return function(e){e=H.attr(e,t);return null==e?"!="===n:!n||(e+="","="===n?e===r:"!="===n?e!==r:"^="===n?r&&0===e.indexOf(r):"*="===n?r&&-1(?:<\/\1>|)$/,G=/^.[^:#\[\.,]*$/;function K(e,n,r){if(C.isFunction(n))return C.grep(e,function(e,t){return!!n.call(e,t,e)!==r});if(n.nodeType)return C.grep(e,function(e){return e===n!==r});if("string"==typeof n){if(G.test(n))return C.filter(n,e,r);n=C.filter(n,e)}return C.grep(e,function(e){return-1)[^>]*|#([\w-]*))$/,ee=((C.fn.init=function(e,t,n){if(!e)return this;if(n=n||Q,"string"!=typeof e)return e.nodeType?(this.context=this[0]=e,this.length=1,this):C.isFunction(e)?"undefined"!=typeof n.ready?n.ready(e):e(C):(e.selector!==undefined&&(this.selector=e.selector,this.context=e.context),C.makeArray(e,this));if(!(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&3<=e.length?[null,e,null]:Z.exec(e))||!r[1]&&t)return(!t||t.jquery?t||n:this.constructor(t)).find(e);if(r[1]){if(t=t instanceof C?t[0]:t,C.merge(this,C.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:g,!0)),J.test(r[1])&&C.isPlainObject(t))for(var r in t)C.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}if((n=g.getElementById(r[2]))&&n.parentNode){if(n.id!==r[2])return Q.find(e);this.length=1,this[0]=n}return this.context=g,this.selector=e,this}).prototype=C.fn,Q=C(g),/^(?:parents|prev(?:Until|All))/),te={children:!0,contents:!0,next:!0,prev:!0};function ne(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}C.fn.extend({has:function(e){var t,n=C(e,this),r=n.length;return this.filter(function(){for(t=0;t
a",y.leadingWhitespace=3===S.firstChild.nodeType,y.tbody=!S.getElementsByTagName("tbody").length,y.htmlSerialize=!!S.getElementsByTagName("link").length,y.html5Clone="<:nav>"!==g.createElement("nav").cloneNode(!0).outerHTML,q.type="checkbox",q.checked=!0,k.appendChild(q),y.appendChecked=q.checked,S.innerHTML="",y.noCloneChecked=!!S.cloneNode(!0).lastChild.defaultValue,k.appendChild(S),(q=g.createElement("input")).setAttribute("type","radio"),q.setAttribute("checked","checked"),q.setAttribute("name","t"),S.appendChild(q),y.checkClone=S.cloneNode(!0).cloneNode(!0).lastChild.checked,y.noCloneEvent=!!S.addEventListener,S[C.expando]=1,y.attributes=!S.getAttribute(C.expando);var x={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:y.htmlSerialize?[0,"",""]:[1,"X
","
"]};function b(e,t){var n,r,i=0,o="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):undefined;if(!o)for(o=[],n=e.childNodes||e;null!=(r=n[i]);i++)!t||C.nodeName(r,t)?o.push(r):C.merge(o,b(r,t));return t===undefined||t&&C.nodeName(e,t)?C.merge([e],o):o}function we(e,t){for(var n,r=0;null!=(n=e[r]);r++)C._data(n,"globalEval",!t||C._data(t[r],"globalEval"))}x.optgroup=x.option,x.tbody=x.tfoot=x.colgroup=x.caption=x.thead,x.th=x.td;var Te=/<|&#?\w+;/,Ce=/"!==f[1]||Ce.test(a)?0:u:u.firstChild)&&a.childNodes.length;o--;)C.nodeName(c=a.childNodes[o],"tbody")&&!c.childNodes.length&&a.removeChild(c);for(C.merge(h,u.childNodes),u.textContent="";u.firstChild;)u.removeChild(u.firstChild);u=p.lastChild}else h.push(t.createTextNode(a));for(u&&p.removeChild(u),y.appendChecked||C.grep(b(h,"input"),Ee),g=0;a=h[g++];)if(r&&-1]","i"),Pe=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,Be=/\s*$/g,ze=be(g).appendChild(g.createElement("div"));function Xe(e,t){return C.nodeName(e,"table")&&C.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ue(e){return e.type=(null!==C.find.attr(e,"type"))+"/"+e.type,e}function Ve(e){var t=Ie.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function Ye(e,t){if(1===t.nodeType&&C.hasData(e)){var n,r,i,e=C._data(e),o=C._data(t,e),a=e.events;if(a)for(n in delete o.handle,o.events={},a)for(r=0,i=a[n].length;r")},clone:function(e,t,n){var r,i,o,a,s,u=C.contains(e.ownerDocument,e);if(y.html5Clone||C.isXMLDoc(e)||!Re.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(ze.innerHTML=e.outerHTML,ze.removeChild(o=ze.firstChild)),!(y.noCloneEvent&&y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||C.isXMLDoc(e)))for(r=b(o),s=b(e),a=0;null!=(i=s[a]);++a)if(r[a]){f=c=l=p=d=void 0;var l,c,f,d=i,p=r[a];if(1===p.nodeType){if(l=p.nodeName.toLowerCase(),!y.noCloneEvent&&p[C.expando]){for(c in(f=C._data(p)).events)C.removeEvent(p,c,f.handle);p.removeAttribute(C.expando)}"script"===l&&p.text!==d.text?(Ue(p).text=d.text,Ve(p)):"object"===l?(p.parentNode&&(p.outerHTML=d.outerHTML),y.html5Clone&&d.innerHTML&&!C.trim(p.innerHTML)&&(p.innerHTML=d.innerHTML)):"input"===l&&ge.test(d.type)?(p.defaultChecked=p.checked=d.checked,p.value!==d.value&&(p.value=d.value)):"option"===l?p.defaultSelected=p.selected=d.defaultSelected:"input"!==l&&"textarea"!==l||(p.defaultValue=d.defaultValue)}}if(t)if(n)for(s=s||b(e),r=r||b(o),a=0;null!=(i=s[a]);a++)Ye(i,r[a]);else Ye(e,o);return 0<(r=b(o,"script")).length&&we(r,!u&&b(e,"script")),r=s=i=null,o},cleanData:function(e,t){for(var n,r,i,o,a=0,s=C.expando,u=C.cache,l=y.attributes,c=C.event.special;null!=(n=e[a]);a++)if((t||v(n))&&(o=(i=n[s])&&u[i])){if(o.events)for(r in o.events)c[r]?C.event.remove(n,r):C.removeEvent(n,r,o.handle);u[i]&&(delete u[i],l||"undefined"==typeof n.removeAttribute?n[s]=undefined:n.removeAttribute(s),f.push(i))}}}),C.fn.extend({domManip:w,detach:function(e){return Je(this,e,!0)},remove:function(e){return Je(this,e)},text:function(e){return d(this,function(e){return e===undefined?C.text(this):this.empty().append((this[0]&&this[0].ownerDocument||g).createTextNode(e))},null,e,arguments.length)},append:function(){return w(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Xe(this,e).appendChild(e)})},prepend:function(){return w(this,arguments,function(e){var t;1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(t=Xe(this,e)).insertBefore(e,t.firstChild)})},before:function(){return w(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return w(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&C.cleanData(b(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&C.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return C.clone(this,e,t)})},html:function(e){return d(this,function(e){var t=this[0]||{},n=0,r=this.length;if(e===undefined)return 1===t.nodeType?t.innerHTML.replace(Oe,""):undefined;if("string"==typeof e&&!Be.test(e)&&(y.htmlSerialize||!Re.test(e))&&(y.leadingWhitespace||!ve.test(e))&&!x[(me.exec(e)||["",""])[1].toLowerCase()]){e=C.htmlPrefilter(e);try{for(;n")).appendTo(t.documentElement))[0].contentWindow||Ge[0].contentDocument).document).write(),t.close(),n=Qe(e,t),Ge.detach()),Ke[e]=n),n}var n,et,tt,nt,rt,it,ot,a,at=/^margin/,st=new RegExp("^("+e+")(?!px)[a-z%]+$","i"),ut=function(e,t,n,r){var i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.apply(e,r||[]),t)e.style[i]=o[i];return r},lt=g.documentElement;function t(){var e,t=g.documentElement;t.appendChild(ot),a.style.cssText="-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",n=tt=it=!1,et=rt=!0,T.getComputedStyle&&(e=T.getComputedStyle(a),n="1%"!==(e||{}).top,it="2px"===(e||{}).marginLeft,tt="4px"===(e||{width:"4px"}).width,a.style.marginRight="50%",et="4px"===(e||{marginRight:"4px"}).marginRight,(e=a.appendChild(g.createElement("div"))).style.cssText=a.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",e.style.marginRight=e.style.width="0",a.style.width="1px",rt=!parseFloat((T.getComputedStyle(e)||{}).marginRight),a.removeChild(e)),a.style.display="none",(nt=0===a.getClientRects().length)&&(a.style.display="",a.innerHTML="
t
",a.childNodes[0].style.borderCollapse="separate",(e=a.getElementsByTagName("td"))[0].style.cssText="margin:0;border:0;padding:0;display:none",(nt=0===e[0].offsetHeight)&&(e[0].style.display="",e[1].style.display="none",nt=0===e[0].offsetHeight)),t.removeChild(ot)}ot=g.createElement("div"),(a=g.createElement("div")).style&&(a.style.cssText="float:left;opacity:.5",y.opacity="0.5"===a.style.opacity,y.cssFloat=!!a.style.cssFloat,a.style.backgroundClip="content-box",a.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===a.style.backgroundClip,(ot=g.createElement("div")).style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",a.innerHTML="",ot.appendChild(a),y.boxSizing=""===a.style.boxSizing||""===a.style.MozBoxSizing||""===a.style.WebkitBoxSizing,C.extend(y,{reliableHiddenOffsets:function(){return null==n&&t(),nt},boxSizingReliable:function(){return null==n&&t(),tt},pixelMarginRight:function(){return null==n&&t(),et},pixelPosition:function(){return null==n&&t(),n},reliableMarginRight:function(){return null==n&&t(),rt},reliableMarginLeft:function(){return null==n&&t(),it}}));var l,p,ct=/^(top|right|bottom|left)$/;function ft(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}T.getComputedStyle?(l=function(e){var t=e.ownerDocument.defaultView;return(t=t&&t.opener?t:T).getComputedStyle(e)},p=function(e,t,n){var r,i,o=e.style;return""!==(i=(n=n||l(e))?n.getPropertyValue(t)||n[t]:undefined)&&i!==undefined||C.contains(e.ownerDocument,e)||(i=C.style(e,t)),n&&!y.pixelMarginRight()&&st.test(i)&&at.test(t)&&(e=o.width,t=o.minWidth,r=o.maxWidth,o.minWidth=o.maxWidth=o.width=i,i=n.width,o.width=e,o.minWidth=t,o.maxWidth=r),i===undefined?i:i+""}):lt.currentStyle&&(l=function(e){return e.currentStyle},p=function(e,t,n){var r,i,o,a=e.style;return null==(n=(n=n||l(e))?n[t]:undefined)&&a&&a[t]&&(n=a[t]),st.test(n)&&!ct.test(t)&&(r=a.left,(o=(i=e.runtimeStyle)&&i.left)&&(i.left=e.currentStyle.left),a.left="fontSize"===t?"1em":n,n=a.pixelLeft+"px",a.left=r,o&&(i.left=o)),n===undefined?n:n+""||"auto"});var dt=/alpha\([^)]*\)/i,pt=/opacity\s*=\s*([^)]*)/i,ht=/^(none|table(?!-c[ea]).+)/,gt=new RegExp("^("+e+")(.*)$","i"),mt={position:"absolute",visibility:"hidden",display:"block"},yt={letterSpacing:"0",fontWeight:"400"},vt=["Webkit","O","Moz","ms"],xt=g.createElement("div").style;function bt(e){if(e in xt)return e;for(var t=e.charAt(0).toUpperCase()+e.slice(1),n=vt.length;n--;)if((e=vt[n]+t)in xt)return e}function wt(e,t){for(var n,r,i,o=[],a=0,s=e.length;a
a",F=q.getElementsByTagName("a")[0],k.setAttribute("type","checkbox"),q.appendChild(k),(F=q.getElementsByTagName("a")[0]).style.cssText="top:1px",y.getSetAttribute="t"!==q.className,y.style=/top/.test(F.getAttribute("style")),y.hrefNormalized="/a"===F.getAttribute("href"),y.checkOn=!!k.value,y.optSelected=e.selected,y.enctype=!!g.createElement("form").enctype,S.disabled=!0,y.optDisabled=!e.disabled,(k=g.createElement("input")).setAttribute("value",""),y.input=""===k.getAttribute("value"),k.value="t",k.setAttribute("type","radio"),y.radioValue="t"===k.value;var Lt=/\r/g,Ht=/[\x20\t\r\n\f]+/g;C.fn.extend({val:function(t){var n,e,r,i=this[0];return arguments.length?(r=C.isFunction(t),this.each(function(e){1===this.nodeType&&(null==(e=r?t.call(this,e,C(this).val()):t)?e="":"number"==typeof e?e+="":C.isArray(e)&&(e=C.map(e,function(e){return null==e?"":e+""})),(n=C.valHooks[this.type]||C.valHooks[this.nodeName.toLowerCase()])&&"set"in n&&n.set(this,e,"value")!==undefined||(this.value=e))})):i?(n=C.valHooks[i.type]||C.valHooks[i.nodeName.toLowerCase()])&&"get"in n&&(e=n.get(i,"value"))!==undefined?e:"string"==typeof(e=i.value)?e.replace(Lt,""):null==e?"":e:void 0}}),C.extend({valHooks:{option:{get:function(e){var t=C.find.attr(e,"value");return null!=t?t:C.trim(C.text(e)).replace(Ht," ")}},select:{get:function(e){for(var t,n=e.options,r=e.selectedIndex,i="select-one"===e.type||r<0,o=i?null:[],a=i?r+1:n.length,s=r<0?a:i?r:0;s").append(C.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},C.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){C.fn[t]=function(e){return this.on(t,e)}}),C.expr.filters.animated=function(t){return C.grep(C.timers,function(e){return t===e.elem}).length},C.offset={setOffset:function(e,t,n){var r,i,o,a,s=C.css(e,"position"),u=C(e),l={};"static"===s&&(e.style.position="relative"),o=u.offset(),r=C.css(e,"top"),a=C.css(e,"left"),s=("absolute"===s||"fixed"===s)&&-1'+(o?n.title[0]:n.title)+"":"";return n.zIndex=a,t([n.shade?'
':"",'
'+(e&&2!=n.type?"":o)+'
'+(0==n.type&&-1!==n.icon?'':"")+((1!=n.type||!e)&&n.content||"")+'
'+(i=s?'':"",n.closeBtn&&(i+=''),i)+""+(n.btn?function(){var e="";"string"==typeof n.btn&&(n.btn=[n.btn]);for(var t=0,i=n.btn.length;t'+n.btn[t]+"";return'
'+e+"
"}():"")+(n.resize?'':"")+"
"],o,h('
')),this},t.pt.creat=function(){var e,n=this,a=n.config,o=n.index,s="object"==typeof(l=a.content),r=h("body");if(!a.id||!h("#"+a.id)[0]){switch("string"==typeof a.area&&(a.area="auto"===a.area?["",""]:[a.area,""]),a.shift&&(a.anim=a.shift),6==m.ie&&(a.fixed=!1),a.type){case 0:a.btn="btn"in a?a.btn:c.btn[0],m.closeAll("dialog");break;case 2:var l=a.content=s?a.content:[a.content||"","auto"];a.content='';break;case 3:delete a.title,delete a.closeBtn,-1===a.icon&&a.icon,m.closeAll("loading");break;case 4:s||(a.content=[a.content,"body"]),a.follow=a.content[1],a.content=a.content[0]+'',delete a.title,a.tips="object"==typeof a.tips?a.tips:[a.tips,!0],a.tipsMore||m.closeAll("tips")}n.vessel(s,function(e,t,i){r.append(e[0]),s?2==a.type||4==a.type?h("body").append(e[1]):l.parents("."+d[0])[0]||(l.data("display",l.css("display")).show().addClass("layui-layer-wrap").wrap(e[1]),h("#"+d[0]+o).find("."+d[5]).before(t)):r.append(e[1]),h("#"+d.MOVE)[0]||r.append(c.moveElem=i),n.layero=h("#"+d[0]+o),n.shadeo=h("#"+d.SHADE+o),a.scrollbar||d.html.css("overflow","hidden").attr("layer-full",o)}).auto(o),n.shadeo.css({"background-color":a.shade[1]||"#000",opacity:a.shade[0]||a.shade}),2==a.type&&6==m.ie&&n.layero.find("iframe").attr("src",l[0]),4==a.type?n.tips():(n.offset(),parseInt(c.getStyle(document.getElementById(d.MOVE),"z-index"))||(n.layero.css("visibility","hidden"),m.ready(function(){n.offset(),n.layero.css("visibility","visible")}))),a.fixed&&f.on("resize",function(){n.offset(),(/^\d+%$/.test(a.area[0])||/^\d+%$/.test(a.area[1]))&&n.auto(o),4==a.type&&n.tips()}),a.time<=0||setTimeout(function(){m.close(n.index)},a.time),n.move().callback(),d.anim[a.anim]&&(e="layer-anim "+d.anim[a.anim],n.layero.addClass(e).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",function(){h(this).removeClass(e)})),a.isOutAnim&&n.layero.data("isOutAnim",!0)}},t.pt.auto=function(e){var t=this.config,i=h("#"+d[0]+e),n=(""===t.area[0]&&0t.maxWidth&&i.width(t.maxWidth)),[i.innerWidth(),i.innerHeight()]),a=i.find(d[1]).outerHeight()||0,o=i.find("."+d[6]).outerHeight()||0,e=function(e){(e=i.find(e)).height(n[1]-a-o-2*(0|parseFloat(e.css("padding-top"))))};return 2===t.type?e("iframe"):""===t.area[1]?0t.maxHeight?(n[1]=t.maxHeight,e("."+d[5])):t.fixed&&n[1]>=f.height()&&(n[1]=f.height(),e("."+d[5])):e("."+d[5]),this},t.pt.offset=function(){var e=this,t=e.config,i=e.layero,n=[i.outerWidth(),i.outerHeight()],a="object"==typeof t.offset;e.offsetTop=(f.height()-n[1])/2,e.offsetLeft=(f.width()-n[0])/2,a?(e.offsetTop=t.offset[0],e.offsetLeft=t.offset[1]||e.offsetLeft):"auto"!==t.offset&&("t"===t.offset?e.offsetTop=0:"r"===t.offset?e.offsetLeft=f.width()-n[0]:"b"===t.offset?e.offsetTop=f.height()-n[1]:"l"===t.offset?e.offsetLeft=0:"lt"===t.offset?(e.offsetTop=0,e.offsetLeft=0):"lb"===t.offset?(e.offsetTop=f.height()-n[1],e.offsetLeft=0):"rt"===t.offset?(e.offsetTop=0,e.offsetLeft=f.width()-n[0]):"rb"===t.offset?(e.offsetTop=f.height()-n[1],e.offsetLeft=f.width()-n[0]):e.offsetTop=t.offset),t.fixed||(e.offsetTop=/%$/.test(e.offsetTop)?f.height()*parseFloat(e.offsetTop)/100:parseFloat(e.offsetTop),e.offsetLeft=/%$/.test(e.offsetLeft)?f.width()*parseFloat(e.offsetLeft)/100:parseFloat(e.offsetLeft),e.offsetTop+=f.scrollTop(),e.offsetLeft+=f.scrollLeft()),i.attr("minLeft")&&(e.offsetTop=f.height()-(i.find(d[1]).outerHeight()||0),e.offsetLeft=i.css("left")),i.css({top:e.offsetTop,left:e.offsetLeft})},t.pt.tips=function(){var e=this.config,t=this.layero,i=[t.outerWidth(),t.outerHeight()],n=h(e.follow),a={width:(n=n[0]?n:h("body")).outerWidth(),height:n.outerHeight(),top:n.offset().top,left:n.offset().left},o=t.find(".layui-layer-TipsG"),n=e.tips[0];e.tips[1]||o.remove(),a.autoLeft=function(){0":'',o=i.success;return delete i.success,m.open(h.extend({type:1,btn:["确定","取消"],content:t,skin:"layui-layer-prompt"+g("prompt"),maxWidth:f.width(),success:function(e){(a=e.find(".layui-layer-input")).val(i.value||"").focus(),"function"==typeof o&&o(e)},resize:!1,yes:function(e){var t=a.val();""===t?a.focus():t.length>(i.maxlength||500)?m.tips("最多输入"+(i.maxlength||500)+"个字数",a,{tips:1}):n&&n(t,e,a)}},i))},m.tab=function(n){var a=(n=n||{}).tab||{},o="layui-this",s=n.success;return delete n.success,m.open(h.extend({type:1,skin:"layui-layer-tab"+g("tab"),resize:!1,title:function(){var e=a.length,t=1,i="";if(0'+a[0].title+"";t"+a[t].title+"";return i}(),content:'
    '+function(){var e=a.length,t=1,i="";if(0'+(a[0].content||"no content")+"";t'+(a[t].content||"no content")+"";return i}()+"
",success:function(e){var t=e.find(".layui-layer-title").children(),i=e.find(".layui-layer-tabmain").children();t.on("mousedown",function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0;var e=h(this),t=e.index();e.addClass(o).siblings().removeClass(o),i.eq(t).show().siblings().hide(),"function"==typeof n.change&&n.change(t)}),"function"==typeof s&&s(e)}},n))},m.photos=function(i,e,n){var a={};if((i=i||{}).photos){var t=!("string"==typeof i.photos||i.photos instanceof h),o=t?i.photos:{},s=o.data||[],r=o.start||0,l=(a.imgIndex=1+(0|r),i.img=i.img||"img",i.success);if(delete i.success,t){if(0===s.length)return m.msg("没有图片")}else{var f=h(i.photos),c=function(){s=[],f.find(i.img).each(function(e){var t=h(this);t.attr("layer-index",e),s.push({alt:t.attr("alt"),pid:t.attr("layer-pid"),src:t.attr("layer-src")||t.attr("src"),thumb:t.attr("src")})})};if(c(),0===s.length)return;if(e||f.on("click",i.img,function(){c();var e=h(this).attr("layer-index");m.photos(h.extend(i,{photos:{start:e,data:s,tab:i.tab},full:i.full}),!0)}),!e)return}a.imgprev=function(e){a.imgIndex--,a.imgIndex<1&&(a.imgIndex=s.length),a.tabimg(e)},a.imgnext=function(e,t){a.imgIndex++,a.imgIndex>s.length&&(a.imgIndex=1,t)||a.tabimg(e)},a.keyup=function(e){var t;a.end||(t=e.keyCode,e.preventDefault(),37===t?a.imgprev(!0):39===t?a.imgnext(!0):27===t&&m.close(a.index))},a.tabimg=function(e){if(!(s.length<=1))return o.start=a.imgIndex-1,m.close(a.index),m.photos(i,!0,e)},a.event=function(){a.bigimg.find(".layui-layer-imgprev").on("click",function(e){e.preventDefault(),a.imgprev(!0)}),a.bigimg.find(".layui-layer-imgnext").on("click",function(e){e.preventDefault(),a.imgnext(!0)}),h(document).on("keyup",a.keyup)},a.loadi=m.load(1,{shade:!("shade"in i)&&.9,scrollbar:!1});var t=s[r].src,d=function(e){var t;m.close(a.loadi),n&&(i.anim=-1),a.index=m.open(h.extend({type:1,id:"layui-layer-photos",area:(e=[e.width,e.height],t=[h(p).width()-100,h(p).height()-100],!i.full&&(e[0]>t[0]||e[1]>t[1])&&((t=[e[0]/t[0],e[1]/t[1]])[1]'+(s[r].alt||'+(1
'+(s[r].alt||"")+""+a.imgIndex+" / "+s.length+"
":"")+"",success:function(e,t){a.bigimg=e.find(".layui-layer-phimg"),a.imgsee=e.find(".layui-layer-imgbar"),a.event(e),i.tab&&i.tab(s[r],e),"function"==typeof l&&l(e)},end:function(){a.end=!0,h(document).off("keyup",a.keyup)}},i))},u=function(){m.close(a.loadi),m.msg("当前图片地址异常
是否继续查看下一张?",{time:3e4,btn:["下一张","不看了"],yes:function(){1',t.bar1?'
  • '+l[0]+"
  • ":"",t.bar2?'
  • '+l[1]+"
  • ":"",'
  • '+l[2]+"
  • ",""].join("")),c=l.find("."+o),g=function(){a.scrollTop()>=t.showHeight?e||(c.show(),e=1):e&&(c.hide(),e=0)};u("."+n)[0]||("object"==typeof t.css&&l.css(t.css),r.append(l),g(),l.find("li").on("click",function(){var e=u(this).attr("lay-type");"top"===e&&u("html,body").animate({scrollTop:0},200),t.click&&t.click.call(this,e)}),a.on("scroll",function(){clearTimeout(i),i=setTimeout(function(){g()},100)}))},countdown:function(e,t,i){var n=this,o="function"==typeof t,a=new Date(e).getTime(),r=new Date(!t||o?(new Date).getTime():t).getTime(),a=a-r,l=[Math.floor(a/864e5),Math.floor(a/36e5)%24,Math.floor(a/6e4)%60,Math.floor(a/1e3)%60],o=(o&&(i=t),setTimeout(function(){n.countdown(e,r+1e3,i)},1e3));return i&&i(0]|&(?=#[a-zA-Z0-9]+)/g.test(e+="")?e.replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,"""):e},unescape:function(e){return e!==undefined&&null!==e||(e=""),(e+="").replace(/\&/g,"&").replace(/\</g,"<").replace(/\>/g,">").replace(/\'/g,"'").replace(/\"/g,'"')},toVisibleArea:function(e){var t,i,n,o,a,r,l,c;(e=u.extend({margin:160,duration:200,type:"y"},e)).scrollElem[0]&&e.thisElem[0]&&(t=e.scrollElem,l=e.thisElem,n=(a="y"===e.type)?"top":"left",o=t[i=a?"scrollTop":"scrollLeft"](),a=t[a?"height":"width"](),r=t.offset()[n],c={},((l=l.offset()[n]-r)>a-e.margin||l."+y,k=function(e){var i=this;i.index=++c.index,i.config=s.extend({},i.config,c.config,e),i.init()};k.prototype.config={trigger:"click",content:"",className:"",style:"",show:!1,isAllowSpread:!0,isSpreadItem:!0,data:[],delay:300},k.prototype.reload=function(e){var i=this;i.config=s.extend({},i.config,e),i.init(!0)},k.prototype.init=function(e){var i=this,t=i.config,n=t.elem=s(t.elem);return 1",(t="href"in i?''+l+"":l,n?'
    '+t+("parent"===o?'':"group"===o&&u.isAllowSpread?'':"")+"
    ":'
    '+t+"
    "),""].join(""))).data("item",i),n&&(a=s('
    '),t=s("
      "),"parent"===o?(a.append(d(t,i.child)),l.append(a)):l.append(d(t,i.child))),r.append(l))}),r},t=['
      ',"
      "].join("");!(e="contextmenu"!==u.trigger&&!lay.isTopElem(u.elem[0])?e:!0)&&u.elem.data(r+"_opened")||(n.elemView=s(t),n.elemView.append(u.content||(e=s('
        '),0no menu'),e)),u.className&&n.elemView.addClass(u.className),u.style&&n.elemView.attr("style",u.style),c.thisId=u.id,n.remove(),i.append(n.elemView),u.elem.data(r+"_opened",!0),n.position(),(p.prevElem=n.elemView).data("prevElem",u.elem),n.elemView.find(".layui-menu").on(l,function(e){layui.stope(e)}),n.elemView.find(".layui-menu li").on("click",function(e){var i=s(this),t=i.data("item")||{};t.child&&0n.width()&&(t.addClass(C),(i=t[0].getBoundingClientRect()).left<0&&t.removeClass(C)),i.bottom>n.height()&&t.eq(0).css("margin-top",-(i.bottom-n.height())))}).on("mouseleave",t,function(e){var i=s(this).children("."+w);i.removeClass(C),i.css("margin-top",0)}),c.reload=function(e,i){e=p.getThis(e);return e?(e.reload(i),p.call(e)):this},c.render=function(e){e=new k(e);return p.call(e)},e(o,c)});layui.define("jquery",function(e){"use strict";var h=layui.$,t={config:{},index:layui.slider?layui.slider.index+1e4:0,set:function(e){var i=this;return i.config=h.extend({},i.config,e),i},on:function(e,i){return layui.onevent.call(this,a,e,i)}},a="slider",c="layui-disabled",y="layui-slider-bar",g="layui-slider-wrap",b="layui-slider-wrap-btn",x="layui-slider-tips",T="layui-slider-input-txt",w="layui-slider-hover",i=function(e){var i=this;i.index=++t.index,i.config=h.extend({},i.config,t.config,e),i.render()};i.prototype.config={type:"default",min:0,max:100,value:0,step:1,showstep:!1,tips:!0,input:!1,range:!1,height:200,disabled:!1,theme:"#009688"},i.prototype.render=function(){var a,n=this,l=n.config,e=(l.step<1&&(l.step=1),l.maxl.min?i:l.min,l.value[1]=s>l.min?s:l.min,l.value[0]=l.value[0]>l.max?l.max:l.value[0],l.value[1]=l.value[1]>l.max?l.max:l.value[1],i=Math.floor((l.value[0]-l.min)/(l.max-l.min)*100),t=(s=Math.floor((l.value[1]-l.min)/(l.max-l.min)*100))-i+"%",i+="%",s+="%"):("object"==typeof l.value&&(l.value=Math.min.apply(null,l.value)),l.valuel.max&&(l.value=l.max),t=Math.floor((l.value-l.min)/(l.max-l.min)*100)+"%"),l.disabled?"#c2c2c2":l.theme),i='
        '+(l.tips?'
        ':"")+'
        '+(l.range?'
        ':"")+"
        ",t=h(l.elem),s=t.next(".layui-slider");if(s[0]&&s.remove(),n.elemTemp=h(i),l.range?(n.elemTemp.find("."+g).eq(0).data("value",l.value[0]),n.elemTemp.find("."+g).eq(1).data("value",l.value[1])):n.elemTemp.find("."+g).data("value",l.value),t.html(n.elemTemp),"vertical"===l.type&&n.elemTemp.height(l.height+"px"),l.showstep){for(var r=(l.max-l.min)/l.step,o="",u=1;u<1+r;u++){var d=100*u/r;d<100&&(o+='
        ')}n.elemTemp.append(o)}l.input&&!l.range&&(e=h('
        '),t.css("position","relative"),t.append(e),t.find("."+T).children("input").val(l.value),"vertical"===l.type?e.css({left:0,top:-48}):n.elemTemp.css("margin-right",e.outerWidth()+15)),l.disabled?(n.elemTemp.addClass(c),n.elemTemp.find("."+b).addClass(c)):n.slide(),n.elemTemp.find("."+b).on("mouseover",function(){var e="vertical"===l.type?l.height:n.elemTemp[0].offsetWidth,i=n.elemTemp.find("."+g),t=("vertical"===l.type?e-h(this).parent()[0].offsetTop-i.height():h(this).parent()[0].offsetLeft)/e*100,i=h(this).parent().data("value"),e=l.setTips?l.setTips(i):i;n.elemTemp.find("."+x).html(e),clearTimeout(a),a=setTimeout(function(){"vertical"===l.type?n.elemTemp.find("."+x).css({bottom:t+"%","margin-bottom":"20px",display:"inline-block"}):n.elemTemp.find("."+x).css({left:t+"%",display:"inline-block"})},300)}).on("mouseout",function(){clearTimeout(a),n.elemTemp.find("."+x).css("display","none")})},i.prototype.slide=function(e,i,t){var r=this.config,o=this.elemTemp,u=function(){return"vertical"===r.type?r.height:o[0].offsetWidth},d=o.find("."+g),s=o.next(".layui-slider-input"),c=s.children("."+T).children("input").val(),m=100/((r.max-r.min)/Math.ceil(r.step)),v=function(e,i){e=100<(e=100t[1]&&t.reverse(),r.change&&r.change(r.range?t:n)},p=function(e){var i=e/u()*100/m,t=Math.round(i)*m;return t=e==u()?Math.ceil(i)*m:t},f=h(['
        u()?u():i)/u()*100/m;v(i,l),s.addClass(w),o.find("."+x).show(),e.preventDefault()},i=function(){s.removeClass(w),o.find("."+x).hide()},t=function(){i&&i(),f.remove()},h("#LAY-slider-moving")[0]||h("body").append(f),f.on("mousemove",e),f.on("mouseup",t).on("mouseleave",t)})}),o.on("click",function(e){var i,t=h("."+b);!t.is(event.target)&&0===t.has(event.target).length&&t.length&&(i=(t=(t=(t="vertical"===r.type?u()-e.clientY+h(this).offset().top:e.clientX-h(this).offset().left)<0?0:t)>u()?u():t)/u()*100/m,t=r.range?"vertical"===r.type?Math.abs(t-parseInt(h(d[0]).css("bottom")))>Math.abs(t-parseInt(h(d[1]).css("bottom")))?1:0:Math.abs(t-d[0].offsetLeft)>Math.abs(t-d[1].offsetLeft)?1:0:0,v(i,t),e.preventDefault())}),s.children(".layui-slider-input-btn").children("i").each(function(i){h(this).on("click",function(){c=s.children("."+T).children("input").val();var e=((c=1==i?c-r.stepr.max?r.max:Number(c)+r.step)-r.min)/(r.max-r.min)*100/m;v(e,0)})});var a=function(){var e=this.value,e=(e=(e=(e=isNaN(e)?0:e)r.max?r.max:e,((this.value=e)-r.min)/(r.max-r.min)*100/m);v(e,0)};s.children("."+T).children("input").on("keydown",function(e){13===e.keyCode&&(e.preventDefault(),a.call(this))}).on("change",a)},i.prototype.events=function(){this.config},t.render=function(e){e=new i(e);return function(){var t=this,a=t.config;return{setValue:function(e,i){return a.value=e,t.slide("set",e,i||0)},config:a}}.call(e)},e(a,t)});layui.define(["jquery","lay"],function(e){"use strict";var y=layui.jquery,o=layui.lay,r=layui.device().mobile?"click":"mousedown",i={config:{},index:layui.colorpicker?layui.colorpicker.index+1e4:0,set:function(e){var i=this;return i.config=y.extend({},i.config,e),i},on:function(e,i){return layui.onevent.call(this,"colorpicker",e,i)}},n="layui-colorpicker",l=".layui-colorpicker-main",m="layui-icon-down",x="layui-icon-close",P="layui-colorpicker-trigger-span",C="layui-colorpicker-trigger-i",B="layui-colorpicker-side-slider",w="layui-colorpicker-basis",D="layui-colorpicker-alpha-bgcolor",j="layui-colorpicker-alpha-slider",E="layui-colorpicker-basis-cursor",F="layui-colorpicker-main-input",H=function(e){var i={h:0,s:0,b:0},o=Math.min(e.r,e.g,e.b),r=Math.max(e.r,e.g,e.b),n=r-o;return i.b=r,i.s=0!=r?255*n/r:0,0!=i.s?e.r==r?i.h=(e.g-e.b)/n:e.g==r?i.h=2+(e.b-e.r)/n:i.h=4+(e.r-e.g)/n:i.h=-1,r==o&&(i.h=0),i.h*=60,i.h<0&&(i.h+=360),i.s*=100/255,i.b*=100/255,i},M=function(e){var i,o={},r=e.h,n=255*e.s/100,e=255*e.b/100;return 0==n?o.r=o.g=o.b=e:(e=r%60*((i=e)-(n=(255-n)*e/255))/60,(r=360==r?0:r)<60?(o.r=i,o.b=n,o.g=n+e):r<120?(o.g=i,o.b=n,o.r=i-e):r<180?(o.g=i,o.r=n,o.b=n+e):r<240?(o.b=i,o.r=n,o.g=i-e):r<300?(o.b=i,o.g=n,o.r=n+e):r<360?(o.r=i,o.g=n,o.b=i-e):(o.r=0,o.g=0,o.b=0)),{r:Math.round(o.r),g:Math.round(o.g),b:Math.round(o.b)}},f=function(e){var e=M(e),o=[e.r.toString(16),e.g.toString(16),e.b.toString(16)];return y.each(o,function(e,i){1==i.length&&(o[e]="0"+i)}),o.join("")},Y=function(e){e=e.match(/[0-9]{1,3}/g)||[];return{r:e[0],g:e[1],b:e[2]}},I=y(window),t=y(document),c=function(e){this.index=++i.index,this.config=y.extend({},this.config,i.config,e),this.render()};c.prototype.config={color:"",size:null,alpha:!1,format:"hex",predefine:!1,colors:["#009688","#5FB878","#1E9FFF","#FF5722","#FFB800","#01AAED","#999","#c00","#ff8c00","#ffd700","#90ee90","#00ced1","#1e90ff","#c71585","rgb(0, 186, 189)","rgb(255, 120, 0)","rgb(250, 212, 0)","#393D49","rgba(0,0,0,.5)","rgba(255, 69, 0, 0.68)","rgba(144, 240, 144, 0.5)","rgba(31, 147, 255, 0.73)"]},c.prototype.render=function(){var e=this,i=e.config,o=y(['
        ',"",'','',"","","
        "].join("")),r=y(i.elem);i.size&&o.addClass("layui-colorpicker-"+i.size),r.addClass("layui-inline").html(e.elemColorBox=o),e.color=e.elemColorBox.find("."+P)[0].style.background,e.events()},c.prototype.renderPicker=function(){var o,e=this,i=e.config,r=e.elemColorBox[0],i=e.elemPicker=y(['
        ','
        ','
        ','
        ','
        ','
        ',"
        ",'
        ','
        ',"
        ","
        ",'
        ','
        ','
        ',"
        ","
        ",i.predefine?(o=['
        '],layui.each(i.colors,function(e,i){o.push(['
        ','
        ',"
        "].join(""))}),o.push("
        "),o.join("")):"",'
        ','
        ','',"
        ",'
        ','','',"","
        "].join(""));e.elemColorBox.find("."+P)[0];y(l)[0]&&y(l).data("index")==e.index?e.removePicker(c.thisElemInd):(e.removePicker(c.thisElemInd),y("body").append(i)),c.thisElemInd=e.index,c.thisColor=r.style.background,e.position(),e.pickerEvents()},c.prototype.removePicker=function(e){this.config;return y("#layui-colorpicker"+(e||this.index)).remove(),this},c.prototype.position=function(){var e=this,i=e.config;return o.position(e.bindElem||e.elemColorBox[0],e.elemPicker[0],{position:i.position,align:"center"}),e},c.prototype.val=function(){var e,i=this,o=(i.config,i.elemColorBox.find("."+P)),r=i.elemPicker.find("."+F),n=o[0].style.backgroundColor;n?(e=H(Y(n)),o=o.attr("lay-type"),i.select(e.h,e.s,e.b),"torgb"===o&&r.find("input").val(n),"rgba"===o&&(e=Y(n),3==(n.match(/[0-9]{1,3}/g)||[]).length?(r.find("input").val("rgba("+e.r+", "+e.g+", "+e.b+", 1)"),i.elemPicker.find("."+j).css("left",280)):(r.find("input").val(n),o=280*n.slice(n.lastIndexOf(",")+1,n.length-1),i.elemPicker.find("."+j).css("left",o)),i.elemPicker.find("."+D)[0].style.background="linear-gradient(to right, rgba("+e.r+", "+e.g+", "+e.b+", 0), rgb("+e.r+", "+e.g+", "+e.b+"))")):(i.select(0,100,100),r.find("input").val(""),i.elemPicker.find("."+D)[0].style.background="",i.elemPicker.find("."+j).css("left",280))},c.prototype.side=function(){var n=this,l=n.config,t=n.elemColorBox.find("."+P),c=t.attr("lay-type"),a=n.elemPicker.find(".layui-colorpicker-side"),e=n.elemPicker.find("."+B),s=n.elemPicker.find("."+w),r=n.elemPicker.find("."+E),d=n.elemPicker.find("."+D),f=n.elemPicker.find("."+j),u=e[0].offsetTop/180*360,p=100-(r[0].offsetTop+3)/180*100,g=(r[0].offsetLeft+3)/260*100,h=Math.round(f[0].offsetLeft/280*100)/100,v=n.elemColorBox.find("."+C),i=n.elemPicker.find(".layui-colorpicker-pre").children("div"),b=function(e,i,o,r){n.select(e,i,o);e=M({h:e,s:i,b:o});v.addClass(m).removeClass(x),t[0].style.background="rgb("+e.r+", "+e.g+", "+e.b+")","torgb"===c&&n.elemPicker.find("."+F).find("input").val("rgb("+e.r+", "+e.g+", "+e.b+")"),"rgba"===c&&(f.css("left",280*r),n.elemPicker.find("."+F).find("input").val("rgba("+e.r+", "+e.g+", "+e.b+", "+r+")"),t[0].style.background="rgba("+e.r+", "+e.g+", "+e.b+", "+r+")",d[0].style.background="linear-gradient(to right, rgba("+e.r+", "+e.g+", "+e.b+", 0), rgb("+e.r+", "+e.g+", "+e.b+"))"),l.change&&l.change(n.elemPicker.find("."+F).find("input").val())},o=y(['
        '].join("")),k=function(e){y("#LAY-colorpicker-moving")[0]||y("body").append(o),o.on("mousemove",e),o.on("mouseup",function(){o.remove()}).on("mouseleave",function(){o.remove()})};e.on("mousedown",function(e){var r=this.offsetTop,n=e.clientY;k(function(e){var i=r+(e.clientY-n),o=a[0].offsetHeight,o=(i=o<(i=i<0?0:i)?o:i)/180*360;b(u=o,g,p,h),e.preventDefault()}),e.preventDefault()}),a.on("click",function(e){var i=e.clientY-y(this).offset().top,i=(i=(i=i<0?0:i)>this.offsetHeight?this.offsetHeight:i)/180*360;b(u=i,g,p,h),e.preventDefault()}),r.on("mousedown",function(e){var l=this.offsetTop,t=this.offsetLeft,c=e.clientY,a=e.clientX;layui.stope(e),k(function(e){var i=l+(e.clientY-c),o=t+(e.clientX-a),r=s[0].offsetHeight-3,n=s[0].offsetWidth-3,n=((o=n<(o=o<-3?-3:o)?n:o)+3)/260*100,o=100-((i=r<(i=i<-3?-3:i)?r:i)+3)/180*100;b(u,g=n,p=o,h),e.preventDefault()}),e.preventDefault()}),s.on("mousedown",function(e){var i=e.clientY-y(this).offset().top-3+I.scrollTop(),o=e.clientX-y(this).offset().left-3+I.scrollLeft(),o=((i=i<-3?-3:i)>this.offsetHeight-3&&(i=this.offsetHeight-3),((o=(o=o<-3?-3:o)>this.offsetWidth-3?this.offsetWidth-3:o)+3)/260*100),i=100-(i+3)/180*100;b(u,g=o,p=i,h),layui.stope(e),e.preventDefault(),r.trigger(e,"mousedown")}),f.on("mousedown",function(e){var r=this.offsetLeft,n=e.clientX;k(function(e){var i=r+(e.clientX-n),o=d[0].offsetWidth,o=(o<(i=i<0?0:i)&&(i=o),Math.round(i/280*100)/100);b(u,g,p,h=o),e.preventDefault()}),e.preventDefault()}),d.on("click",function(e){var i=e.clientX-y(this).offset().left,i=((i=i<0?0:i)>this.offsetWidth&&(i=this.offsetWidth),Math.round(i/280*100)/100);b(u,g,p,h=i),e.preventDefault()}),i.each(function(){y(this).on("click",function(){y(this).parent(".layui-colorpicker-pre").addClass("selected").siblings().removeClass("selected");var e=this.style.backgroundColor,i=H(Y(e)),o=e.slice(e.lastIndexOf(",")+1,e.length-1);u=i.h,g=i.s,p=i.b,3==(e.match(/[0-9]{1,3}/g)||[]).length&&(o=1),h=o,b(i.h,i.s,i.b,o)})})},c.prototype.select=function(e,i,o,r){var n=this,l=(n.config,f({h:e,s:100,b:100})),t=f({h:e,s:i,b:o}),e=e/360*180,o=180-o/100*180-3,i=i/100*260-3;n.elemPicker.find("."+B).css("top",e),n.elemPicker.find("."+w)[0].style.background="#"+l,n.elemPicker.find("."+E).css({top:o,left:i}),"change"!==r&&n.elemPicker.find("."+F).find("input").val("#"+t)},c.prototype.pickerEvents=function(){var c=this,a=c.config,s=c.elemColorBox.find("."+P),d=c.elemPicker.find("."+F+" input"),o={clear:function(e){s[0].style.background="",c.elemColorBox.find("."+C).removeClass(m).addClass(x),c.color="",a.done&&a.done(""),c.removePicker()},confirm:function(e,i){var o,r,n=d.val(),l=n,t={};if(-1>16,g:(65280&o)>>8,b:255&o},t=H(r),s[0].style.background=l="#"+f(t),c.elemColorBox.find("."+C).removeClass(x).addClass(m)),"change"===i)return c.select(t.h,t.s,t.b,i),void(a.change&&a.change(l));c.color=n,a.done&&a.done(n),c.removePicker()}};c.elemPicker.on("click","*[colorpicker-events]",function(){var e=y(this),i=e.attr("colorpicker-events");o[i]&&o[i].call(this,e)}),d.on("keyup",function(e){var i=y(this);o.confirm.call(this,i,13===e.keyCode?null:"change")})},c.prototype.events=function(){var i=this,e=i.config,o=i.elemColorBox.find("."+P);i.elemColorBox.on("click",function(){i.renderPicker(),y(l)[0]&&(i.val(),i.side())}),e.elem[0]&&!i.elemColorBox[0].eventHandler&&(t.on(r,function(e){y(e.target).hasClass(n)||y(e.target).parents("."+n)[0]||y(e.target).hasClass(l.replace(/\./g,""))||y(e.target).parents(l)[0]||i.elemPicker&&(i.color?(e=H(Y(i.color)),i.select(e.h,e.s,e.b)):i.elemColorBox.find("."+C).removeClass(m).addClass(x),o[0].style.background=i.color||"",i.removePicker())}),I.on("resize",function(){if(!i.elemPicker||!y(l)[0])return!1;i.position()}),i.elemColorBox[0].eventHandler=!0)},i.render=function(e){e=new c(e);return function(){return{config:this.config}}.call(e)},e("colorpicker",i)});layui.define("jquery",function(t){"use strict";var u=layui.$,d=(layui.hint(),layui.device()),c="element",r="layui-this",y="layui-show",i=function(){this.config={}},h=(i.prototype.set=function(t){return u.extend(!0,this.config,t),this},i.prototype.on=function(t,i){return layui.onevent.call(this,c,t,i)},i.prototype.tabAdd=function(t,i){var a,t=u(".layui-tab[lay-filter="+t+"]"),e=t.children(".layui-tab-title"),l=e.children(".layui-tab-bar"),t=t.children(".layui-tab-content"),n=""+(i.title||"unnaming")+"";return l[0]?l.before(n):e.append(n),t.append('
        '+(i.content||"")+"
        "),C.hideTabMore(!0),C.tabAuto(),this},i.prototype.tabDelete=function(t,i){t=u(".layui-tab[lay-filter="+t+"]").children(".layui-tab-title").find('>li[lay-id="'+i+'"]');return C.tabDelete(null,t),this},i.prototype.tabChange=function(t,i){t=u(".layui-tab[lay-filter="+t+"]").children(".layui-tab-title").find('>li[lay-id="'+i+'"]');return C.tabClick.call(t[0],null,null,t),this},i.prototype.tab=function(a){a=a||{},e.on("click",a.headerElem,function(t){var i=u(this).index();C.tabClick.call(this,t,i,null,a)})},i.prototype.progress=function(t,i){var a="layui-progress",t=u("."+a+"[lay-filter="+t+"]").find("."+a+"-bar"),a=t.find("."+a+"-text");return t.css("width",i).attr("lay-percent",i),a.text(i),this},".layui-nav"),f="layui-nav-item",l="layui-nav-bar",p="layui-nav-tree",b="layui-nav-child",v="layui-nav-more",m="layui-anim layui-anim-upbit",C={tabClick:function(t,i,a,e){e=e||{};var a=a||u(this),i=i||a.parent().children("li").index(a),l=e.headerElem?a.parent():a.parents(".layui-tab").eq(0),e=e.bodyElem?u(e.bodyElem):l.children(".layui-tab-content").children(".layui-tab-item"),n=a.find("a"),n="javascript:;"!==n.attr("href")&&"_blank"===n.attr("target"),s="string"==typeof a.attr("lay-unselect"),o=l.attr("lay-filter");n||s||(a.addClass(r).siblings().removeClass(r),e.eq(i).addClass(y).siblings().removeClass(y)),layui.event.call(this,c,"tab("+o+")",{elem:l,index:i})},tabDelete:function(t,i){var i=i||u(this).parent(),a=i.index(),e=i.parents(".layui-tab").eq(0),l=e.children(".layui-tab-content").children(".layui-tab-item"),n=e.attr("lay-filter");i.hasClass(r)&&(i.next()[0]?C.tabClick.call(i.next()[0],null,a+1):i.prev()[0]&&C.tabClick.call(i.prev()[0],null,a-1)),i.remove(),l.eq(a).remove(),setTimeout(function(){C.tabAuto()},50),layui.event.call(this,c,"tabDelete("+n+")",{elem:e,index:a})},tabAuto:function(){var e="layui-tab-bar",l="layui-tab-close",n=this;u(".layui-tab").each(function(){var t=u(this),i=t.children(".layui-tab-title"),a=(t.children(".layui-tab-content").children(".layui-tab-item"),'lay-stope="tabmore"'),a=u('');n===window&&8!=d.ie&&C.hideTabMore(!0),t.attr("lay-allowClose")&&i.find("li").each(function(){var t,i=u(this);i.find("."+l)[0]||((t=u('')).on("click",C.tabDelete),i.append(t))}),"string"!=typeof t.attr("lay-unauto")&&(i.prop("scrollWidth")>i.outerWidth()+1?i.find("."+e)[0]||(i.append(a),t.attr("overflow",""),a.on("click",function(t){i[this.title?"removeClass":"addClass"]("layui-tab-more"),this.title=this.title?"":"\u6536\u7f29"})):(i.find("."+e).remove(),t.removeAttr("overflow")))})},hideTabMore:function(t){var i=u(".layui-tab-title");!0!==t&&"tabmore"===u(t.target).attr("lay-stope")||(i.removeClass("layui-tab-more"),i.find(".layui-tab-bar").attr("title",""))},clickThis:function(){var t=u(this),i=t.parents(h),a=i.attr("lay-filter"),e=t.parent(),l=t.siblings("."+b),n="string"==typeof e.attr("lay-unselect");"javascript:;"!==t.attr("href")&&"_blank"===t.attr("target")||n||l[0]||(i.find("."+r).removeClass(r),e.addClass(r)),i.hasClass(p)&&(l.removeClass(m),l[0]&&(e["none"===l.css("display")?"addClass":"removeClass"](f+"ed"),"all"===i.attr("lay-shrink")&&e.siblings().removeClass(f+"ed"))),layui.event.call(this,c,"nav("+a+")",t)},collapse:function(){var t=u(this),i=t.find(".layui-colla-icon"),a=t.siblings(".layui-colla-content"),e=t.parents(".layui-collapse").eq(0),l=e.attr("lay-filter"),n="none"===a.css("display");"string"==typeof e.attr("lay-accordion")&&((e=e.children(".layui-colla-item").children("."+y)).siblings(".layui-colla-title").children(".layui-colla-icon").html(""),e.removeClass(y)),a[n?"addClass":"removeClass"](y),i.html(n?"":""),layui.event.call(this,c,"collapse("+l+")",{title:t,content:a,show:n})}},a=(i.prototype.render=i.prototype.init=function(t,i){var a=i?'[lay-filter="'+i+'"]':"",i={tab:function(){C.tabAuto.call({})},nav:function(){var s={},o={},c={},r="layui-nav-title";u(h+a).each(function(t){var i=u(this),a=u(''),e=i.find("."+f);i.find("."+l)[0]||(i.append(a),(i.hasClass(p)?e.find("dd,>."+r):e).on("mouseenter",function(){!function(t,i,a){var e,l=u(this),n=l.find("."+b);i.hasClass(p)?n[0]||(e=l.children("."+r),t.css({top:l.offset().top-i.offset().top,height:(e[0]?e:l).outerHeight(),opacity:1})):(n.addClass(m),n.hasClass("layui-nav-child-c")&&n.css({left:-(n.outerWidth()-l.width())/2}),n[0]?t.css({left:t.position().left+t.width()/2,width:0,opacity:0}):t.css({left:l.position().left+parseFloat(l.css("marginLeft")),top:l.position().top+l.height()-t.height()}),s[a]=setTimeout(function(){t.css({width:n[0]?0:l.width(),opacity:n[0]?0:1})},d.ie&&d.ie<10?0:200),clearTimeout(c[a]),"block"===n.css("display")&&clearTimeout(o[a]),o[a]=setTimeout(function(){n.addClass(y),l.find("."+v).addClass(v+"d")},300))}.call(this,a,i,t)}).on("mouseleave",function(){i.hasClass(p)?a.css({height:0,opacity:0}):(clearTimeout(o[t]),o[t]=setTimeout(function(){i.find("."+b).removeClass(y),i.find("."+v).removeClass(v+"d")},300))}),i.on("mouseleave",function(){clearTimeout(s[t]),c[t]=setTimeout(function(){i.hasClass(p)||a.css({width:0,left:a.position().left+a.width()/2,opacity:0})},200)})),e.find("a").each(function(){var t=u(this);t.parent();t.siblings("."+b)[0]&&!t.children("."+v)[0]&&t.append(''),t.off("click",C.clickThis).on("click",C.clickThis)})})},breadcrumb:function(){u(".layui-breadcrumb"+a).each(function(){var t=u(this),i="lay-separator",a=t.attr(i)||"/",e=t.find("a");e.next("span["+i+"]")[0]||(e.each(function(t){t!==e.length-1&&u(this).after(""+a+"")}),t.css("visibility","visible"))})},progress:function(){var e="layui-progress";u("."+e+a).each(function(){var t=u(this),i=t.find(".layui-progress-bar"),a=i.attr("lay-percent");i.css("width",/^.+\/.+$/.test(a)?100*new Function("return "+a)()+"%":a),t.attr("lay-showPercent")&&setTimeout(function(){i.html(''+a+"")},350)})},collapse:function(){u(".layui-collapse"+a).each(function(){u(this).find(".layui-colla-item").each(function(){var t=u(this),i=t.find(".layui-colla-title"),t="none"===t.find(".layui-colla-content").css("display");i.find(".layui-colla-icon").remove(),i.append(''+(t?"":"")+""),i.off("click",C.collapse).on("click",C.collapse)})})}};return i[t]?i[t]():layui.each(i,function(t,i){i()})},new i),e=u(document);u(function(){a.render()});e.on("click",".layui-tab-title li",C.tabClick),e.on("click",C.hideTabMore),u(window).on("resize",C.tabAuto),t(c,a)});layui.define("layer",function(e){"use strict";var v=layui.$,t=layui.layer,r=layui.hint(),y=layui.device(),i={config:{},set:function(e){var t=this;return t.config=v.extend({},t.config,e),t},on:function(e,t){return layui.onevent.call(this,n,e,t)}},n="upload",o="layui-upload-file",a="layui-upload-form",F="layui-upload-iframe",b="layui-upload-choose",x=function(e){var t=this;t.config=v.extend({},t.config,i.config,e),t.render()};x.prototype.config={accept:"images",exts:"",auto:!0,bindAction:"",url:"",force:"",field:"file",acceptMime:"",method:"post",data:{},drag:!0,size:0,number:0,multiple:!1},x.prototype.render=function(e){var t=this;(e=t.config).elem=v(e.elem),e.bindAction=v(e.bindAction),t.file(),t.events()},x.prototype.file=function(){var e=this,t=e.config,i=e.elemFile=v(['"].join("")),n=t.elem.next();(n.hasClass(o)||n.hasClass(a))&&n.remove(),y.ie&&y.ie<10&&t.elem.wrap('
        '),e.isFile()?(e.elemFile=t.elem,t.field=t.elem[0].name):t.elem.after(i),y.ie&&y.ie<10&&e.initIE()},x.prototype.initIE=function(){var i,e=this.config,t=v(''),n=v(['
        ',"
        "].join(""));v("#"+F)[0]||v("body").append(t),e.elem.next().hasClass(a)||(this.elemFile.wrap(n),e.elem.next("."+a).append((i=[],layui.each(e.data,function(e,t){t="function"==typeof t?t():t,i.push('')}),i.join(""))))},x.prototype.msg=function(e){return t.msg(e,{icon:2,shift:6})},x.prototype.isFile=function(){var e=this.config.elem[0];if(e)return"input"===e.tagName.toLocaleLowerCase()&&"file"===e.type},x.prototype.preview=function(n){window.FileReader&&layui.each(this.chooseFiles,function(e,t){var i=new FileReader;i.readAsDataURL(t),i.onload=function(){n&&n(e,t,this.result)}})},x.prototype.upload=function(i,e){var n,o,t,a,l=this,r=l.config,u=l.elemFile[0],c=function(){var t=0,o=0,e=i||l.files||l.chooseFiles||u.files,a=function(){r.multiple&&t+o===l.fileLength&&"function"==typeof r.allDone&&r.allDone({total:l.fileLength,successful:t,failed:o})};layui.each(e,function(i,e){var n=new FormData,e=(n.append(r.field,e),layui.each(r.data,function(e,t){t="function"==typeof t?t():t,n.append(e,t)}),{url:r.url,type:"post",data:n,contentType:!1,processData:!1,dataType:"json",headers:r.headers||{},success:function(e){t++,f(i,e),a()},error:function(e){o++,l.msg("Request URL is abnormal: "+(e.statusText||"error")),p(i),a()}});"function"==typeof r.progress&&(e.xhr=function(){var e=v.ajaxSettings.xhr();return e.upload.addEventListener("progress",function(e){var t;e.lengthComputable&&(t=Math.floor(e.loaded/e.total*100),r.progress(t,(r.item||r.elem)[0],e,i))}),e}),v.ajax(e)})},s=function(){var n=v("#"+F);l.elemFile.parent().submit(),clearInterval(x.timer),x.timer=setInterval(function(){var e,t=n.contents().find("body");try{e=t.text()}catch(i){l.msg("Cross-domain requests are not supported"),clearInterval(x.timer),p()}e&&(clearInterval(x.timer),t.html(""),f(0,e))},30)},f=function(e,t){if(l.elemFile.next("."+b).remove(),u.value="","json"===r.force&&"object"!=typeof t)try{t=JSON.parse(t)}catch(i){return t={},l.msg("Please return JSON data format")}"function"==typeof r.done&&r.done(t,e||0,function(e){l.upload(e)})},p=function(e){r.auto&&(u.value=""),"function"==typeof r.error&&r.error(e||0,function(e){l.upload(e)})},d=r.exts,m=(o=[],layui.each(i||l.chooseFiles,function(e,t){o.push(t.name)}),o),h={preview:function(e){l.preview(e)},upload:function(e,t){var i={};i[e]=t,l.upload(i)},pushFile:function(){return l.files=l.files||{},layui.each(l.chooseFiles,function(e,t){l.files[e]=t}),l.files},resetFile:function(e,t,i){t=new File([t],i);l.files=l.files||{},l.files[e]=t}},g={file:"\u6587\u4ef6",images:"\u56fe\u7247",video:"\u89c6\u9891",audio:"\u97f3\u9891"}[r.accept]||"\u6587\u4ef6",m=0===m.length?u.value.match(/[^\/\\]+\..+/g)||[]||"":m;if(0!==m.length){switch(r.accept){case"file":layui.each(m,function(e,t){if(d&&!RegExp(".\\.("+d+")$","i").test(escape(t)))return n=!0});break;case"video":layui.each(m,function(e,t){if(!RegExp(".\\.("+(d||"avi|mp4|wma|rmvb|rm|flash|3gp|flv")+")$","i").test(escape(t)))return n=!0});break;case"audio":layui.each(m,function(e,t){if(!RegExp(".\\.("+(d||"mp3|wav|mid")+")$","i").test(escape(t)))return n=!0});break;default:layui.each(m,function(e,t){if(!RegExp(".\\.("+(d||"jpg|png|gif|bmp|jpeg")+")$","i").test(escape(t)))return n=!0})}if(n)return l.msg("\u9009\u62e9\u7684"+g+"\u4e2d\u5305\u542b\u4e0d\u652f\u6301\u7684\u683c\u5f0f"),u.value="";if("choose"!==e&&!r.auto||(r.choose&&r.choose(h),"choose"!==e)){if(l.fileLength=(t=0,g=i||l.files||l.chooseFiles||u.files,layui.each(g,function(){t++}),t),r.number&&l.fileLength>r.number)return l.msg("\u540c\u65f6\u6700\u591a\u53ea\u80fd\u4e0a\u4f20: "+r.number+" \u4e2a\u6587\u4ef6
        \u60a8\u5f53\u524d\u5df2\u7ecf\u9009\u62e9\u4e86: "+l.fileLength+" \u4e2a\u6587\u4ef6");if(01024*r.size&&(t=1<=(t=r.size/1024)?t.toFixed(2)+"MB":r.size+"KB",u.value="",a=t)}),a)return l.msg("\u6587\u4ef6\u5927\u5c0f\u4e0d\u80fd\u8d85\u8fc7 "+a);if(!r.before||!1!==r.before(h))y.ie?(9'+e+"")};o.elem.off("upload.start").on("upload.start",function(){var e=v(this),t=e.attr("lay-data");if(t)try{t=new Function("return "+t)(),n.config=v.extend({},o,t)}catch(i){r.error("Upload element property lay-data configuration item has a syntax error: "+t)}n.config.item=e,n.elemFile[0].click()}),y.ie&&y.ie<10||o.elem.off("upload.over").on("upload.over",function(){v(this).attr("lay-over","")}).off("upload.leave").on("upload.leave",function(){v(this).removeAttr("lay-over")}).off("upload.drop").on("upload.drop",function(e,t){var i=v(this),t=t.originalEvent.dataTransfer.files||[];i.removeAttr("lay-over"),a(t),o.auto?n.upload():l(t)}),n.elemFile.off("upload.change").on("upload.change",function(){var e=this.files||[];a(e),o.auto?n.upload():l(e)}),o.bindAction.off("upload.action").on("upload.action",function(){n.upload()}),o.elem.data("haveEvents")||(n.elemFile.on("change",function(){v(this).trigger("upload.change")}),o.elem.on("click",function(){n.isFile()||v(this).trigger("upload.start")}),o.drag&&o.elem.on("dragover",function(e){e.preventDefault(),v(this).trigger("upload.over")}).on("dragleave",function(e){v(this).trigger("upload.leave")}).on("drop",function(e){e.preventDefault(),v(this).trigger("upload.drop",e)}),o.bindAction.on("click",function(){v(this).trigger("upload.action")}),o.elem.data("haveEvents",!0))},i.render=function(e){e=new x(e);return function(){var t=this;return{upload:function(e){t.upload.call(t,e)},reload:function(e){t.reload.call(t,e)},config:t.config}}.call(e)},e(n,i)});layui.define("layer",function(e){"use strict";var C=layui.$,f=layui.layer,l=layui.hint(),w=(layui.device(),"form"),s=".layui-form",T="layui-this",$="layui-hide",E="layui-disabled",t=function(){this.config={verify:{required:[/[\S]+/,"\u5fc5\u586b\u9879\u4e0d\u80fd\u4e3a\u7a7a"],phone:[/^1\d{10}$/,"\u8bf7\u8f93\u5165\u6b63\u786e\u7684\u624b\u673a\u53f7"],email:[/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/,"\u90ae\u7bb1\u683c\u5f0f\u4e0d\u6b63\u786e"],url:[/^(#|(http(s?)):\/\/|\/\/)[^\s]+\.[^\s]+$/,"\u94fe\u63a5\u683c\u5f0f\u4e0d\u6b63\u786e"],number:function(e){if(!e||isNaN(e))return"\u53ea\u80fd\u586b\u5199\u6570\u5b57"},date:[/^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/,"\u65e5\u671f\u683c\u5f0f\u4e0d\u6b63\u786e"],identity:[/(^\d{15}$)|(^\d{17}(x|X|\d)$)/,"\u8bf7\u8f93\u5165\u6b63\u786e\u7684\u8eab\u4efd\u8bc1\u53f7"]},autocomplete:null}},i=(t.prototype.set=function(e){return C.extend(!0,this.config,e),this},t.prototype.verify=function(e){return C.extend(!0,this.config.verify,e),this},t.prototype.getFormElem=function(e){return C(s+(e?'[lay-filter="'+e+'"]':""))},t.prototype.on=function(e,t){return layui.onevent.call(this,w,e,t)},t.prototype.val=function(e,i){return this.getFormElem(e).each(function(e,t){var a=C(this);layui.each(i,function(e,t){var i,e=a.find('[name="'+e+'"]');e[0]&&("checkbox"===(i=e[0].type)?e[0].checked=t:"radio"===i?e.each(function(){this.value==t&&(this.checked=!0)}):e.val(t))})}),r.render(null,e),this.getValue(e)},t.prototype.getValue=function(e,t){t=t||this.getFormElem(e);var a={},n={},e=t.find("input,select,textarea");return layui.each(e,function(e,t){var i;C(this);t.name=(t.name||"").replace(/^\s*|\s*&/,""),t.name&&(/^.*\[\]$/.test(t.name)&&(i=t.name.match(/^(.*)\[\]$/g)[0],a[i]=0|a[i],i=t.name.replace(/^(.*)\[\]$/,"$1["+a[i]+++"]")),/^checkbox|radio$/.test(t.type)&&!t.checked||(n[i||t.name]=t.value))}),n},t.prototype.render=function(e,t){var i=this.config,a=C(s+(t?'[lay-filter="'+t+'"]':"")),n={input:function(e){e=e||a.find("input,textarea");i.autocomplete&&e.attr("autocomplete",i.autocomplete)},select:function(e){var p,c="\u8bf7\u9009\u62e9",m="layui-form-select",g="layui-select-title",k="layui-select-none",x="",e=e||a.find("select"),b=function(e,t){C(e.target).parent().hasClass(g)&&!t||(C("."+m).removeClass(m+"ed "+m+"up"),p&&x&&p.val(x)),p=null},u=function(a,e,t){var o,r,i,n,s,l,c=C(this),u=a.find("."+g),d=u.find("input"),f=a.find("dl"),h=f.children("dd"),y=f.children("dt"),v=this.selectedIndex;e||(r=c.attr("lay-search"),i=function(){var e=a.offset().top+a.outerHeight()+5-q.scrollTop(),t=f.outerHeight();v=c[0].selectedIndex,a.addClass(m+"ed"),h.removeClass($),y.removeClass($),o=null,h.eq(v).addClass(T).siblings().removeClass(T),e+t>q.height()&&t<=e&&a.addClass(m+"up"),s()},n=function(e){a.removeClass(m+"ed "+m+"up"),d.blur(),o=null,e||l(d.val(),function(e){var t=c[0].selectedIndex;e&&(x=C(c[0].options[t]).html(),0===t&&x===d.attr("placeholder")&&(x=""),d.val(x||""))})},s=function(){var e,t,i=f.children("dd."+T);i[0]&&(e=i.position().top,t=f.height(),i=i.height(),t\u65e0\u5339\u914d\u9879

        '):f.find("."+k).remove()},"keyup"),""===t&&f.find("."+k).remove(),s()}).on("blur",function(e){var t=c[0].selectedIndex;p=d,x=C(c[0].options[t]).html(),0===t&&x===d.attr("placeholder")&&(x=""),setTimeout(function(){l(d.val(),function(e){x||d.val("")},"blur")},200)}),h.on("click",function(){var e=C(this),t=e.attr("lay-value"),i=c.attr("lay-filter");return e.hasClass(E)||(e.hasClass("layui-select-tips")?d.val(""):(d.val(e.text()),e.addClass(T)),e.siblings().removeClass(T),c.val(t).removeClass("layui-form-danger"),layui.event.call(this,w,"select("+i+")",{elem:c[0],value:t,othis:a}),n(!0)),!1}),a.find("dl>dt").on("click",function(e){return!1}),C(document).off("click",b).on("click",b))};e.each(function(e,t){var i=C(this),a=i.next("."+m),n=this.disabled,l=t.value,r=C(t.options[t.selectedIndex]),t=t.options[0];if("string"==typeof i.attr("lay-ignore"))return i.show();var o,s="string"==typeof i.attr("lay-search"),t=t&&!t.value&&t.innerHTML||c,r=C(['
        ','
        ','','
        ','
        ',(t=i.find("*"),o=[],layui.each(t,function(e,t){0!==e||t.value?"optgroup"===t.tagName.toLowerCase()?o.push("
        "+t.label+"
        "):o.push('
        '+C.trim(t.innerHTML)+"
        "):o.push('
        '+C.trim(t.innerHTML||c)+"
        ")}),0===o.length&&o.push('
        \u6ca1\u6709\u9009\u9879
        '),o.join("")+"
        "),"
        "].join(""));a[0]&&a.remove(),i.after(r),u.call(this,r,n,s)})},checkbox:function(e){var s={checkbox:["layui-form-checkbox","layui-form-checked","checkbox"],_switch:["layui-form-switch","layui-form-onswitch","switch"]},e=e||a.find("input[type=checkbox]");e.each(function(e,t){var i=C(this),a=i.attr("lay-skin"),n=(i.attr("lay-text")||"").split("|"),l=this.disabled,r=s[a="switch"===a?"_"+a:a]||s.checkbox;if("string"==typeof i.attr("lay-ignore"))return i.show();var o=i.next("."+r[0]),t=C(['
        ",(l={checkbox:[t.title.replace(/\s/g,"")?""+t.title+"":"",''].join(""),_switch:""+((t.checked?n[0]:n[1])||"")+""})[a]||l.checkbox,"
        "].join(""));o[0]&&o.remove(),i.after(t),function(i,a){var n=C(this);i.on("click",function(){var e=n.attr("lay-filter"),t=(n.attr("lay-text")||"").split("|");n[0].disabled||(n[0].checked?(n[0].checked=!1,i.removeClass(a[1]).find("em").text(t[1])):(n[0].checked=!0,i.addClass(a[1]).find("em").text(t[0])),layui.event.call(n[0],w,a[2]+"("+e+")",{elem:n[0],value:n[0].value,othis:i}))})}.call(this,t,r)})},radio:function(e){var r="layui-form-radio",o=["",""],e=e||a.find("input[type=radio]");e.each(function(e,t){var i=C(this),a=i.next("."+r),n=this.disabled;if("string"==typeof i.attr("lay-ignore"))return i.show();a[0]&&a.remove();n=C(['
        ',''+o[t.checked?0:1]+"","
        "+(a=t.title||"",a="string"==typeof i.next().attr("lay-radio")?i.next().html():a)+"
        ","
        "].join(""));i.after(n),function(a){var n=C(this),l="layui-anim-scaleSpring";a.on("click",function(){var e=n[0].name,t=n.parents(s),i=n.attr("lay-filter"),e=t.find("input[name="+e.replace(/(\.|#|\[|\])/g,"\\$1")+"]");n[0].disabled||(layui.each(e,function(){var e=C(this).next("."+r);this.checked=!1,e.removeClass(r+"ed"),e.find(".layui-icon").removeClass(l).html(o[1])}),n[0].checked=!0,a.addClass(r+"ed"),a.find(".layui-icon").addClass(l).html(o[0]),layui.event.call(n[0],w,"radio("+i+")",{elem:n[0],value:n[0].value,othis:a}))})}.call(this,n)})}};return"object"===layui.type(e)?e.each(function(e,t){var i=C(t);i.closest(s).length&&("SELECT"===t.tagName?n.select(i):"INPUT"===t.tagName&&("checkbox"===(t=t.type)||"radio"===t?n[t](i):n.input(i)))}):e?n[e]?n[e]():l.error('\u4e0d\u652f\u6301\u7684 "'+e+'" \u8868\u5355\u6e32\u67d3'):layui.each(n,function(e,t){t()}),this},t.prototype.validate=function(e){var c=null,u=r.config.verify,d="layui-form-danger";return!(e=C(e))[0]||(e.attr("lay-verify")||(e=e.find("*[lay-verify]")),layui.each(e,function(e,l){var r=C(this),t=(r.attr("lay-verify")||"").split("|"),o=r.attr("lay-verType"),s=r.val();if(r.removeClass(d),layui.each(t,function(e,t){var i="",a="function"==typeof u[t];if(u[t]){var a=a?i=u[t](s,l):!u[t][0].test(s),n="select"===l.tagName.toLowerCase()||/^checkbox|radio$/.test(l.type),i=i||u[t][1];if("required"===t&&(i=r.attr("lay-reqText")||i),a)return"tips"===o?f.tips(i,"string"!=typeof r.attr("lay-ignore")&&n?r.next():r,{tips:1}):"alert"===o?f.alert(i,{title:"\u63d0\u793a",shadeClose:!0}):/\bstring|number\b/.test(typeof i)&&f.msg(i,{icon:5,shift:6}),setTimeout(function(){(n?r.next().find("input"):l).focus()},7),r.addClass(d),c=!0}}),c)return c}),!c)},t.prototype.submit=function(e,t){var i=C(this),e="string"==typeof e?e:i.attr("lay-filter"),a=this.getFormElem?this.getFormElem(e):i.parents(s).eq(0),n=a.find("*[lay-verify]");if(!r.validate(n))return!1;n=r.getValue(null,a),a={elem:this.getFormElem?window.event&&window.event.target:this,form:(this.getFormElem?a:i.parents("form"))[0],field:n};return"function"==typeof t&&t(a),layui.event.call(this,w,"submit("+e+")",a)}),r=new t,t=C(document),q=C(window);C(function(){r.render()}),t.on("reset",s,function(){var e=C(this).attr("lay-filter");setTimeout(function(){r.render(null,e)},50)}),t.on("submit",s,i).on("click","*[lay-submit]",i),e(w,r)});layui.define(["laytpl","laypage","layer","form","util"],function(e){"use strict";var p=layui.$,m=layui.laytpl,d=layui.laypage,v=layui.layer,h=layui.form,f=layui.util,g=layui.hint(),b=layui.device(),x={config:{checkName:"LAY_CHECKED",indexName:"LAY_TABLE_INDEX",disabledName:"LAY_DISABLED"},cache:{},index:layui.table?layui.table.index+1e4:0,set:function(e){var t=this;return t.config=p.extend({},t.config,e),t},on:function(e,t){return layui.onevent.call(this,C,e,t)}},y=function(){var a=this,e=a.config,i=e.id||e.index;return i&&(y.that[i]=a,y.config[i]=e),{config:e,reload:function(e,t){a.reload.call(a,e,t)},reloadData:function(e,t){x.reloadData(i,e,t)},setColsWidth:function(){a.setColsWidth.call(a)},resize:function(){a.resize.call(a)}}},l=function(e){var t=y.config[e];return t||g.error(e?"The table instance with ID '"+e+"' not found":"ID argument required"),t||null},k=function(e){var t=this.config||{},a=(e=e||{}).item3,i=e.content,t=(t.escape&&(i=f.escape(i)),e.text&&a.exportTemplet||a.templet||a.toolbar);return t&&(i="function"==typeof t?t.call(a,e.tplData,e.obj):m(p(t).html()||String(i)).render(e.tplData)),e.text?p("
        "+i+"
        ").text():i},C="table",w="layui-hide",c="layui-hide-v",r="layui-none",o="layui-table-view",s=".layui-table-header",T=".layui-table-body",N=".layui-table-sort",L="layui-table-edit",D="layui-table-hover",t=function(e){return['',"","{{# layui.each(d.data.cols, function(i1, item1){ }}","","{{# layui.each(item1, function(i2, item2){ }}",'{{# if(item2.fixed && item2.fixed !== "right"){ left = true; } }}','{{# if(item2.fixed === "right"){ right = true; } }}',(e=e||{}).fixed&&"right"!==e.fixed?'{{# if(item2.fixed && item2.fixed !== "right"){ }}':"right"===e.fixed?'{{# if(item2.fixed === "right"){ }}':"","{{# var isSort = !(item2.colGroup) && item2.sort; }}",'",e.fixed?"{{# }; }}":"","{{# }); }}","","{{# }); }}","","
        ','
        ','{{# if(item2.type === "checkbox"){ }}','',"{{# } else { }}",'{{-item2.title||""}}',"{{# if(isSort){ }}",'',"{{# } }}","{{# } }}","
        ","
        "].join("")},a=['',"","
        "].join(""),u=[,"{{# if(d.data.toolbar){ }}",'
        ','
        ','
        ',"
        ","{{# } }}",'
        ',"{{# if(d.data.loading){ }}",'
        ','',"
        ","{{# } }}","{{# var left, right; }}",'
        ',t(),"
        ",'
        ',a,"
        ","{{# if(left){ }}",'
        ','
        ',t({fixed:!0}),"
        ",'
        ',a,"
        ","
        ","{{# }; }}","{{# if(right){ }}",'
        ','
        ',t({fixed:"right"}),'
        ',"
        ",'
        ',a,"
        ","
        ","{{# }; }}","
        ","{{# if(d.data.totalRow){ }}",'
        ','','',"
        ","
        ","{{# } }}","{{# if(d.data.page || d.data.pagebar){ }}",'
        ','
        ',"
        ","{{# } }}",""].join(""),S=p(window),F=p(document),i=function(e){this.index=++x.index,this.config=p.extend({},this.config,x.config,e),this.render()},R=(i.prototype.config={limit:10,loading:!0,escape:!0,cellMinWidth:60,editTrigger:"click",defaultToolbar:["filter","exports","print"],autoSort:!0,text:{none:"\u65e0\u6570\u636e"}},i.prototype.render=function(e){var t=this,a=t.config;if(a.elem=p(a.elem),a.where=a.where||{},a.id=a.id||a.elem.attr("id")||t.index,a.request=p.extend({pageName:"page",limitName:"limit"},a.request),a.response=p.extend({statusName:"code",statusCode:0,msgName:"msg",dataName:"data",totalRowName:"totalRow",countName:"count"},a.response),"object"==typeof a.page&&(a.limit=a.page.limit||a.limit,a.limits=a.page.limits||a.limits,t.page=a.page.curr=a.page.curr||1,delete a.page.elem,delete a.page.jump),!a.elem[0])return t;if("reloadData"===e)return t.pullData(t.page);a.height&&/^full-\d+$/.test(a.height)&&(t.fullHeightGap=a.height.split("-")[1],a.height=S.height()-t.fullHeightGap),t.setInit();var i,e=a.elem,l=e.next("."+o),n=t.elem=p('
        ');n.addClass((i=[o,o+"-"+t.index],a.className&&i.push(a.className),i.join(" "))).attr({"lay-filter":"LAY-TABLE-FORM-DF-"+t.index,"lay-id":a.id,style:(i=[],a.width&&i.push("width:"+a.width+"px;"),a.height&&i.push("height:"+a.height+"px;"),i.join(""))}).html(m(u).render({data:a,index:t.index})),a.index=t.index,t.key=a.id||a.index,l[0]&&l.remove(),e.after(n),t.layTool=n.find(".layui-table-tool"),t.layBox=n.find(".layui-table-box"),t.layHeader=n.find(s),t.layMain=n.find(".layui-table-main"),t.layBody=n.find(T),t.layFixed=n.find(".layui-table-fixed"),t.layFixLeft=n.find(".layui-table-fixed-l"),t.layFixRight=n.find(".layui-table-fixed-r"),t.layTotal=n.find(".layui-table-total"),t.layPage=n.find(".layui-table-page"),t.renderToolbar(),t.renderPagebar(),t.fullSize(),1
        ','
        ','
        '].join(""),a=this.layTool.find(".layui-table-tool-temp"),i=("default"===e.toolbar?a.html(t):"string"==typeof e.toolbar&&(t=p(e.toolbar).html()||"")&&a.html(m(t).render(e)),{filter:{title:"\u7b5b\u9009\u5217",layEvent:"LAYTABLE_COLS",icon:"layui-icon-cols"},exports:{title:"\u5bfc\u51fa",layEvent:"LAYTABLE_EXPORT",icon:"layui-icon-export"},print:{title:"\u6253\u5370",layEvent:"LAYTABLE_PRINT",icon:"layui-icon-print"}}),l=[];"object"==typeof e.defaultToolbar&&layui.each(e.defaultToolbar,function(e,t){t="string"==typeof t?i[t]:t;t&&l.push('
        ')}),this.layTool.find(".layui-table-tool-self").html(l.join(""))},i.prototype.renderPagebar=function(){var e,t=this.config,a=this.layPagebar=p('
        ');t.pagebar&&((e=p(t.pagebar).html()||"")&&a.append(m(e).render(t)),this.layPage.append(a))},i.prototype.setParentCol=function(e,t){var a=this.config,i=this.layHeader.find('th[data-key="'+a.index+"-"+t+'"]'),l=parseInt(i.attr("colspan"))||0;i[0]&&(t=t.split("-"),t=a.cols[t[0]][t[1]],e?l--:l++,i.attr("colspan",l),i[l<1?"addClass":"removeClass"](w),t.colspan=l,t.hide=l<1,(a=i.data("parentkey"))&&this.setParentCol(e,a))},i.prototype.setColsPatch=function(){var a=this,e=a.config;layui.each(e.cols,function(e,t){layui.each(t,function(e,t){t.hide&&a.setParentCol(t.hide,t.parentKey)})})},i.prototype.setColsWidth=function(){var t,a,i=this,o=i.config,l=0,d=0,c=0,r=0,s=i.setInit("width"),e=(i.eachCols(function(e,t){t.hide||l++}),s=s-("line"===o.skin||"nob"===o.skin?2:l+1)-i.getScrollWidth(i.layMain[0])-1,function(n){layui.each(o.cols,function(e,l){layui.each(l,function(e,t){var a=0,i=t.minWidth||o.cellMinWidth;t?t.colGroup||t.hide||(n?c&&c'+(e||"Error")+"
        ");a[0]&&(t.layNone.remove(),a.remove()),t.layFixed.addClass(w),t.layMain.find("tbody").html(""),t.layMain.append(t.layNone=e),t.layPage&&t.layPage.addClass(c).find(">div").html(""),t.layTotal&&t.layTotal.addClass(c).find("tbody").html(""),x.cache[t.key]=[]},i.prototype.page=1,i.prototype.pullData=function(t){var e,a=this,i=a.config,l=i.request,n=i.response,o=function(){"object"==typeof i.initSort&&a.sort(i.initSort.field,i.initSort.type)};a.startTime=(new Date).getTime(),i.url?((e={})[l.pageName]=t,e[l.limitName]=i.limit,l=p.extend(e,i.where),i.contentType&&0==i.contentType.indexOf("application/json")&&(l=JSON.stringify(l)),a.loading(),p.ajax({type:i.method||"get",url:i.url,contentType:i.contentType,data:l,dataType:"json",headers:i.headers||{},success:function(e){(e="function"==typeof i.parseData?i.parseData(e)||e:e)[n.statusName]!=n.statusCode?(a.renderForm(),a.errorView(e[n.msgName]||'\u8fd4\u56de\u7684\u6570\u636e\u4e0d\u7b26\u5408\u89c4\u8303\uff0c\u6b63\u786e\u7684\u6210\u529f\u72b6\u6001\u7801\u5e94\u4e3a\uff1a"'+n.statusName+'": '+n.statusCode)):(a.renderData(e,t,e[n.countName]),o(),i.time=(new Date).getTime()-a.startTime+" ms"),a.setColsWidth(),"function"==typeof i.done&&i.done(e,t,e[n.countName])},error:function(e,t){a.errorView("\u8bf7\u6c42\u5f02\u5e38\uff0c\u9519\u8bef\u63d0\u793a\uff1a"+t),a.renderForm(),a.setColsWidth(),"function"==typeof i.error&&i.error(e,t)}})):"array"===layui.type(i.data)&&(e=t*i.limit-i.limit,(l={})[n.dataName]=i.data.concat().splice(e,i.limit),l[n.countName]=i.data.length,"object"==typeof i.totalRow&&(l[n.totalRowName]=p.extend({},i.totalRow)),a.renderData(l,t,l[n.countName]),o(),a.setColsWidth(),"function"==typeof i.done&&i.done(l,t,l[n.countName]))},i.prototype.eachCols=function(e){return x.eachCols(null,e,this.config.cols),this},i.prototype.renderData=function(e,t,a,l){var u=this,y=u.config,i=e[y.response.dataName]||[],e=e[y.response.totalRowName],n=[],h=[],f=[],o=function(){var s;if(!l&&u.sortKey)return u.sort(u.sortKey.field,u.sortKey.sort,!0);layui.each(i,function(o,d){var a=[],i=[],c=[],r=o+y.limit*(t-1)+1;"array"===layui.type(d)&&0===d.length||(l||(d[x.config.indexName]=o),u.eachCols(function(e,l){var e=l.field||e,t=y.index+"-"+l.key,n=d[e];n!==undefined&&null!==n||(n=""),l.colGroup||(t=['','
        "+function(){var e,t=p.extend(!0,{LAY_INDEX:r,LAY_COL:l},d),a=x.config.checkName,i=x.config.disabledName;switch(l.type){case"checkbox":return'";case"radio":return t[a]&&(s=o),'';case"numbers":return r}return l.toolbar?m(p(l.toolbar).html()||"").render(t):k.call(u,{item3:l,content:n,tplData:t})}(),"
        "].join(""),a.push(t),l.fixed&&"right"!==l.fixed&&i.push(t),"right"===l.fixed&&c.push(t))}),n.push(''+a.join("")+""),h.push(''+i.join("")+""),f.push(''+c.join("")+""))}),u.layBody.scrollTop(0),y.resetScrollbar&&u.layBody.scrollLeft(0),u.layMain.find("."+r).remove(),u.layMain.find("tbody").html(n.join("")),u.layFixLeft.find("tbody").html(h.join("")),u.layFixRight.find("tbody").html(f.join("")),u.renderForm(),"number"==typeof s&&u.setThisRowChecked(s),u.syncCheckAll(),u.haveInit?u.scrollPatch():setTimeout(function(){u.scrollPatch()},50),u.haveInit=!0,v.close(u.tipsIndex),y.HAS_SET_COLS_PATCH||u.setColsPatch(),y.HAS_SET_COLS_PATCH=!0};return x.cache[u.key]=i,u.layTotal[0==i.length?"addClass":"removeClass"](c),y.pagebar||u.layPage[0==a||0===i.length&&1==t?"addClass":"removeClass"](c),0===i.length?(u.renderForm(),u.errorView(y.text.none)):(u.layFixed.removeClass(w),l?o():(o(),u.renderTotal(i,e),u.layTotal&&u.layTotal.removeClass(w),void(y.page&&(y.page=p.extend({elem:"layui-table-page"+y.index,count:a,limit:y.limit,limits:y.limits||[10,20,30,40,50,60,70,80,90],groups:3,layout:["prev","page","next","skip","count","limit"],prev:'',next:'',jump:function(e,t){t||(u.page=e.curr,y.limit=e.limit,u.pullData(e.curr))}},y.page),y.page.count=a,d.render(y.page)))))},i.prototype.renderTotal=function(e,n){var o,d=this,c=d.config,r={};c.totalRow&&(layui.each(e,function(e,i){"array"===layui.type(i)&&0===i.length||d.eachCols(function(e,t){var e=t.field||e,a=i[e];t.totalRow&&(r[e]=(r[e]||0)+(parseFloat(a)||0))})}),d.dataTotal={},o=[],d.eachCols(function(e,t){var a,e=t.field||e,i=(a=t.totalRowText||"",l="totalRowDecimals"in t?t.totalRowDecimals:2,l=parseFloat(r[e]).toFixed(l),(i={})[e]=l,l=t.totalRow&&k.call(d,{item3:t,content:l,tplData:i})||a,n&&n[t.field]||l),l=['','
        "+("string"==typeof(a=t.totalRow||c.totalRow)?m(a).render(p.extend({TOTAL_NUMS:r[e]},t)):i),"
        "].join("");t.field&&(d.dataTotal[e]=i),o.push(l)}),d.layTotal.find("tbody").html(""+o.join("")+""))},i.prototype.getColElem=function(e,t){var a=this.config;return e.eq(0).find(".laytable-cell-"+a.index+"-"+t+":eq(0)")},i.prototype.renderForm=function(e){this.config;var t=this.elem.attr("lay-filter");h.render(e,t)},i.prototype.setThisRowChecked=function(e){this.config;var t="layui-table-click";this.layBody.find('tr[data-index="'+e+'"]').addClass(t).siblings("tr").removeClass(t)},i.prototype.sort=function(l,e,t,a){var i,n=this,o={},d=n.config,c=d.elem.attr("lay-filter"),r=x.cache[n.key];"string"==typeof l&&(s=l,n.layHeader.find("th").each(function(e,t){var a=p(this),i=a.data("field");if(i===l)return l=a,s=i,!1}));try{var s=s||l.data("field"),u=l.data("key");if(n.sortKey&&!t&&s===n.sortKey.field&&e===n.sortKey.sort)return;var y=n.layHeader.find("th .laytable-cell-"+u).find(N);n.layHeader.find("th").find(N).removeAttr("lay-sort"),y.attr("lay-sort",e||null),n.layFixed.find("th")}catch(h){g.error("Table modules: sort field '"+s+"' not matched")}n.sortKey={field:s,sort:e},d.autoSort&&("asc"===e?i=layui.sort(r,s):"desc"===e?i=layui.sort(r,s,!0):(i=layui.sort(r,x.config.indexName),delete n.sortKey)),o[d.response.dataName]=i||r,n.renderData(o,n.page,n.count,!0),a&&(d.initSort={field:s,type:e},layui.event.call(l,C,"sort("+c+")",d.initSort))},i.prototype.loading=function(e){var t=this;t.config.loading&&(e?(t.layInit&&t.layInit.remove(),delete t.layInit,t.layBox.find(".layui-table-init").remove()):(t.layInit=p(['
        ','',"
        "].join("")),t.layBox.append(t.layInit)))},i.prototype.setCheckData=function(e,t){var a=this.config,i=x.cache[this.key];i[e]&&"array"!==layui.type(i[e])&&(i[e][a.checkName]=t)},i.prototype.syncCheckAll=function(){var e=this,i=e.config,t=e.layHeader.find('input[name="layTableCheckbox"]'),a=function(a){return e.eachCols(function(e,t){"checkbox"===t.type&&(t[i.checkName]=a)}),a};t[0]&&(x.checkStatus(e.key).isAll?(t[0].checked||(t.prop("checked",!0),e.renderForm("checkbox")),a(!0)):(t[0].checked&&(t.prop("checked",!1),e.renderForm("checkbox")),a(!1)))},i.prototype.getCssRule=function(a,i){var e=this.elem.find("style")[0],e=e.sheet||e.styleSheet||{},e=e.cssRules||e.rules;layui.each(e,function(e,t){if(t.selectorText===".laytable-cell-"+a)return i(t),!0})},i.prototype.fullSize=function(){var e=this,t=e.config,a=t.height;e.fullHeightGap&&(a=S.height()-e.fullHeightGap,e.elem.css("height",a=a<135?135:a)),a&&(a=parseFloat(a)-(e.layHeader.outerHeight()||38),t.toolbar&&(a-=e.layTool.outerHeight()||50),t.totalRow&&(a-=e.layTotal.outerHeight()||40),t.page&&(a-=e.layPage.outerHeight()||41),e.layMain.css("height",a-2))},i.prototype.getScrollWidth=function(e){var t=0;return e?t=e.offsetWidth-e.clientWidth:((e=document.createElement("div")).style.width="100px",e.style.height="100px",e.style.overflowY="scroll",document.body.appendChild(e),t=e.offsetWidth-e.clientWidth,document.body.removeChild(e)),t},i.prototype.scrollPatch=function(){var e=this,t=e.layMain.children("table"),a=e.layMain.width()-e.layMain.prop("clientWidth"),i=e.layMain.height()-e.layMain.prop("clientHeight"),l=(e.getScrollWidth(e.layMain[0]),t.outerWidth()-e.layMain.width()),n=function(e){var t;a&&i?(e=e.eq(0)).find(".layui-table-patch")[0]||((t=p('
        ')).find("div").css({width:a}),e.find("tr").append(t)):e.find(".layui-table-patch").remove()};n(e.layHeader),n(e.layTotal);n=e.layMain.height()-i;e.layFixed.find(T).css("height",t.height()>=n?n:"auto"),e.layFixRight[0');a.html(t),c.height&&a.css("max-height",c.height-(r.layTool.outerHeight()||50)),i.find(".layui-table-tool-panel")[0]||i.append(a),r.renderForm(),a.on("click",function(e){layui.stope(e)}),e.done&&e.done(a,t)};switch(layui.stope(e),F.trigger("table.tool.panel.remove"),v.close(r.tipsIndex),t){case"LAYTABLE_COLS":l({list:(a=[],r.eachCols(function(e,t){t.field&&"normal"==t.type&&a.push('
      • ')}),a.join("")),done:function(){h.on("checkbox(LAY_TABLE_TOOL_COLS)",function(e){var e=p(e.elem),i=this.checked,l=e.data("key"),n=e.data("parentkey");layui.each(c.cols,function(a,e){layui.each(e,function(e,t){a+"-"+e===l&&(e=t.hide,t.hide=!i,r.elem.find('*[data-key="'+c.index+"-"+l+'"]')[i?"removeClass":"addClass"](w),e!=t.hide&&r.setParentCol(!i,n),r.resize())})})})}});break;case"LAYTABLE_EXPORT":b.ie?v.tips("\u5bfc\u51fa\u529f\u80fd\u4e0d\u652f\u6301 IE\uff0c\u8bf7\u7528 Chrome \u7b49\u9ad8\u7ea7\u6d4f\u89c8\u5668\u5bfc\u51fa",this,{tips:3}):l({list:['
      • \u5bfc\u51fa csv \u683c\u5f0f\u6587\u4ef6
      • ','
      • \u5bfc\u51fa xls \u683c\u5f0f\u6587\u4ef6
      • '].join(""),done:function(e,t){t.on("click",function(){var e=p(this).data("type");x.exportFile.call(r,c.id,null,e)})}});break;case"LAYTABLE_PRINT":var n=window.open("about:blank","_blank"),o=[""].join(""),d=p(r.layHeader.html());d.append(r.layMain.find("table").html()),d.append(r.layTotal.find("table").html()),d.find("th.layui-table-patch").remove(),d.find(".layui-table-col-special").remove(),n.document.write(o+d.prop("outerHTML")),n.document.close(),n.print(),n.close()}layui.event.call(this,C,"toolbar("+u+")",p.extend({event:t,config:c},{}))}),r.layPagebar.on("click","*[lay-event]",function(e){var t=p(this).attr("lay-event");layui.event.call(this,C,"pagebar("+u+")",p.extend({event:t,config:c},{}))}),e.on("mousemove",function(e){var t=p(this),a=t.offset().left,e=e.clientX-a;t.data("unresize")||n.resizeStart||(n.allowResize=t.width()-e<=10,i.css("cursor",n.allowResize?"col-resize":""))}).on("mouseleave",function(){p(this);n.resizeStart||i.css("cursor","")}).on("mousedown",function(e){var t,a=p(this);n.allowResize&&(t=a.data("key"),e.preventDefault(),n.resizeStart=!0,n.offset=[e.clientX,e.clientY],r.getCssRule(t,function(e){var t=e.style.width||a.outerWidth();n.rule=e,n.ruleWidth=parseFloat(t),n.minWidth=a.data("minwidth")||c.cellMinWidth}))}),F.on("mousemove",function(e){n.resizeStart&&(e.preventDefault(),n.rule&&((e=n.ruleWidth+e.clientX-n.offset[0])':''))[0].value=t.data("content")||i.text(),t.find("."+L)[0]||t.append(a),a.focus(),layui.stope(e))}).on("mouseenter","td",function(){a.call(this)}).on("mouseleave","td",function(){a.call(this,"hide")}),"layui-table-grid-down"),a=function(e){var t=p(this),a=t.children(s);t.data("off")||(e?t.find(".layui-table-grid-down").remove():!(a.prop("scrollWidth")>a.outerWidth()||0
        '))},y=(r.layBody.on("click","."+d,function(e){var t=p(this).parent().children(s);r.tipsIndex=v.tips(['
        ',t.html(),"
        ",''].join(""),t[0],{tips:[3,""],time:-1,anim:-1,maxWidth:b.ios||b.android?300:r.elem.width()/2,isOutAnim:!1,skin:"layui-table-tips",success:function(e,t){e.find(".layui-table-tips-c").on("click",function(){v.close(t)})}}),layui.stope(e)}),function(e){var t=p(this),a=t.parents("tr").eq(0).data("index");layui.event.call(this,C,(e||"tool")+"("+u+")",o.call(this,{event:t.attr("lay-event")})),r.setThisRowChecked(a)});r.layBody.on("click","*[lay-event]",function(){return y.call(this),!1}).on("dblclick","*[lay-event]",function(){return y.call(this,"toolDouble"),!1}),r.layMain.on("scroll",function(){var e=p(this),t=e.scrollLeft(),e=e.scrollTop();r.layHeader.scrollLeft(t),r.layTotal.scrollLeft(t),r.layFixed.find(T).scrollTop(e),v.close(r.tipsIndex)}),S.on("resize",function(){r.resize()})},F.on("click",function(){F.trigger("table.remove.tool.panel")}),F.on("table.remove.tool.panel",function(){p(".layui-table-tool-panel").remove()}),x.init=function(a,i){i=i||{};var e=p(a?'table[lay-filter="'+a+'"]':".layui-table[lay-data]"),d="Table element property lay-data configuration item has a syntax error: ";return e.each(function(){var e=p(this),t=e.attr("lay-data");try{t=new Function("return "+t)()}catch(l){g.error(d+t,"error")}var n=[],o=p.extend({elem:this,cols:[],data:[],skin:e.attr("lay-skin"),size:e.attr("lay-size"),even:"string"==typeof e.attr("lay-even")},x.config,i,t);a&&e.hide(),e.find("thead>tr").each(function(i){o.cols[i]=[],p(this).children().each(function(e){var t=p(this),a=t.attr("lay-data");try{a=new Function("return "+a)()}catch(l){return g.error(d+a)}t=p.extend({title:t.text(),colspan:t.attr("colspan")||1,rowspan:t.attr("rowspan")||1},a);t.colspan<2&&n.push(t),o.cols[i].push(t)})}),e.find("tbody>tr").each(function(e){var a=p(this),l={};a.children("td").each(function(e,t){var a=p(this),i=a.data("field");if(i)return l[i]=a.html()}),layui.each(n,function(e,t){e=a.children("td").eq(e);l[t.field]=e.html()}),o.data[e]=l}),x.render(o)}),this},y.that={},y.config={},function(a,i,e,l){var n,o;l.colGroup&&(n=0,a++,l.CHILD_COLS=[],o=e+(parseInt(l.rowspan)||1),layui.each(i[o],function(e,t){t.PARENT_COL_INDEX||1<=n&&n==(l.colspan||1)||(t.PARENT_COL_INDEX=a,l.CHILD_COLS.push(t),n+=t.hide?0:parseInt(1td'),a!==undefined&&null!==a||(a=""),0==l&&d.push(t.title||""),o.push('"'+k.call(r,{item3:t,content:a,tplData:n,text:"text",obj:r.commonMember.call(i.eq(0),{td:function(e){return i.filter('[data-field="'+e+'"]')}})})+'"')))}),i.push(o.join(","))}),r&&layui.each(r.dataTotal,function(e,t){c[e]||l.push(t)}),d.join(",")+"\r\n"+i.join("\r\n")+"\r\n"+l.join(","))),u.download=(a.title||o.title||"table_"+(o.index||""))+"."+n,document.body.appendChild(u),u.click(),document.body.removeChild(u)},x.resize=function(e){e?l(e)&&y.that[e].resize():layui.each(y.that,function(){this.resize()})},x.reload=function(e,t,a,i){if(l(e))return e=y.that[e],e.reload(t,a,i),y.call(e)},x.reloadData=function(){var a=p.extend([],arguments),i=(a[3]="reloadData",new RegExp("^("+["data","url","where","page","limit","request","response","parseData"].join("|")+")$"));return layui.each(a[1],function(e,t){i.test(e)||delete a[1][e]}),x.reload.apply(null,a)},x.render=function(e){e=new i(e);return y.call(e)},x.clearCacheKey=function(e){return delete(e=p.extend({},e))[x.config.checkName],delete e[x.config.indexName],delete e[x.config.disabledName],e},p(function(){x.init()}),e(C,x)});layui.define("form",function(e){"use strict";var u=layui.$,i=layui.form,p=layui.layer,n="tree",a={config:{},index:layui[n]?layui[n].index+1e4:0,set:function(e){var i=this;return i.config=u.extend({},i.config,e),i},on:function(e,i){return layui.onevent.call(this,n,e,i)}},t=function(){var i=this,e=i.config,n=e.id||i.index;return t.that[n]=i,{config:t.config[n]=e,reload:function(e){i.reload.call(i,e)},getChecked:function(){return i.getChecked.call(i)},setChecked:function(e){return i.setChecked.call(i,e)}}},y="layui-hide",d="layui-disabled",f="layui-tree-set",C="layui-tree-iconClick",k="layui-icon-addition",v="layui-icon-subtraction",m="layui-tree-entry",x="layui-tree-main",b="layui-tree-txt",g="layui-tree-pack",w="layui-tree-spread",N="layui-tree-setLineShort",T="layui-tree-showLine",L="layui-tree-lineExtend",l=function(e){var i=this;i.index=++a.index,i.config=u.extend({},i.config,a.config,e),i.render()};l.prototype.config={data:[],showCheckbox:!1,showLine:!0,accordion:!1,onlyIconControl:!1,isJump:!1,edit:!1,text:{defaultNodeName:"\u672a\u547d\u540d",none:"\u65e0\u6570\u636e"}},l.prototype.reload=function(e){var n=this;layui.each(e,function(e,i){"array"===layui.type(i)&&delete n.config[e]}),n.config=u.extend(!0,{},n.config,e),n.render()},l.prototype.render=function(){var e=this,i=e.config,n=(e.checkids=[],u('
        ')),a=(e.tree(n),i.elem=u(i.elem));if(a[0]){if(e.key=i.id||e.index,e.elem=n,e.elemNone=u('
        '+i.text.none+"
        "),a.html(e.elem),0==e.elem.find(".layui-tree-set").length)return e.elem.append(e.elemNone);i.showCheckbox&&e.renderForm("checkbox"),e.elem.find(".layui-tree-set").each(function(){var e=u(this);e.parent(".layui-tree-pack")[0]||e.addClass("layui-tree-setHide"),!e.next()[0]&&e.parents(".layui-tree-pack").eq(1).hasClass("layui-tree-lineExtend")&&e.addClass(N),e.next()[0]||e.parents(".layui-tree-set").eq(0).next()[0]||e.addClass(N)}),e.events()}},l.prototype.renderForm=function(e){i.render(e,"LAY-tree-"+this.index)},l.prototype.tree=function(l,e){var r=this,c=r.config,e=e||c.data;layui.each(e,function(e,i){var n=i.children&&0"),t=u(['
        ','
        ','
        ',c.showLine?n?'':'':'',c.showCheckbox?'':"",c.isJump&&i.href?''+(i.title||i.label||c.text.defaultNodeName)+"":''+(i.title||i.label||c.text.defaultNodeName)+"","
        ",function(){if(!c.edit)return"";var n={add:'',update:'',del:''},a=['
        '];return!0===c.edit&&(c.edit=["update","del"]),"object"==typeof c.edit?(layui.each(c.edit,function(e,i){a.push(n[i]||"")}),a.join("")+"
        "):void 0}(),"
        "].join(""));n&&(t.append(a),r.tree(a,i.children)),l.append(t),t.prev("."+f)[0]&&t.prev().children(".layui-tree-pack").addClass("layui-tree-showLine"),n||t.parent(".layui-tree-pack").addClass("layui-tree-lineExtend"),r.spread(t,i),c.showCheckbox&&(i.checked&&r.checkids.push(i.id),r.checkClick(t,i)),c.edit&&r.operate(t,i)})},l.prototype.spread=function(a,e){var t=this.config,i=a.children("."+m),n=i.children("."+x),l=i.find("."+C),i=i.find("."+b),r=t.onlyIconControl?l:n,c="";r.on("click",function(e){var i=a.children("."+g),n=(r.children(".layui-icon")[0]?r:r.find(".layui-tree-icon")).children(".layui-icon");i[0]?a.hasClass(w)?(a.removeClass(w),i.slideUp(200),n.removeClass(v).addClass(k)):(a.addClass(w),i.slideDown(200),n.addClass(v).removeClass(k),t.accordion&&((i=a.siblings("."+f)).removeClass(w),i.children("."+g).slideUp(200),i.find(".layui-tree-icon").children(".layui-icon").removeClass(v).addClass(k))):c="normal"}),i.on("click",function(){u(this).hasClass(d)||(c=a.hasClass(w)?t.onlyIconControl?"open":"close":t.onlyIconControl?"close":"open",t.click&&t.click({elem:a,state:c,data:e}))})},l.prototype.setCheckbox=function(e,i,n){this.config;var t,l=n.prop("checked");n.prop("disabled")||("object"!=typeof i.children&&!e.find("."+g)[0]||e.find("."+g).find('input[same="layuiTreeCheck"]').each(function(){this.disabled||(this.checked=l)}),(t=function(e){var i,n,a;e.parents("."+f)[0]&&(n=(e=e.parent("."+g)).parent(),a=e.prev().find('input[same="layuiTreeCheck"]'),l?a.prop("checked",l):(e.find('input[same="layuiTreeCheck"]').each(function(){this.checked&&(i=!0)}),i||a.prop("checked",!1)),t(n))})(e),this.renderForm("checkbox"))},l.prototype.checkClick=function(n,a){var t=this,l=t.config;n.children("."+m).children("."+x).on("click",'input[same="layuiTreeCheck"]+',function(e){layui.stope(e);var e=u(this).prev(),i=e.prop("checked");e.prop("disabled")||(t.setCheckbox(n,a,e),l.oncheck&&l.oncheck({elem:n,checked:i,data:a}))})},l.prototype.operate=function(c,d){var s=this,o=s.config,e=c.children("."+m),h=e.children("."+x);e.children(".layui-tree-btnGroup").on("click",".layui-icon",function(e){layui.stope(e);var i,e=u(this).data("type"),a=c.children("."+g),t={data:d,type:e,elem:c};if("add"==e){a[0]||(o.showLine?(h.find("."+C).addClass("layui-tree-icon"),h.find("."+C).children(".layui-icon").addClass(k).removeClass("layui-icon-file")):h.find(".layui-tree-iconArrow").removeClass(y),c.append('
        '));var n,l=o.operate&&o.operate(t),r={};if(r.title=o.text.defaultNodeName,r.id=l,s.tree(c.children("."+g),[r]),o.showLine&&(a[0]?(a.hasClass(L)||a.addClass(L),c.find("."+g).each(function(){u(this).children("."+f).last().addClass(N)}),(a.children("."+f).last().prev().hasClass(N)?a.children("."+f).last().prev():a.children("."+f).last()).removeClass(N),!c.parent("."+g)[0]&&c.next()[0]&&a.children("."+f).last().removeClass(N)):(l=c.siblings("."+f),n=1,r=c.parent("."+g),layui.each(l,function(e,i){u(i).children("."+g)[0]||(n=0)}),1==n?(l.children("."+g).addClass(T),l.children("."+g).children("."+f).removeClass(N),c.children("."+g).addClass(T),r.removeClass(L),r.children("."+f).last().children("."+g).children("."+f).last().addClass(N)):c.children("."+g).children("."+f).addClass(N))),!o.showCheckbox)return;h.find('input[same="layuiTreeCheck"]')[0].checked&&(c.children("."+g).children("."+f).last().find('input[same="layuiTreeCheck"]')[0].checked=!0),s.renderForm("checkbox")}else"update"==e?(l=h.children("."+b).html(),h.children("."+b).html(""),h.append(''),h.children(".layui-tree-editInput").val(l).focus(),i=function(e){var i=(i=e.val().trim())||o.text.defaultNodeName;e.remove(),h.children("."+b).html(i),t.data.title=i,o.operate&&o.operate(t)},h.children(".layui-tree-editInput").blur(function(){i(u(this))}),h.children(".layui-tree-editInput").on("keydown",function(e){13===e.keyCode&&(e.preventDefault(),i(u(this)))})):p.confirm('\u786e\u8ba4\u5220\u9664\u8be5\u8282\u70b9 "'+(d.title||"")+'" \u5417\uff1f',function(e){if(o.operate&&o.operate(t),t.status="remove",p.close(e),!c.prev("."+f)[0]&&!c.next("."+f)[0]&&!c.parent("."+g)[0])return c.remove(),void s.elem.append(s.elemNone);var l,n,i;c.siblings("."+f).children("."+m)[0]?(o.showCheckbox&&(l=function(e){var i,n,a,t;e.parents("."+f)[0]&&(i=e.siblings("."+f).children("."+m),n=(e=e.parent("."+g).prev()).find('input[same="layuiTreeCheck"]')[0],a=1,(t=0)==n.checked&&(i.each(function(e,i){i=u(i).find('input[same="layuiTreeCheck"]')[0];0!=i.checked||i.disabled||(a=0),i.disabled||(t=1)}),1==a&&1==t&&(n.checked=!0,s.renderForm("checkbox"),l(e.parent("."+f)))))})(c),o.showLine&&(e=c.siblings("."+f),n=1,i=c.parent("."+g),layui.each(e,function(e,i){u(i).children("."+g)[0]||(n=0)}),1==n?(a[0]||(i.removeClass(L),e.children("."+g).addClass(T),e.children("."+g).children("."+f).removeClass(N)),(c.next()[0]?i.children("."+f).last():c.prev()).children("."+g).children("."+f).last().addClass(N),c.next()[0]||c.parents("."+f)[1]||c.parents("."+f).eq(0).next()[0]||c.prev("."+f).addClass(N)):!c.next()[0]&&c.hasClass(N)&&c.prev().addClass(N))):(e=c.parent("."+g).prev(),o.showLine?(e.find("."+C).removeClass("layui-tree-icon"),e.find("."+C).children(".layui-icon").removeClass(v).addClass("layui-icon-file"),(i=e.parents("."+g).eq(0)).addClass(L),i.children("."+f).each(function(){u(this).children("."+g).children("."+f).last().addClass(N)})):e.find(".layui-tree-iconArrow").addClass(y),c.parents("."+f).eq(0).removeClass(w),c.parent("."+g).remove()),c.remove()})})},l.prototype.events=function(){var i=this,t=i.config;i.elem.find(".layui-tree-checkedFirst");i.setChecked(i.checkids),i.elem.find(".layui-tree-search").on("keyup",function(){var e=u(this),n=e.val(),e=e.nextAll(),a=[];e.find("."+b).each(function(){var i,e=u(this).parents("."+m);-1!=u(this).html().indexOf(n)&&(a.push(u(this).parent()),(i=function(e){e.addClass("layui-tree-searchShow"),e.parent("."+g)[0]&&i(e.parent("."+g).parent("."+f))})(e.parent("."+f)))}),e.find("."+m).each(function(){var e=u(this).parent("."+f);e.hasClass("layui-tree-searchShow")||e.addClass(y)}),0==e.find(".layui-tree-searchShow").length&&i.elem.append(i.elemNone),t.onsearch&&t.onsearch({elem:a})}),i.elem.find(".layui-tree-search").on("keydown",function(){u(this).nextAll().find("."+m).each(function(){u(this).parent("."+f).removeClass("layui-tree-searchShow "+y)}),u(".layui-tree-emptyText")[0]&&u(".layui-tree-emptyText").remove()})},l.prototype.getChecked=function(){var e=this.config,i=[],n=[],t=(this.elem.find(".layui-form-checked").each(function(){i.push(u(this).prev()[0].value)}),function(e,a){layui.each(e,function(e,n){layui.each(i,function(e,i){if(n.id==i)return delete(i=u.extend({},n)).children,a.push(i),n.children&&(i.children=[],t(n.children,i.children)),!0})})});return t(u.extend({},e.data),n),n},l.prototype.setChecked=function(l){this.config;this.elem.find("."+f).each(function(e,i){var n=u(this).data("id"),a=u(i).children("."+m).find('input[same="layuiTreeCheck"]'),t=a.next();if("number"==typeof l){if(n==l)return a[0].checked||t.click(),!1}else"object"==typeof l&&layui.each(l,function(e,i){if(i==n&&!a[0].checked)return t.click(),!0})})},t.that={},t.config={},a.reload=function(e,i){e=t.that[e];return e.reload(i),t.call(e)},a.getChecked=function(e){return t.that[e].getChecked()},a.setChecked=function(e,i){return t.that[e].setChecked(i)},a.render=function(e){e=new l(e);return t.call(e)},e(n,a)});layui.define(["laytpl","form"],function(e){"use strict";var d=layui.$,n=layui.laytpl,t=layui.form,a="transfer",i={config:{},index:layui[a]?layui[a].index+1e4:0,set:function(e){var t=this;return t.config=d.extend({},t.config,e),t},on:function(e,t){return layui.onevent.call(this,a,e,t)}},l=function(){var t=this,e=t.config,a=e.id||t.index;return l.that[a]=t,{config:l.config[a]=e,reload:function(e){t.reload.call(t,e)},getData:function(){return t.getData.call(t)}}},s="layui-hide",h="layui-btn-disabled",r="layui-none",c="layui-transfer-box",u="layui-transfer-header",o="layui-transfer-search",f="layui-transfer-data",y=function(e){return['
        ','
        ','","
        ","{{# if(d.data.showSearch){ }}",'","{{# } }}",'
          ',"
          "].join("")},p=['
          ',y({index:0,checkAllName:"layTransferLeftCheckAll"}),'
          ','",'","
          ",y({index:1,checkAllName:"layTransferRightCheckAll"}),"
          "].join(""),v=function(e){var t=this;t.index=++i.index,t.config=d.extend({},t.config,i.config,e),t.render()};v.prototype.config={title:["\u5217\u8868\u4e00","\u5217\u8868\u4e8c"],width:200,height:360,data:[],value:[],showSearch:!1,id:"",text:{none:"\u65e0\u6570\u636e",searchNone:"\u65e0\u5339\u914d\u6570\u636e"}},v.prototype.reload=function(e){var t=this;t.config=d.extend({},t.config,e),t.render()},v.prototype.render=function(){var e=this,t=e.config,a=e.elem=d(n(p).render({data:t,index:e.index})),i=t.elem=d(t.elem);i[0]&&(t.data=t.data||[],t.value=t.value||[],e.key=t.id||e.index,i.html(e.elem),e.layBox=e.elem.find("."+c),e.layHeader=e.elem.find("."+u),e.laySearch=e.elem.find("."+o),e.layData=a.find("."+f),e.layBtn=a.find(".layui-transfer-active .layui-btn"),e.layBox.css({width:t.width,height:t.height}),e.layData.css({height:(i=t.height-e.layHeader.outerHeight(),t.showSearch&&(i-=e.laySearch.outerHeight()),i-2)}),e.renderData(),e.events())},v.prototype.renderData=function(){var e=this,i=(e.config,[{checkName:"layTransferLeftCheck",views:[]},{checkName:"layTransferRightCheck",views:[]}]);e.parseData(function(e){var t=e.selected?1:0,a=["
        • ",'',"
        • "].join("");i[t].views.push(a),delete e.selected}),e.layData.eq(0).html(i[0].views.join("")),e.layData.eq(1).html(i[1].views.join("")),e.renderCheckBtn()},v.prototype.renderForm=function(e){t.render(e,"LAY-transfer-"+this.index)},v.prototype.renderCheckBtn=function(r){var c=this,o=c.config;r=r||{},c.layBox.each(function(e){var t=d(this),a=t.find("."+f),t=t.find("."+u).find('input[type="checkbox"]'),i=a.find('input[type="checkbox"]'),n=0,l=!1;i.each(function(){var e=d(this).data("hide");(this.checked||this.disabled||e)&&n++,this.checked&&!e&&(l=!0)}),t.prop("checked",l&&n===i.length),c.layBtn.eq(e)[l?"removeClass":"addClass"](h),r.stopNone||(i=a.children("li:not(."+s+")").length,c.noneView(a,i?"":o.text.none))}),c.renderForm("checkbox")},v.prototype.noneView=function(e,t){var a=d('

          '+(t||"")+"

          ");e.find("."+r)[0]&&e.find("."+r).remove(),t.replace(/\s/g,"")&&e.append(a)},v.prototype.setValue=function(){var e=this.config,t=[];return this.layBox.eq(1).find("."+f+' input[type="checkbox"]').each(function(){d(this).data("hide")||t.push(this.value)}),e.value=t,this},v.prototype.parseData=function(t){var i=this.config,n=[];return layui.each(i.data,function(e,a){a=("function"==typeof i.parseData?i.parseData(a):a)||a,n.push(a=d.extend({},a)),layui.each(i.value,function(e,t){t==a.value&&(a.selected=!0)}),t&&t(a)}),i.data=n,this},v.prototype.getData=function(e){var t=this.config,i=[];return this.setValue(),layui.each(e||t.value,function(e,a){layui.each(t.data,function(e,t){delete t.selected,a==t.value&&i.push(t)})}),i},v.prototype.transfer=function(e,t){var a,i=this,n=i.config,l=i.layBox.eq(e),r=[],t=(t?((a=(t=t).find('input[type="checkbox"]'))[0].checked=!1,l.siblings("."+c).find("."+f).append(t.clone()),t.remove(),r.push(a[0].value),i.setValue()):l.each(function(e){d(this).find("."+f).children("li").each(function(){var e=d(this),t=e.find('input[type="checkbox"]'),a=t.data("hide");t[0].checked&&!a&&(t[0].checked=!1,l.siblings("."+c).find("."+f).append(e.clone()),e.remove(),r.push(t[0].value)),i.setValue()})}),i.renderCheckBtn(),l.siblings("."+c).find("."+o+" input"));""!==t.val()&&t.trigger("keyup"),n.onchange&&n.onchange(i.getData(r),e)},v.prototype.events=function(){var n=this,a=n.config;n.elem.on("click",'input[lay-filter="layTransferCheckbox"]+',function(){var e=d(this).prev(),t=e[0].checked,a=e.parents("."+c).eq(0).find("."+f);e[0].disabled||("all"===e.attr("lay-type")&&a.find('input[type="checkbox"]').each(function(){this.disabled||(this.checked=t)}),setTimeout(function(){n.renderCheckBtn({stopNone:!0})},0))}),n.elem.on("dblclick","."+f+">li",function(e){var t=d(this),a=t.children('input[type="checkbox"]'),i=t.parent().parent();a[0].disabled||n.transfer(i.data("index"),t)}),n.layBtn.on("click",function(){var e=d(this),t=e.data("index");e.hasClass(h)||n.transfer(t)}),n.laySearch.find("input").on("keyup",function(){var i=this.value,e=d(this).parents("."+o).eq(0).siblings("."+f),t=e.children("li"),t=(t.each(function(){var e=d(this),t=e.find('input[type="checkbox"]'),a=-1!==t[0].title.indexOf(i);e[a?"removeClass":"addClass"](s),t.data("hide",!a)}),n.renderCheckBtn(),t.length===e.children("li."+s).length);n.noneView(e,t?a.text.searchNone:"")})},l.that={},l.config={},i.reload=function(e,t){e=l.that[e];return e.reload(t),l.call(e)},i.getData=function(e){return l.that[e].getData()},i.render=function(e){e=new v(e);return l.call(e)},e(a,i)});layui.define("jquery",function(e){"use strict";var a=layui.$,n=(layui.hint(),layui.device(),{config:{},set:function(e){var i=this;return i.config=a.extend({},i.config,e),i},on:function(e,i){return layui.onevent.call(this,d,e,i)}}),d="carousel",r="layui-this",s="layui-carousel-left",u="layui-carousel-right",c="layui-carousel-prev",m="layui-carousel-next",t="layui-carousel-arrow",l="layui-carousel-ind",i=function(e){var i=this;i.config=a.extend({},i.config,n.config,e),i.render()};i.prototype.config={width:"600px",height:"280px",full:!1,arrow:"hover",indicator:"inside",autoplay:!0,interval:3e3,anim:"",trigger:"click",index:0},i.prototype.render=function(){var e=this,i=e.config;i.elem=a(i.elem),i.elem[0]&&(e.elemItem=i.elem.find(">*[carousel-item]>*"),i.index<0&&(i.index=0),i.index>=e.elemItem.length&&(i.index=e.elemItem.length-1),i.interval<800&&(i.interval=800),i.full?i.elem.css({position:"fixed",width:"100%",height:"100%",zIndex:9999}):i.elem.css({width:i.width,height:i.height}),i.elem.attr("lay-anim",i.anim),e.elemItem.eq(i.index).addClass(r),e.elemItem.length<=1||(e.indicator(),e.arrow(),e.autoplay(),e.events()))},i.prototype.reload=function(e){var i=this;clearInterval(i.timer),i.config=a.extend({},i.config,e),i.render()},i.prototype.prevIndex=function(){var e=this.config.index-1;return e=e<0?this.elemItem.length-1:e},i.prototype.nextIndex=function(){var e=this.config.index+1;return e=e>=this.elemItem.length?0:e},i.prototype.addIndex=function(e){var i=this.config;i.index=i.index+(e=e||1),i.index>=this.elemItem.length&&(i.index=0)},i.prototype.subIndex=function(e){var i=this.config;i.index=i.index-(e=e||1),i.index<0&&(i.index=this.elemItem.length-1)},i.prototype.autoplay=function(){var e=this,i=e.config;i.autoplay&&(clearInterval(e.timer),e.timer=setInterval(function(){e.slide()},i.interval))},i.prototype.arrow=function(){var i=this,e=i.config,n=a(['",'"].join(""));e.elem.attr("lay-arrow",e.arrow),e.elem.find("."+t)[0]&&e.elem.find("."+t).remove(),e.elem.append(n),n.on("click",function(){var e=a(this).attr("lay-type");i.slide(e)})},i.prototype.indicator=function(){var i,n=this,t=n.config,e=n.elemInd=a(['
            ',(i=[],layui.each(n.elemItem,function(e){i.push("")}),i.join("")),"
          "].join(""));t.elem.attr("lay-indicator",t.indicator),t.elem.find("."+l)[0]&&t.elem.find("."+l).remove(),t.elem.append(e),"updown"===t.anim&&e.css("margin-top",-e.height()/2),e.find("li").on("hover"===t.trigger?"mouseover":t.trigger,function(){var e=a(this).index();e>t.index?n.slide("add",e-t.index):ea.length&&(a.value=a.length),parseInt(a.value)===a.value||a.half||(a.value=Math.ceil(a.value)-a.value<.5?Math.ceil(a.value):Math.floor(a.value)),'
            "),n=1;n<=a.length;n++){var t='
          • ";a.half&&parseInt(a.value)!==a.value&&n==Math.ceil(a.value)?i=i+'
          • ":i+=t}i+="
          "+(a.text?''+a.value+"\u661f":"")+"";var o=a.elem,s=o.next(".layui-rate");s[0]&&s.remove(),e.elemTemp=u(i),a.span=e.elemTemp.next("span"),a.setText&&a.setText(a.value),o.html(e.elemTemp),o.addClass("layui-inline"),a.readonly||e.action()},a.prototype.setvalue=function(e){this.config.value=e,this.render()},a.prototype.action=function(){var i=this.config,n=this.elemTemp,t=n.find("i").width();n.children("li").each(function(e){var a=e+1,l=u(this);l.on("click",function(e){i.value=a,i.half&&e.pageX-u(this).offset().left<=t/2&&(i.value=i.value-.5),i.text&&n.next("span").text(i.value+"\u661f"),i.choose&&i.choose(i.value),i.setText&&i.setText(i.value)}),l.on("mousemove",function(e){n.find("i").each(function(){u(this).addClass(c).removeClass(s)}),n.find("i:lt("+a+")").each(function(){u(this).addClass(r).removeClass(f)}),i.half&&e.pageX-u(this).offset().left<=t/2&&l.children("i").addClass(o).removeClass(r)}),l.on("mouseleave",function(){n.find("i").each(function(){u(this).addClass(c).removeClass(s)}),n.find("i:lt("+Math.floor(i.value)+")").each(function(){u(this).addClass(r).removeClass(f)}),i.half&&parseInt(i.value)!==i.value&&n.children("li:eq("+Math.floor(i.value)+")").children("i").addClass(o).removeClass("layui-icon-rate-solid layui-icon-rate")})})},a.prototype.events=function(){this.config},l.render=function(e){e=new a(e);return function(){var a=this;return{setvalue:function(e){a.setvalue.call(a,e)},config:a.config}}.call(e)},e(i,l)});layui.define("jquery",function(l){"use strict";var g=layui.$,e=function(l){};e.prototype.load=function(l){var t,i,n,e,r,o,a,c,m,s,u,f,y,d=this,p=0,h=g((l=l||{}).elem);if(h[0])return e=g(l.scrollElem||document),r=l.mb||50,o=!("isAuto"in l)||l.isAuto,a=l.end||"\u6ca1\u6709\u66f4\u591a\u4e86",c=l.scrollElem&&l.scrollElem!==document,m="\u52a0\u8f7d\u66f4\u591a",s=g('"),h.find(".layui-flow-more")[0]||h.append(s),u=function(l,e){l=g(l),s.before(l),(e=0==e||null)?s.html(a):s.find("a").html(m),i=e,t=null,y&&y()},f=function(){t=!0,s.find("a").html(''),"function"==typeof l.done&&l.done(++p,u)},f(),s.find("a").on("click",function(){g(this);i||t||f()}),l.isLazyimg&&(y=d.lazyimg({elem:l.elem+" img",scrollElem:l.scrollElem})),o&&e.on("scroll",function(){var e=g(this),o=e.scrollTop();n&&clearTimeout(n),!i&&h.width()&&(n=setTimeout(function(){var l=(c?e:g(window)).height();(c?e.prop("scrollHeight"):document.documentElement.scrollHeight)-o-l<=r&&(t||f())},100))}),d},e.prototype.lazyimg=function(l){var e,c=this,m=0,s=g((l=l||{}).scrollElem||document),u=l.elem||"img",f=l.scrollElem&&l.scrollElem!==document,y=function(e,l){var o,t=s.scrollTop(),l=t+l,i=f?e.offset().top-s.offset().top+t:e.offset().top;t<=i&&i<=l&&e.attr("lay-src")&&(o=e.attr("lay-src"),layui.img(o,function(){var l=c.lazyimg.elem.eq(m);e.attr("src",o).removeAttr("lay-src"),l[0]&&n(l),m++},function(){c.lazyimg.elem.eq(m);e.removeAttr("lay-src")}))},n=function(l,e){var o=(f?e||s:g(window)).height(),t=s.scrollTop(),i=t+o;if(c.lazyimg.elem=g(u),l)y(l,o);else for(var n=0;n','
          '+e+"
          ",'
          ','',"
          ",""].join(""));return d.ie&&d.ie<8?s.removeClass("layui-hide").addClass("layui-show"):(c[0]&&c.remove(),f.call(a,o,s[0],n),s.addClass("layui-hide").after(o),a.index)},e.prototype.getContent=function(t){t=n(t);if(t[0])return l(t[0].document.body.innerHTML)},e.prototype.getText=function(t){t=n(t);if(t[0])return u(t[0].document.body).text()},e.prototype.setContent=function(t,e,i){var l=n(t);l[0]&&(i?u(l[0].document.body).append(e):u(l[0].document.body).html(e),layedit.sync(t))},e.prototype.sync=function(t){t=n(t);t[0]&&u("#"+t[1].attr("textarea")).val(l(t[0].document.body.innerHTML))},e.prototype.getSelection=function(t){var t=n(t);if(t[0])return t=p(t[0].document),document.selection?t.text:t.toString()},function(a,n,o){var s=this,r=a.find("iframe");r.css({height:o.height}).on("load",function(){var t=r.contents(),e=r.prop("contentWindow"),i=t.find("head"),l=u([""].join("")),t=t.find("body");i.append(l),t.attr("contenteditable","true").css({"min-height":o.height}).html(n.value||""),m.apply(s,[e,r,n,o]),g.call(s,e,a,o)})}),n=function(t){t=u("#LAY_layedit_"+t);return[t.prop("contentWindow"),t]},l=function(t){return t=8==d.ie?t.replace(/<.+>/g,function(t){return t.toLowerCase()}):t},m=function(e,t,i,l){var a=e.document,n=u(a.body);n.on("keydown",function(t){if(13===t.keyCode){var e=p(a);if("pre"===h(e).parentNode.tagName.toLowerCase())return t.shiftKey?void 0:(c.msg("\u8bf7\u6682\u65f6\u7528shift+enter"),!1);a.execCommand("formatBlock",!1,"

          ")}}),u(i).parents("form").on("submit",function(){var t=n.html();8==d.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),i.value=t}),n.on("paste",function(t){a.execCommand("formatBlock",!1,"

          "),setTimeout(function(){o.call(e,n),i.value=n.html()},100)})},o=function(t){this.document;t.find("*[style]").each(function(){var t=this.style.textAlign;this.removeAttribute("style"),u(this).css({"text-align":t||""})}),t.find("table").addClass("layui-table"),t.find("script,link").remove()},p=function(t){return t.selection?t.selection.createRange():t.getSelection().getRangeAt(0)},h=function(t){return t.endContainer||t.parentElement().childNodes[0]},v=function(t,e,i){var l,a,n=this.document,o=document.createElement(t);for(l in e)o.setAttribute(l,e[l]);o.removeAttribute("text"),n.selection?(a=i.text||e.text,"a"===t&&!a||(a&&(o.innerHTML=a),i.pasteHTML(u(o).prop("outerHTML")),i.select())):(a=i.toString()||e.text,"a"===t&&!a||(a&&(o.innerHTML=a),i.deleteContents(),i.insertNode(o)))},b=function(e,t){var i=this.document,l="layedit-tool-active",i=h(p(i)),a=function(t){return e.find(".layedit-tool-"+t)};t&&t[t.hasClass(l)?"removeClass":"addClass"](l),e.find(">i").removeClass(l),a("unlink").addClass(y),u(i).parents().each(function(){var t=this.tagName.toLowerCase(),e=this.style.textAlign;"b"!==t&&"strong"!==t||a("b").addClass(l),"i"!==t&&"em"!==t||a("i").addClass(l),"u"===t&&a("u").addClass(l),"strike"===t&&a("d").addClass(l),"p"===t&&a("center"===e?"center":"right"===e?"right":"left").addClass(l),"a"===t&&(a("link").addClass(l),a("unlink").removeClass(y))})},g=function(a,t,e){var n=a.document,o=u(n.body),s={link:function(i){var t=h(i),l=u(t).parent();x.call(o,{href:l.attr("href"),target:l.attr("target")},function(t){var e=l[0];"A"===e.tagName?e.href=t.url:v.call(a,"a",{target:t.target,href:t.url,text:t.url},i)})},unlink:function(t){n.execCommand("unlink")},code:function(e){k.call(o,function(t){v.call(a,"pre",{text:t.code,"lay-lang":t.lang},e)})},help:function(){c.open({type:2,title:"\u5e2e\u52a9",area:["600px","380px"],shadeClose:!0,shade:.1,skin:"layui-layer-msg",content:["","no"]})}},r=t.find(".layui-layedit-tool"),i=function(){var t,e=u(this),i=e.attr("layedit-event"),l=e.attr("lay-command");e.hasClass(y)||(o.focus(),(t=p(n)).commonAncestorContainer,l?(n.execCommand(l),/justifyLeft|justifyCenter|justifyRight/.test(l)&&n.execCommand("formatBlock",!1,"

          "),setTimeout(function(){o.focus()},10)):s[i]&&s[i].call(this,t),b.call(a,r,e))},l=/image/;r.find(">i").on("mousedown",function(){var t=u(this).attr("layedit-event");l.test(t)||i.call(this)}).on("click",function(){var t=u(this).attr("layedit-event");l.test(t)&&i.call(this)}),o.on("click",function(){b.call(a,r)})},x=function(t,i){var l=this,t=c.open({type:1,id:"LAY_layedit_link",area:"350px",shade:.05,shadeClose:!0,moveType:1,title:"\u8d85\u94fe\u63a5",skin:"layui-layer-msg",content:['

            ','
          • ','','
            ','',"
            ","
          • ",'
          • ','','
            ','",'","
            ","
          • ",'
          • ','','',"
          • ","
          "].join(""),success:function(t,e){a.render("radio"),t.find(".layui-btn-primary").on("click",function(){c.close(e),l.focus()}),a.on("submit(layedit-link-yes)",function(t){c.close(x.index),i&&i(t.field)})}});x.index=t},k=function(i){var l=this,t=c.open({type:1,id:"LAY_layedit_code",area:"550px",shade:.05,shadeClose:!0,moveType:1,title:"\u63d2\u5165\u4ee3\u7801",skin:"layui-layer-msg",content:['
            ','
          • ','','
            ','","
            ","
          • ",'
          • ','','
            ','',"
            ","
          • ",'
          • ','','',"
          • ","
          "].join(""),success:function(t,e){a.render("select"),t.find(".layui-btn-primary").on("click",function(){c.close(e),l.focus()}),a.on("submit(layedit-code-yes)",function(t){c.close(k.index),i&&i(t.field)})}});k.index=t},C={html:'',strong:'',italic:'',underline:'',del:'',"|":'',left:'',center:'',right:'',link:'',unlink:'',face:'',image:'',code:'',help:''},e=new e;t(i,e)});layui.define(["util"],function(l){"use strict";var t=layui.$,n=layui.util;l("code",function(i){var l=[];(i=i||{}).elem=t(i.elem||".layui-code"),i.lang="lang"in i?i.lang:"code",i.elem.each(function(){l.push(this)}),layui.each(l.reverse(),function(l,a){var a=t(a),e=(e=a.html(),t.trim(e).replace(/^\n|\n$/,"")),e=((a.attr("lay-encode")||i.encode)&&(e=n.escape(e)),a.html('
          1. '+e.replace(/[\r\t\n]+/g,"
          2. ")+"
          "),a.find(">.layui-code-h3")[0]||a.prepend('

          '+(a.attr("lay-title")||i.title||"</>")+''+(a.attr("lay-lang")||i.lang||"")+"

          "),a.find(">.layui-code-ol"));a.addClass("layui-box layui-code-view"),(a.attr("lay-skin")||i.skin)&&a.addClass("layui-code-"+(a.attr("lay-skin")||i.skin)),0<(e.find("li").length/100|0)&&e.css("margin-left",(e.find("li").length/100|0)+"px"),(a.attr("lay-height")||i.height)&&e.css("max-height",a.attr("lay-height")||i.height)})})}).addcss("modules/code.css?v=2","skincodecss"); \ No newline at end of file diff --git a/Bin/Debug/SuperDesign/SysDb/layui/webget.html b/Bin/Debug/SuperDesign/SysDb/layui/webget.html new file mode 100644 index 0000000..a3344b7 --- /dev/null +++ b/Bin/Debug/SuperDesign/SysDb/layui/webget.html @@ -0,0 +1,325 @@ + + + + + + + + +数据 + + + + + + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          +
          +
          +
          +
          +
          基本配置
          +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          + + + +
          +
          +
          +
          +
          +
          高级配置
          +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          +
          +
          + +
          + +
          +
          +
          + +
          + +
          +
          +
          +
          +
          +
          +
          高级输入参数
          +
          +
          +
            +
          • Post数据
          • +
          • Cookie
          • +
          • Header
          • +
          +
          +
          + +
          +
          + +
          +
          + +
          +
          +
          +
          +
          +
          +
          + + +
          + + diff --git a/Bin/Debug/SuperDesign/System.dll b/Bin/Debug/SuperDesign/System.dll new file mode 100644 index 0000000..dd6f3d5 Binary files /dev/null and b/Bin/Debug/SuperDesign/System.dll differ diff --git a/Bin/Debug/SuperDesign/System.xml b/Bin/Debug/SuperDesign/System.xml new file mode 100644 index 0000000..218056c --- /dev/null +++ b/Bin/Debug/SuperDesign/System.xml @@ -0,0 +1,48285 @@ + + + + System + + + + Provides access to instances of the C# code generator and code compiler. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class by using the specified provider options. + A object that contains the provider options from the configuration file. + + is null. + + + Gets an instance of the C# code compiler. + An instance of the C# implementation. + + + Gets an instance of the C# code generator. + An instance of the C# implementation. + + + Gets the file name extension to use when creating source code files. + The file name extension to use for generated source code files. + + + Generates code for the specified class member using the specified text writer and code generator options. + A to generate code for. + The to write to. + The to use when generating the code. + + + Gets a for the specified type of object. + A for the specified type. + The type of object to retrieve a type converter for. + + + Provides access to instances of the Visual Basic code generator and code compiler. + 2 + + + Initializes a new instance of the class. + + + Initializes a new instance of the class by using the specified provider options. + A object that contains the provider options from the configuration file. + + is null. + + + Gets an instance of the Visual Basic code compiler. + An instance of the Visual Basic implementation. + 2 + + + Gets an instance of the Visual Basic code generator. + An instance of the Visual Basic implementation. + 2 + + + Gets the file name extension to use when creating source code files. + The file name extension to use for generated source code files. + 2 + + + Generates code for the specified class member using the specified text writer and code generator options. + A to generate code for. + The to write to. + The to use when generating the code. + 1 + + + Gets a for the specified type of object. + A for the specified type. + The type of object to retrieve a type converter for. + 2 + + + Gets a language features identifier. + A that indicates special features of the language. + 2 + + + Defines a credential policy to be used for resource requests that are made using and its derived classes. + + + Initializes a new instance of the class. + + + Returns a that indicates whether the client's credentials are sent with a request for a resource that was made using . + true if the requested resource is in the same domain as the client making the request; otherwise, false. + The that will receive the request. + The that represents the resource being requested. + The that will be sent with the request if this method returns true. + The that will conduct the authentication, if authentication is required. + + + Provides data for the event. + + + Initializes a new instance of the class using the specified power mode event type. + One of the values that represents the type of power mode event. + + + Gets an identifier that indicates the type of the power mode event that has occurred. + One of the values. + + + Represents the method that will handle the event. + The source of the event. When this event is raised by the class, this object is always null. + A that contains the event data. + + + Defines identifiers for power mode events reported by the operating system. + + + The operating system is about to resume from a suspended state. + + + A power mode status notification event has been raised by the operating system. This might indicate a weak or charging battery, a transition between AC power and battery, or another change in the status of the system power supply. + + + The operating system is about to be suspended. + + + Provides data for the event. + + + Initializes a new instance of the class. + One of the values indicating how the session ended. + + + Gets an identifier that indicates how the session ended. + One of the values that indicates how the session ended. + + + Represents the method that will handle the event. + The source of the event. When this event is raised by the class, this object is always null. + A that contains the event data. + + + Provides data for the event. + + + Initializes a new instance of the class using the specified value indicating the type of session close event that is occurring. + One of the that specifies how the session ends. + + + Gets or sets a value indicating whether to cancel the user request to end the session. + true to cancel the user request to end the session; otherwise, false. + + + Gets the reason the session is ending. + One of the values that specifies how the session is ending. + + + Represents the method that will handle the event from the operating system. + The source of the event. When this event is raised by the class, this object is always null. + A that contains the event data. + + + Defines identifiers that represent how the current logon session is ending. + + + The user is logging off and ending the current user session. The operating system continues to run. + + + The operating system is shutting down. + + + Provides data for the event. + + + Initializes a new instance of the class using the specified session change event type identifer. + A that indicates the type of session change event. + + + Gets an identifier that indicates the type of session change event. + A indicating the type of the session change event. + + + Represents the method that will handle the event. + The source of the event. + A indicating the type of the session change event. + + + Defines identifiers used to represent the type of a session switch event. + + + A session has been connected from the console. + + + A session has been disconnected from the console. + + + A session has been connected from a remote connection. + + + A session has been disconnected from a remote connection. + + + A session has been locked. + + + A user has logged off from a session. + + + A user has logged on to a session. + + + A session has changed its status to or from remote controlled mode. + + + A session has been unlocked. + + + Provides access to system event notifications. This class cannot be inherited. + + + Creates a new window timer associated with the system events window. + The ID of the new timer. + Specifies the interval between timer notifications, in milliseconds. + The interval is less than or equal to zero. + System event notifications are not supported under the current context. Server processes, for example, might not support global system event notifications. + The attempt to create a system events window thread did not succeed, or the attempt to create the timer did not succeed. + + + Occurs when the user changes the display settings. + System event notifications are not supported under the current context. Server processes, for example, might not support global system event notifications. + The attempt to create a system events window thread did not succeed. + + + Occurs when the display settings are changing. + System event notifications are not supported under the current context. Server processes, for example, might not support global system event notifications. + The attempt to create a system events window thread did not succeed. + + + Occurs before the thread that listens for system events is terminated. + System event notifications are not supported under the current context. Server processes, for example, might not support global system event notifications. + The attempt to create a system events window thread did not succeed. + + + Occurs when the user adds fonts to or removes fonts from the system. + System event notifications are not supported under the current context. Server processes, for example, might not support global system event notifications. + The attempt to create a system events window thread did not succeed. + + + Invokes the specified delegate using the thread that listens for system events. + A delegate to invoke using the thread that listens for system events. + System event notifications are not supported under the current context. Server processes, for example, might not support global system event notifications. + The attempt to create a system events window thread did not succeed. + + + Terminates the timer specified by the given id. + The ID of the timer to terminate. + System event notifications are not supported under the current context. Server processes, for example, might not support global system event notifications. + The attempt to create a system events window thread did not succeed, or the attempt to terminate the timer did not succeed. + + + Occurs when the system is running out of available RAM. + System event notifications are not supported under the current context. Server processes, for example, might not support global system event notifications. + The attempt to create a system events window thread did not succeed. + + + Occurs when the user switches to an application that uses a different palette. + System event notifications are not supported under the current context. Server processes, for example, might not support global system event notifications. + The attempt to create a system events window thread did not succeed. + + + Occurs when the user suspends or resumes the system. + System event notifications are not supported under the current context. Server processes, for example, might not support global system event notifications. + The attempt to create a system events window thread did not succeed. + + + Occurs when the user is logging off or shutting down the system. + System event notifications are not supported under the current context. Server processes, for example, might not support global system event notifications. + The attempt to create a system events window thread did not succeed. + + + Occurs when the user is trying to log off or shut down the system. + System event notifications are not supported under the current context. Server processes, for example, might not support global system event notifications. + The attempt to create a system events window thread did not succeed. + + + Occurs when the currently logged-in user has changed. + System event notifications are not supported under the current context. Server processes, for example, might not support global system event notifications. + The attempt to create a system events window thread did not succeed. + + + Occurs when the user changes the time on the system clock. + System event notifications are not supported under the current context. Server processes, for example, might not support global system event notifications. + The attempt to create a system events window thread did not succeed. + + + Occurs when a windows timer interval has expired. + System event notifications are not supported under the current context. Server processes, for example, might not support global system event notifications. + The attempt to create a system events window thread did not succeed. + + + Occurs when a user preference has changed. + System event notifications are not supported under the current context. Server processes, for example, might not support global system event notifications. + The attempt to create a system events window thread did not succeed. + + + Occurs when a user preference is changing. + System event notifications are not supported under the current context. Server processes, for example, might not support global system event notifications. + The attempt to create a system events window thread did not succeed. + + + Provides data for the event. + + + Initializes a new instance of the class. + The ID number for the timer. + + + Gets the ID number for the timer. + The ID number for the timer. + + + Represents the method that will handle the event. + The source of the event. When this event is raised by the class, this object is always null. + A that contains the event data. + + + Defines identifiers that represent categories of user preferences. + + + Indicates user preferences associated with accessibility features of the system for users with disabilities. + + + Indicates user preferences associated with system colors. This category includes such as the default color of windows or menus. + + + Indicates user preferences associated with the system desktop. This category includes the background image or background image layout of the desktop. + + + Indicates user preferences that are not associated with any other category. + + + Indicates user preferences for icon settings, including icon height and spacing. + + + Indicates user preferences for keyboard settings, such as the key down repeat rate and delay. + + + Indicates changes in user preferences for regional settings, such as the character encoding and culture strings. + + + Indicates user preferences for menu settings, such as menu delays and text alignment. + + + Indicates user preferences for mouse settings, such as double-click time and mouse sensitivity. + + + Indicates user preferences for policy settings, such as user rights and access levels. + + + Indicates the user preferences for system power settings. This category includes power feature settings, such as the idle time before the system automatically enters low power mode. + + + Indicates user preferences associated with the screensaver. + + + Indicates user preferences associated with visual styles, such as enabling or disabling visual styles and switching from one visual style to another. + + + Indicates user preferences associated with the dimensions and characteristics of windows on the system. + + + Provides data for the event. + + + Initializes a new instance of the class using the specified user preference category identifier. + One of the values that indicates the user preference category that has changed. + + + Gets the category of user preferences that has changed. + One of the values that indicates the category of user preferences that has changed. + + + Represents the method that will handle the event. + The source of the event. When this event is raised by the class, this object is always null. + A that contains the event data. + + + Provides data for the event. + + + Initializes a new instance of the class using the specified user preference category identifier. + One of the values that indicate the user preference category that is changing. + + + Gets the category of user preferences that is changing. + One of the values that indicates the category of user preferences that is changing. + + + Represents the method that will handle the event. + The source of the event. When this event is raised by the class, this object is always null. + A that contains the event data. + + + A customizable parser based on the File scheme. + + + Creates a customizable parser based on the File scheme. + + + A customizable parser based on the File Transfer Protocol (FTP) scheme. + + + Creates a customizable parser based on the File Transfer Protocol (FTP) scheme. + + + A customizable parser for a hierarchical URI. + + + Create a customizable parser for a hierarchical URI. + Specify the options for this . + + + Specifies options for a . + + + The parser allows a URI with no authority. + + + The parser: + + + The parser does not canonicalize the URI. + + + The parser does not convert back slashes into forward slashes. + + + The parser does not unescape path dots, forward slashes, or back slashes. + + + The parser allows a registry-based authority. + + + The parser supports Internationalized Domain Name (IDN) parsing (IDN) of host names. Whether IDN is used is dictated by configuration values. See the Remarks for more information. + + + The parser supports the parsing rules specified in RFC 3987 for International Resource Identifiers (IRI). Whether IRI is used is dictated by configuration values. See the Remarks for more information. + + + The scheme does not define a fragment part. + + + The scheme does not define a port. + + + The scheme does not define a query part. + + + The scheme does not define a user information part. + + + A customizable parser based on the Gopher scheme. + + + Creates a customizable parser based on the Gopher scheme. + + + A customizable parser based on the HTTP scheme. + + + Create a customizable parser based on the HTTP scheme. + + + A customizable parser based on the Lightweight Directory Access Protocol (LDAP) scheme. + + + Creates a customizable parser based on the Lightweight Directory Access Protocol (LDAP) scheme. + + + A parser based on the NetPipe scheme for the "Indigo" system. + + + Create a parser based on the NetPipe scheme for the "Indigo" system. + + + A parser based on the NetTcp scheme for the "Indigo" system. + + + Create a parser based on the NetTcp scheme for the "Indigo" system. + + + A customizable parser based on the news scheme using the Network News Transfer Protocol (NNTP). + + + Create a customizable parser based on the news scheme using the Network News Transfer Protocol (NNTP). + + + Provides an object representation of a uniform resource identifier (URI) and easy access to the parts of the URI. + 1 + + + Initializes a new instance of the class from the specified instances of the and classes. + An instance of the class containing the information required to serialize the new instance. + An instance of the class containing the source of the serialized stream associated with the new instance. + The parameter contains a null URI. + The parameter contains a URI that is empty.-or- The scheme specified is not correctly formed. See .-or- The URI contains too many slashes.-or- The password specified in the URI is not valid.-or- The host name specified in URI is not valid.-or- The file name specified in the URI is not valid. -or- The user name specified in the URI is not valid.-or- The host or authority name specified in the URI cannot be terminated by backslashes.-or- The port number specified in the URI is not valid or cannot be parsed.-or- The length of URI exceeds 65519 characters.-or- The length of the scheme specified in the URI exceeds 1023 characters.-or- There is an invalid character sequence in the URI.-or- The MS-DOS path specified in the URI must start with c:\\. + + + Initializes a new instance of the class with the specified URI. + A URI. + + is null. + NoteIn the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, , instead. is empty.-or- The scheme specified in is not correctly formed. See .-or- contains too many slashes.-or- The password specified in is not valid.-or- The host name specified in is not valid.-or- The file name specified in is not valid. -or- The user name specified in is not valid.-or- The host or authority name specified in cannot be terminated by backslashes.-or- The port number specified in is not valid or cannot be parsed.-or- The length of exceeds 65519 characters.-or- The length of the scheme specified in exceeds 1023 characters.-or- There is an invalid character sequence in .-or- The MS-DOS path specified in must start with c:\\. + + + Initializes a new instance of the class with the specified URI, with explicit control of character escaping. + The URI. + true if is completely escaped; otherwise, false. See Remarks. + + is null. + + is empty or contains only spaces.-or- The scheme specified in is not valid.-or- contains too many slashes.-or- The password specified in is not valid.-or- The host name specified in is not valid.-or- The file name specified in is not valid. -or- The user name specified in is not valid.-or- The host or authority name specified in cannot be terminated by backslashes.-or- The port number specified in is not valid or cannot be parsed.-or- The length of exceeds 65519 characters.-or- The length of the scheme specified in exceeds 1023 characters.-or- There is an invalid character sequence in .-or- The MS-DOS path specified in must start with c:\\. + + + Initializes a new instance of the class with the specified URI. This constructor allows you to specify if the URI string is a relative URI, absolute URI, or is indeterminate. + A string that identifies the resource to be represented by the instance. + Specifies whether the URI string is a relative URI, absolute URI, or is indeterminate. + + is invalid. + + is null. + NoteIn the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, , instead. contains a relative URI and is .or contains an absolute URI and is .or is empty.-or- The scheme specified in is not correctly formed. See .-or- contains too many slashes.-or- The password specified in is not valid.-or- The host name specified in is not valid.-or- The file name specified in is not valid. -or- The user name specified in is not valid.-or- The host or authority name specified in cannot be terminated by backslashes.-or- The port number specified in is not valid or cannot be parsed.-or- The length of exceeds 65519 characters.-or- The length of the scheme specified in exceeds 1023 characters.-or- There is an invalid character sequence in .-or- The MS-DOS path specified in must start with c:\\. + + + Initializes a new instance of the class based on the specified base URI and relative URI string. + The base URI. + The relative URI to add to the base URI. + + is null. + + is not an absolute instance. + NoteIn the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, , instead.The URI formed by combining and is empty or contains only spaces.-or- The scheme specified in the URI formed by combining and is not valid.-or- The URI formed by combining and contains too many slashes.-or- The password specified in the URI formed by combining and is not valid.-or- The host name specified in the URI formed by combining and is not valid.-or- The file name specified in the URI formed by combining and is not valid. -or- The user name specified in the URI formed by combining and is not valid.-or- The host or authority name specified in the URI formed by combining and cannot be terminated by backslashes.-or- The port number specified in the URI formed by combining and is not valid or cannot be parsed.-or- The length of the URI formed by combining and exceeds 65519 characters.-or- The length of the scheme specified in the URI formed by combining and exceeds 1023 characters.-or- There is an invalid character sequence in the URI formed by combining and .-or- The MS-DOS path specified in must start with c:\\. + + + Initializes a new instance of the class based on the specified base and relative URIs, with explicit control of character escaping. + The base URI. + The relative URI to add to the base URI. + true if is completely escaped; otherwise, false. See Remarks. + + is null. + + is not an absolute instance. + The URI formed by combining and is empty or contains only spaces.-or- The scheme specified in the URI formed by combining and is not valid.-or- The URI formed by combining and contains too many slashes.-or- The password specified in the URI formed by combining and is not valid.-or- The host name specified in the URI formed by combining and is not valid.-or- The file name specified in the URI formed by combining and is not valid. -or- The user name specified in the URI formed by combining and is not valid.-or- The host or authority name specified in the URI formed by combining and cannot be terminated by backslashes.-or- The port number specified in the URI formed by combining and is not valid or cannot be parsed.-or- The length of the URI formed by combining and exceeds 65519 characters.-or- The length of the scheme specified in the URI formed by combining and exceeds 1023 characters.-or- There is an invalid character sequence in the URI formed by combining and .-or- The MS-DOS path specified in must start with c:\\. + + + Initializes a new instance of the class based on the combination of a specified base instance and a relative instance. + An absolute that is the base for the new instance. + A relative instance that is combined with . + + is not an absolute instance. + + is null. + + is not an absolute instance. + NoteIn the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, , instead.The URI formed by combining and is empty or contains only spaces.-or- The scheme specified in the URI formed by combining and is not valid.-or- The URI formed by combining and contains too many slashes.-or- The password specified in the URI formed by combining and is not valid.-or- The host name specified in the URI formed by combining and is not valid.-or- The file name specified in the URI formed by combining and is not valid. -or- The user name specified in the URI formed by combining and is not valid.-or- The host or authority name specified in the URI formed by combining and cannot be terminated by backslashes.-or- The port number specified in the URI formed by combining and is not valid or cannot be parsed.-or- The length of the URI formed by combining and exceeds 65519 characters.-or- The length of the scheme specified in the URI formed by combining and exceeds 1023 characters.-or- There is an invalid character sequence in the URI formed by combining and .-or- The MS-DOS path specified in must start with c:\\. + + + Gets the absolute path of the URI. + A containing the absolute path to the resource. + This instance represents a relative URI, and this property is valid only for absolute URIs. + 1 + + + + + + Gets the absolute URI. + A containing the entire URI. + This instance represents a relative URI, and this property is valid only for absolute URIs. + 1 + + + + + + Gets the Domain Name System (DNS) host name or IP address and the port number for a server. + A containing the authority component of the URI represented by this instance. + This instance represents a relative URI, and this property is valid only for absolute URIs. + 1 + + + + + + Converts the internally stored URI to canonical form. + This instance represents a relative URI, and this method is valid only for absolute URIs. + The URI is incorrectly formed. + + + Determines whether the specified host name is a valid DNS name. + A that indicates the type of the host name. If the type of the host name cannot be determined or if the host name is null or a zero-length string, this method returns . + The host name to validate. This can be an IPv4 or IPv6 address or an Internet host name. + 1 + + + Determines whether the specified scheme name is valid. + A value that is true if the scheme name is valid; otherwise, false. + The scheme name to validate. + 1 + + + Calling this method has no effect. + + + Compares the specified parts of two URIs using the specified comparison rules. + An value that indicates the lexical relationship between the compared components.ValueMeaningLess than zero is less than .Zero equals .Greater than zero is greater than . + The first . + The second . + A bitwise combination of the values that specifies the parts of and to compare. + One of the values that specifies the character escaping used when the URI components are compared. + One of the values. + + is not a valid value. + 1 + + + Gets an unescaped host name that is safe to use for DNS resolution. + A that contains the unescaped host part of the URI that is suitable for DNS resolution; or the original unescaped host string, if it is already suitable for resolution. + This instance represents a relative URI, and this property is valid only for absolute URIs. + 2 + + + + + + Compares two instances for equality. + A value that is true if the two instances represent the same URI; otherwise, false. + The instance or a URI identifier to compare with the current instance. + 2 + + + Converts any unsafe or reserved characters in the path component to their hexadecimal character representations. + The URI passed from the constructor is invalid. This exception can occur if a URI has too many characters or the URI is relative. + + + Converts a string to its escaped representation. + A that contains the escaped representation of . + The string to escape. + + is null. + NoteIn the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, , instead.The length of exceeds 32766 characters. + + + Converts a string to its escaped representation. + The escaped representation of the string. + The string to transform to its escaped representation. + + + Converts a URI string to its escaped representation. + A that contains the escaped representation of . + The string to escape. + + is null. + NoteIn the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, , instead.The length of exceeds 32766 characters. + + + Gets the escaped URI fragment. + A that contains any URI fragment information. + This instance represents a relative URI, and this property is valid only for absolute URIs. + 2 + + + + + + Gets the decimal value of a hexadecimal digit. + An value that contains a number from 0 to 15 that corresponds to the specified hexadecimal digit. + The hexadecimal digit (0-9, a-f, A-F) to convert. + + is not a valid hexadecimal digit (0-9, a-f, A-F). + 1 + + + Gets the specified components of the current instance using the specified escaping for special characters. + A that contains the components. + A bitwise combination of the values that specifies which parts of the current instance to return to the caller. + One of the values that controls how special characters are escaped. + + is not a combination of valid values. + The current is not an absolute URI. Relative URIs cannot be used with this method. + 1 + + + Gets the hash code for the URI. + An containing the hash value generated for this URI. + 2 + + + + + + Gets the specified portion of a instance. + A that contains the specified portion of the instance. + One of the values that specifies the end of the URI portion to return. + The current instance is not an absolute instance. + The specified is not valid. + 2 + + + + + + Returns the data needed to serialize the current instance. + A object containing the information required to serialize the . + A object containing the source and destination of the serialized stream associated with the . + + + Converts a specified character into its hexadecimal equivalent. + The hexadecimal representation of the specified character. + The character to convert to hexadecimal representation. + + is greater than 255. + 1 + + + Converts a specified hexadecimal representation of a character to the character. + The character represented by the hexadecimal encoding at position . If the character at is not hexadecimal encoded, the character at is returned. The value of is incremented to point to the character following the one returned. + The hexadecimal representation of a character. + The location in where the hexadecimal representation of a character begins. + + is less than 0 or greater than or equal to the number of characters in . + 1 + + + Gets the host component of this instance. + A that contains the host name. This is usually the DNS host name or IP address of the server. + This instance represents a relative URI, and this property is valid only for absolute URIs. + 1 + + + + + + Gets the type of the host name specified in the URI. + A member of the enumeration. + This instance represents a relative URI, and this property is valid only for absolute URIs. + 1 + + + + + + Gets whether the instance is absolute. + A value that is true if the instance is absolute; otherwise, false. + 1 + + + Gets whether a character is invalid in a file system name. + A value that is true if the specified character is invalid; otherwise false. + The to test. + + + Determines whether the current instance is a base of the specified instance. + true if the current instance is a base of ; otherwise, false. + The specified instance to test. + + is null. + 2 + + + + + + Gets whether the port value of the URI is the default for this scheme. + A value that is true if the value in the property is the default port for this scheme; otherwise, false. + This instance represents a relative URI, and this property is valid only for absolute URIs. + 1 + + + + + + Gets whether the specified character should be escaped. + A value that is true if the specified character should be escaped; otherwise, false. + The to test. + + + Gets a value indicating whether the specified is a file URI. + A value that is true if the is a file URI; otherwise, false. + This instance represents a relative URI, and this property is valid only for absolute URIs. + 1 + + + + + + Determines whether a specified character is a valid hexadecimal digit. + A value that is true if the character is a valid hexadecimal digit; otherwise false. + The character to validate. + 1 + + + Determines whether a character in a string is hexadecimal encoded. + A value that is true if is hexadecimal encoded at the specified location; otherwise, false. + The string to check. + The location in to check for hexadecimal encoding. + 1 + + + Gets whether the specified references the local host. + A value that is true if this references the local host; otherwise, false. + This instance represents a relative URI, and this property is valid only for absolute URIs. + 2 + + + + + + Gets whether the specified character is a reserved character. + A value that is true if the specified character is a reserved character otherwise, false. + The to test. + + + Gets whether the specified is a universal naming convention (UNC) path. + A value that is true if the is a UNC path; otherwise, false. + This instance represents a relative URI, and this property is valid only for absolute URIs. + 2 + + + + + + Indicates whether the string used to construct this was well-formed and is not required to be further escaped. + A value that is true if the string was well-formed; else false. + + + Indicates whether the string is well-formed by attempting to construct a URI with the string and ensures that the string does not require further escaping. + A value that is true if the string was well-formed; else false. + The string used to attempt to construct a . + The type of the in . + + + Gets a local operating-system representation of a file name. + A that contains the local operating-system representation of a file name. + This instance represents a relative URI, and this property is valid only for absolute URIs. + 2 + + + + + + Determines the difference between two instances. + If the hostname and scheme of this URI instance and are the same, then this method returns a that represents a relative URI that, when appended to the current URI instance, yields the parameter.If the hostname or scheme is different, then this method returns a that represents the parameter. + The URI to compare to the current URI. + + is null. + This instance represents a relative URI, and this method is valid only for absolute URIs. + 2 + + + + + + Determines the difference between two instances. + If the hostname and scheme of this URI instance and are the same, then this method returns a relative that, when appended to the current URI instance, yields .If the hostname or scheme is different, then this method returns a that represents the parameter. + The URI to compare to the current URI. + + is null. + This instance represents a relative URI, and this property is valid only for absolute URIs. + + + Determines whether two instances have the same value. + A value that is true if the instances are equivalent; otherwise, false. + A instance to compare with . + A instance to compare with . + 3 + + + + + + Determines whether two instances do not have the same value. + A value that is true if the two instances are not equal; otherwise, false. If either parameter is null, this method returns true. + A instance to compare with . + A instance to compare with . + 3 + + + + + + Gets the original URI string that was passed to the constructor. + A containing the exact URI specified when this instance was constructed; otherwise, . + This instance represents a relative URI, and this property is valid only for absolute URIs. + 1 + + + + + + Parses the URI of the current instance to ensure it contains all the parts required for a valid URI. + The Uri passed from the constructor is invalid. + + + Gets the and properties separated by a question mark (?). + A that contains the and properties separated by a question mark (?). + This instance represents a relative URI, and this property is valid only for absolute URIs. + 2 + + + + + + Gets the port number of this URI. + An value that contains the port number for this URI. + This instance represents a relative URI, and this property is valid only for absolute URIs. + 2 + + + + + + Gets any query information included in the specified URI. + A that contains any query information included in the specified URI. + This instance represents a relative URI, and this property is valid only for absolute URIs. + 2 + + + + + + Gets the scheme name for this URI. + A that contains the scheme for this URI, converted to lowercase. + This instance represents a relative URI, and this property is valid only for absolute URIs. + 2 + + + + + + Specifies the characters that separate the communication protocol scheme from the address portion of the URI. This field is read-only. + 1 + + + Gets an array containing the path segments that make up the specified URI. + A array that contains the path segments that make up the specified URI. + This instance represents a relative URI, and this property is valid only for absolute URIs. + 2 + + + + + + Returns the data needed to serialize the current instance. + A object containing the information required to serialize the . + A object containing the source and destination of the serialized stream associated with the . + + + Gets a canonical string representation for the specified instance. + A instance that contains the unescaped canonical representation of the instance. All characters are unescaped except #, ?, and %. + 2 + + + + + + Creates a new using the specified instance and a . + A value that is true if the was successfully created; otherwise, false. + The representing the . + The type of the Uri. + When this method returns, contains the constructed . + + + Creates a new using the specified base and relative instances. + A value that is true if the was successfully created; otherwise, false. + The base . + The relative , represented as a , to add to the base . + When this method returns, contains a constructed from and . This parameter is passed uninitialized. + + + Creates a new using the specified base and relative instances. + A value that is true if the was successfully created; otherwise, false. + The base . + The relative to add to the base . + When this method returns, contains a constructed from and . This parameter is passed uninitialized. + + is null. + 1 + + + Converts the specified string by replacing any escape sequences with their unescaped representation. + A that contains the unescaped value of the parameter. + The to convert. + + + Converts a string to its unescaped representation. + A that contains the unescaped representation of . + The string to unescape. + + is null. + + + Specifies that the URI is a pointer to a file. This field is read-only. + 1 + + + Specifies that the URI is accessed through the File Transfer Protocol (FTP). This field is read-only. + 1 + + + Specifies that the URI is accessed through the Gopher protocol. This field is read-only. + 1 + + + Specifies that the URI is accessed through the Hypertext Transfer Protocol (HTTP). This field is read-only. + 1 + + + Specifies that the URI is accessed through the Secure Hypertext Transfer Protocol (HTTPS). This field is read-only. + 1 + + + Specifies that the URI is an e-mail address and is accessed through the Simple Mail Transport Protocol (SMTP). This field is read-only. + 1 + + + Specifies that the URI is accessed through the NetPipe scheme used by Windows Communication Foundation (WCF). This field is read-only. + + + Specifies that the URI is accessed through the NetTcp scheme used by Windows Communication Foundation (WCF). This field is read-only. + + + Specifies that the URI is an Internet news group and is accessed through the Network News Transport Protocol (NNTP). This field is read-only. + 1 + + + Specifies that the URI is an Internet news group and is accessed through the Network News Transport Protocol (NNTP). This field is read-only. + 1 + + + Indicates that the URI string was completely escaped before the instance was created. + A value that is true if the parameter was set to true when the instance was created; otherwise, false. + 2 + + + Gets the user name, password, or other user-specific information associated with the specified URI. + A that contains the user information associated with the URI. The returned value does not include the '@' character reserved for delimiting the user information part of the URI. + This instance represents a relative URI, and this property is valid only for absolute URIs. + 1 + + + + + + Provides a custom constructor for uniform resource identifiers (URIs) and modifies URIs for the class. + 2 + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with the specified URI. + A URI string. + + is null. + NoteIn the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, , instead. is a zero length string or contains only spaces.-or- The parsing routine detected a scheme in an invalid form.-or- The parser detected more than two consecutive slashes in a URI that does not use the "file" scheme.-or- is not a valid URI. + + + Initializes a new instance of the class with the specified scheme and host. + An Internet access protocol. + A DNS-style domain name or IP address. + + + Initializes a new instance of the class with the specified scheme, host, and port. + An Internet access protocol. + A DNS-style domain name or IP address. + An IP port number for the service. + + is less than -1 or greater than 65,535. + + + Initializes a new instance of the class with the specified scheme, host, port number, and path. + An Internet access protocol. + A DNS-style domain name or IP address. + An IP port number for the service. + The path to the Internet resource. + + is less than -1 or greater than 65,535. + + + Initializes a new instance of the class with the specified scheme, host, port number, path and query string or fragment identifier. + An Internet access protocol. + A DNS-style domain name or IP address. + An IP port number for the service. + The path to the Internet resource. + A query string or fragment identifier. + + is neither null nor , nor does a valid fragment identifier begin with a number sign (#), nor a valid query string begin with a question mark (?). + + is less than -1 or greater than 65,535. + + + Initializes a new instance of the class with the specified instance. + An instance of the class. + + is null. + + + Compares an existing instance with the contents of the for equality. + true if represents the same as the constructed by this instance; otherwise, false. + The object to compare with the current instance. + 2 + + + Gets or sets the fragment portion of the URI. + The fragment portion of the URI. The fragment identifier ("#") is added to the beginning of the fragment. + 2 + + + Returns the hash code for the URI. + The hash code generated for the URI. + 2 + + + + + + Gets or sets the Domain Name System (DNS) host name or IP address of a server. + The DNS host name or IP address of the server. + 1 + + + Gets or sets the password associated with the user that accesses the URI. + The password of the user that accesses the URI. + 1 + + + Gets or sets the path to the resource referenced by the URI. + The path to the resource referenced by the URI. + 1 + + + Gets or sets the port number of the URI. + The port number of the URI. + The port cannot be set to a value less than -1 or greater than 65,535. + 1 + + + Gets or sets any query information included in the URI. + The query information included in the URI. + 1 + + + Gets or sets the scheme name of the URI. + The scheme of the URI. + The scheme cannot be set to an invalid scheme name. + 1 + + + Returns the display string for the specified instance. + The string that contains the unescaped display string of the . + NoteIn the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, , instead.The instance has a bad password. + 1 + + + + + + Gets the instance constructed by the specified instance. + A that contains the URI constructed by the . + NoteIn the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, , instead.The URI constructed by the properties is invalid. + 1 + + + The user name associated with the user that accesses the URI. + The user name of the user that accesses the URI. + 1 + + + Specifies the parts of a . + 1 + + + The , , , , , , and data. + + + The data. + + + The data. + + + The and data. If no port data is in the Uri and a default port has been assigned to the , the default port is returned. If there is no default port, -1 is returned. + + + The , , , , and data. + + + Specifies that the delimiter should be included. + + + The normalized form of the . + + + The data. + + + The and data. Also see . + + + The data. + + + The data. + + + The data. + + + The , , and data. + + + The complete context that is needed for Uri Serializers. The context includes the IPv6 scope. + + + The , , and data. If no port data is in the and a default port has been assigned to the , the default port is returned. If there is no default port, -1 is returned. + + + The data. If no port data is in the and a default port has been assigned to the , the default port is returned. If there is no default port, -1 is returned. + + + The data. + + + Controls how URI information is escaped. + 1 + + + Characters that have a reserved meaning in the requested URI components remain escaped. All others are not escaped. See Remarks. + + + No escaping is performed. + + + Escaping is performed according to the rules in RFC 2396. + + + The exception that is thrown when an invalid Uniform Resource Identifier (URI) is detected. + 2 + + + Initializes a new instance of the class. + + + Initializes a new instance of the class from the specified and instances. + A that contains the information that is required to serialize the new . + A that contains the source of the serialized stream that is associated with the new . + + + Initializes a new instance of the class with the specified message. + The error message string. + + + Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. + The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture. + The exception that is the cause of the current exception. If the parameter is not null, the current exception is raised in a catch block that handles the inner exception. + + + Populates a instance with the data that is needed to serialize the . + A that will hold the serialized data for the . + A that contains the destination of the serialized stream that is associated with the new . + + + Defines host name types for the method. + 2 + + + The host is set, but the type cannot be determined. + + + The host name is a domain name system (DNS) style host name. + + + The host name is an Internet Protocol (IP) version 4 host address. + + + The host name is an Internet Protocol (IP) version 6 host address. + + + The type of the host name is not supplied. + + + Provides the possible values for the configuration setting of the in the namespace. + + + This value will convert any Unicode domain names to their Punycode equivalents (IDN names). + + + This value will convert all external Unicode domain names to use the Punycode equivalents (IDN names). In this case to handle international names on the local Intranet, the DNS servers that are used for the Intranet should support Unicode names. + + + This value will not convert any Unicode domain names to use Punycode. This is the default value which is consistent with the .NET Framework 2.0 behavior. + + + Defines the kinds of s for the and several methods. + + + The Uri is an absolute Uri. + + + The Uri is a relative Uri. + + + The kind of the Uri is indeterminate. + + + Parses a new URI scheme. This is an abstract class. + + + Constructs a default URI parser. + + + Gets the components from a URI. + A string that contains the components. + The URI to parse. + The to retrieve from . + One of the values that controls how special characters are escaped. + + is invalid.- or - is not a combination of valid values. + + requires user-driven parsing- or - is not an absolute URI. Relative URIs cannot be used with this method. + + + Initialize the state of the parser and validate the URI. + The T:System.Uri to validate. + Validation errors, if any. + + + Determines whether is a base URI for . + true if is a base URI for ; otherwise, false. + The base URI. + The URI to test. + + + Indicates whether the parser for a scheme is registered. + true if has been registered; otherwise, false. + The scheme name to check. + The parameter is null. + The parameter is not valid. + + + Indicates whether a URI is well-formed. + true if is well-formed; otherwise, false. + The URI to check. + + + Invoked by a constructor to get a instance + A for the constructed . + + + Invoked by the Framework when a method is registered. + The scheme that is associated with this . + The port number of the scheme. + + + Associates a scheme and port number with a . + The URI parser to register. + The name of the scheme that is associated with this parser. + The default port number for the specified scheme. + + parameter is null- or - parameter is null. + + parameter is not valid- or - parameter is not valid. The parameter is less than -1 or greater than 65,534. + + + Called by constructors and to resolve a relative URI. + The string of the resolved relative . + A base URI. + A relative URI. + Errors during the resolve process, if any. + + parameter is not an absolute - or - parameter requires user-driven parsing. + + + Defines the parts of a URI for the method. + 2 + + + The scheme and authority segments of the URI. + + + The scheme, authority, and path segments of the URI. + + + The scheme, authority, path, and query segments of the URI. + + + The scheme segment of the URI. + + + Converts a type to a type, and vice versa. + + + Initializes a new instance of the class. + + + Returns whether this converter can convert an object of the given type to the type of this converter. + true if is a type or a type can be assigned from ; otherwise, false. + An that provides a format context. + A that represents the type that you want to convert from. + The parameter is null. + + + Returns whether this converter can convert the object to the specified type, using the specified context. + true if is of type , , or ; otherwise, false. + An that provides a format context. + A that represents the type that you want to convert to. + + + Converts the given object to the type of this converter, using the specified context and culture information. + An that represents the converted value. + An that provides a format context. + The to use as the current culture. + The to convert. + The conversion cannot be performed. + + + Converts a given value object to the specified type, using the specified context and culture information. + An that represents the converted value. + An that provides a format context. + A . If null is passed, the current culture is assumed. + The to convert. + The to convert the parameter to. + The parameter is null. + The conversion cannot be performed. + + + Returns whether the given value object is a or a can be created from it. + true if is a or a from which a can be created; otherwise, false. + An that provides a format context. + The to test for validity. + + + Represents a reference to the value of an argument passed to a method. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified parameter name. + The name of the parameter to reference. + + + Gets or sets the name of the parameter this expression references. + The name of the parameter to reference. + + + Represents an expression that creates an array. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified array data type and code expression indicating the number of indexes for the array. + A indicating the data type of the array to create. + An expression that indicates the number of indexes of the array to create. + + + Initializes a new instance of the class using the specified array data type and initialization expressions. + A that indicates the data type of the array to create. + An array of expressions to use to initialize the array. + + + Initializes a new instance of the class using the specified array data type and number of indexes for the array. + A indicating the data type of the array to create. + The number of indexes of the array to create. + + + Initializes a new instance of the class using the specified array data type name and code expression indicating the number of indexes for the array. + The name of the data type of the array to create. + An expression that indicates the number of indexes of the array to create. + + + Initializes a new instance of the class using the specified array data type name and initializers. + The name of the data type of the array to create. + An array of expressions to use to initialize the array. + + + Initializes a new instance of the class using the specified array data type name and number of indexes for the array. + The name of the data type of the array to create. + The number of indexes of the array to create. + + + Initializes a new instance of the class using the specified array data type and code expression indicating the number of indexes for the array. + The data type of the array to create. + An expression that indicates the number of indexes of the array to create. + + + Initializes a new instance of the class using the specified array data type and initializers. + The data type of the array to create. + An array of expressions to use to initialize the array. + + + Initializes a new instance of the class using the specified array data type and number of indexes for the array. + The data type of the array to create. + The number of indexes of the array to create. + + + Gets or sets the type of array to create. + A that indicates the type of the array. + + + Gets the initializers with which to initialize the array. + A that indicates the initialization values. + + + Gets or sets the number of indexes in the array. + The number of indexes in the array. + + + Gets or sets the expression that indicates the size of the array. + A that indicates the size of the array. + + + Represents a reference to an index of an array. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified target object and indexes. + A that indicates the array the indexer targets. + The index or indexes to reference. + + + Gets or sets the index or indexes of the indexer expression. + A that indicates the index or indexes of the indexer expression. + + + Gets or sets the target object of the array indexer. + A that represents the array being indexed. + + + Represents a simple assignment statement. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified expressions. + The variable to assign to. + The value to assign. + + + Gets or sets the expression representing the object or reference to assign to. + A that indicates the object or reference to assign to. + + + Gets or sets the expression representing the object or reference to assign. + A that indicates the object or reference to assign. + + + Represents a statement that attaches an event-handler delegate to an event. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified event and delegate. + A that indicates the event to attach an event handler to. + A that indicates the new event handler. + + + Initializes a new instance of the class using the specified object containing the event, event name, and event-handler delegate. + A that indicates the object that contains the event. + The name of the event to attach an event handler to. + A that indicates the new event handler. + + + Gets or sets the event to attach an event-handler delegate to. + A that indicates the event to attach an event handler to. + + + Gets or sets the new event-handler delegate to attach to the event. + A that indicates the new event handler to attach. + + + Represents an argument used in a metadata attribute declaration. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified value. + A that represents the value of the argument. + + + Initializes a new instance of the class using the specified name and value. + The name of the attribute property the argument applies to. + A that represents the value of the argument. + + + Gets or sets the name of the attribute. + The name of the attribute property the argument is for. + + + Gets or sets the value for the attribute argument. + A that indicates the value for the attribute argument. + + + Represents a collection of objects. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class containing the specified array of objects. + An array of objects with which to initialize the collection. + One or more objects in the array are null. + + + Initializes a new instance of the class containing the elements of the specified source collection. + A with which to initialize the collection. + + is null. + + + Adds the specified object to the collection. + The index at which the new element was inserted. + The object to add. + + + Copies the elements of the specified array to the end of the collection. + An array of type that contains the objects to add to the collection. + + is null. + + + Copies the contents of another object to the end of the collection. + A that contains the objects to add to the collection. + + is null. + + + Gets a value that indicates whether the collection contains the specified object. + true if the collection contains the specified object; otherwise, false. + The object to locate in the collection. + + + Copies the collection objects to a one-dimensional instance beginning at the specified index. + The one-dimensional that is the destination of the values copied from the collection. + The index of the array at which to begin inserting. + The destination array is multidimensional.-or- The number of elements in the is greater than the available space between the index of the target array specified by the parameter and the end of the target array. + The parameter is null. + The parameter is less than the target array's minimum index. + + + Gets the index of the specified object in the collection, if it exists in the collection. + The index of the specified object, if found, in the collection; otherwise, -1. + The object to locate in the collection. + + + Inserts the specified object into the collection at the specified index. + The zero-based index where the specified object should be inserted. + The object to insert. + + + Gets or sets the object at the specified index in the collection. + A at each valid index. + The index of the collection to access. + The parameter is outside the valid range of indexes for the collection. + + + Removes the specified object from the collection. + The object to remove from the collection. + The specified object is not found in the collection. + + + Represents an attribute declaration. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified code type reference. + The that identifies the attribute. + + + Initializes a new instance of the class using the specified code type reference and arguments. + The that identifies the attribute. + An array of type that contains the arguments for the attribute. + + + Initializes a new instance of the class using the specified name. + The name of the attribute. + + + Initializes a new instance of the class using the specified name and arguments. + The name of the attribute. + An array of type that contains the arguments for the attribute. + + + Gets the arguments for the attribute. + A that contains the arguments for the attribute. + + + Gets the code type reference for the code attribute declaration. + A that identifies the . + + + Gets or sets the name of the attribute being declared. + The name of the attribute. + + + Represents a collection of objects. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class containing the specified array of objects. + An array of objects with which to initialize the collection. + One or more objects in the array are null. + + + Initializes a new instance of the class containing the elements of the specified source collection. + A with which to initialize the collection. + + is null. + + + Adds a object with the specified value to the collection. + The index at which the new element was inserted. + The object to add. + + + Copies the elements of the specified array to the end of the collection. + An array of type that contains the objects to add to the collection. + + is null. + + + Copies the contents of another object to the end of the collection. + A that contains the objects to add to the collection. + + is null. + + + Gets or sets a value that indicates whether the collection contains the specified object. + true if the collection contains the specified object; otherwise, false. + The object to locate. + + + Copies the collection objects to a one-dimensional instance beginning at the specified index. + The one-dimensional that is the destination of the values copied from the collection. + The index of the array at which to begin inserting. + The destination array is multidimensional.-or- The number of elements in the is greater than the available space between the index of the target array specified by the parameter and the end of the target array. + The parameter is null. + The parameter is less than the target array's minimum index. + + + Gets the index of the specified object in the collection, if it exists in the collection. + The index in the collection of the specified object, if found; otherwise, -1. + The object to locate in the collection. + + + Inserts the specified object into the collection at the specified index. + The zero-based index where the specified object should be inserted. + The object to insert. + + + Gets or sets the object at the specified index. + A at each valid index. + The index of the collection to access. + The parameter is outside the valid range of indexes for the collection. + + + Removes the specified object from the collection. + The object to remove from the collection. + The specified object is not found in the collection. + + + Represents a reference to the base class. + + + Initializes a new instance of the class. + + + Represents an expression that consists of a binary operation between two expressions. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified parameters. + The on the left of the operator. + A indicating the type of operator. + The on the right of the operator. + + + Gets or sets the code expression on the left of the operator. + A that indicates the left operand. + + + Gets or sets the operator in the binary operator expression. + A that indicates the type of operator in the expression. + + + Gets or sets the code expression on the right of the operator. + A that indicates the right operand. + + + Defines identifiers for supported binary operators. + + + Addition operator. + + + Assignment operator. + + + Bitwise and operator. + + + Bitwise or operator. + + + Boolean and operator. This represents a short circuiting operator. A short circuiting operator will evaluate only as many expressions as necessary before returning a correct value. + + + Boolean or operator. This represents a short circuiting operator. A short circuiting operator will evaluate only as many expressions as necessary before returning a correct value. + + + Division operator. + + + Greater than operator. + + + Greater than or equal operator. + + + Identity equal operator. + + + Identity not equal operator. + + + Less than operator. + + + Less than or equal operator. + + + Modulus operator. + + + Multiplication operator. + + + Subtraction operator. + + + Value equal operator. + + + Represents an expression cast to a data type or interface. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified destination type and expression. + A that indicates the destination type of the cast. + The to cast. + + + Initializes a new instance of the class using the specified destination type and expression. + The name of the destination type of the cast. + The to cast. + + + Initializes a new instance of the class using the specified destination type and expression. + The destination data type of the cast. + The to cast. + + + Gets or sets the expression to cast. + A that indicates the code to cast. + + + Gets or sets the destination type of the cast. + A that indicates the destination type to cast to. + + + Represents a catch exception block of a try/catch statement. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified local variable name for the exception. + The name of the local variable declared in the catch clause for the exception. This is optional. + + + Initializes a new instance of the class using the specified local variable name for the exception and exception type. + The name of the local variable declared in the catch clause for the exception. This is optional. + A that indicates the type of exception to catch. + + + Initializes a new instance of the class using the specified local variable name for the exception, exception type and statement collection. + The name of the local variable declared in the catch clause for the exception. This is optional. + A that indicates the type of exception to catch. + An array of objects that represent the contents of the catch block. + + + Gets or sets the type of the exception to handle with the catch block. + A that indicates the type of the exception to handle. + + + Gets or sets the variable name of the exception that the catch clause handles. + The name for the exception variable that the catch clause handles. + + + Gets the statements within the catch block. + A containing the statements within the catch block. + + + Represents a collection of objects. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class containing the specified array of objects. + An array of objects with which to initialize the collection. + One or more objects in the array are null. + + + Initializes a new instance of the class containing the elements of the specified source collection. + A with which to initialize the collection. + + is null. + + + Adds the specified object to the collection. + The index at which the new element was inserted. + The object to add. + + + Copies the elements of the specified array to the end of the collection. + An array of type that contains the objects to add to the collection. + + is null. + + + Copies the contents of another object to the end of the collection. + A that contains the objects to add to the collection. + + is null. + + + Gets a value that indicates whether the collection contains the specified object. + true if the collection contains the specified object; otherwise, false. + The object to locate in the collection. + + + Copies the collection objects to a one-dimensional instance beginning at the specified index. + The one-dimensional that is the destination of the values copied from the collection. + The index of the array at which to begin inserting. + The destination array is multidimensional.-or- The number of elements in the is greater than the available space between the index of the target array specified by the parameter and the end of the target array. + The parameter is null. + The parameter is less than the target array's minimum index. + + + Gets the index of the specified object in the collection, if it exists in the collection. + The index of the specified object, if found, in the collection; otherwise, -1. + The object to locate in the collection. + + + Inserts the specified object into the collection at the specified index. + The zero-based index where the specified object should be inserted. + The object to insert. + + + Gets or sets the object at the specified index in the collection. + A object at each valid index. + The index of the collection to access. + The parameter is outside the valid range of indexes for the collection. + + + Removes the specified object from the collection. + The object to remove from the collection. + The specified object is not found in the collection. + + + Represents a code checksum pragma code entity. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using a file name, a GUID representing the checksum algorithm, and a byte stream representing the checksum data. + The path to the checksum file. + A that identifies the checksum algorithm to use. + A byte array that contains the checksum data. + + + Gets or sets a GUID that identifies the checksum algorithm to use. + A that identifies the checksum algorithm to use. + + + Gets or sets the value of the data for the checksum calculation. + A byte array that contains the data for the checksum calculation. + + + Gets or sets the path to the checksum file. + The path to the checksum file. + + + Represents a comment. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with the specified text as contents. + The contents of the comment. + + + Initializes a new instance of the class using the specified text and documentation comment flag. + The contents of the comment. + true if the comment is a documentation comment; otherwise, false. + + + Gets or sets a value that indicates whether the comment is a documentation comment. + true if the comment is a documentation comment; otherwise, false. + + + Gets or sets the text of the comment. + A string containing the comment text. + + + Represents a statement consisting of a single comment. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified comment. + A that indicates the comment. + + + Initializes a new instance of the class using the specified text as contents. + The contents of the comment. + + + Initializes a new instance of the class using the specified text and documentation comment flag. + The contents of the comment. + true if the comment is a documentation comment; otherwise, false. + + + Gets or sets the contents of the comment. + A that indicates the comment. + + + Represents a collection of objects. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class containing the specified array of objects. + An array of objects with which to initialize the collection. + One or more objects in the array are null. + + + Initializes a new instance of the class containing the elements of the specified source collection. + A with which to initialize the collection. + + is null. + + + Adds the specified object to the collection. + The index at which the new element was inserted. + The object to add. + + + Copies the elements of the specified array to the end of the collection. + An array of type that contains the objects to add to the collection. + + is null. + + + Copies the contents of another object to the end of the collection. + A that contains the objects to add to the collection. + + is null. + + + Gets a value that indicates whether the collection contains the specified object. + true if the collection contains the specified object; otherwise, false. + The to search for in the collection. + + + Copies the collection objects to the specified one-dimensional beginning at the specified index. + The one-dimensional that is the destination of the values copied from the collection. + The index of the array at which to begin inserting. + The destination array is multidimensional.-or- The number of elements in the is greater than the available space between the index of the target array specified by the parameter and the end of the target array. + The parameter is null. + The parameter is less than the target array's minimum index. + + + Gets the index of the specified object in the collection, if it exists in the collection. + The index of the specified object, if found, in the collection; otherwise, -1. + The object to locate. + + + Inserts a object into the collection at the specified index. + The zero-based index where the item should be inserted. + The object to insert. + + + Gets or sets the object at the specified index in the collection. + A object at each valid index. + The index of the collection to access. + The parameter is outside the valid range of indexes for the collection. + + + Removes the specified object from the collection. + The object to remove from the collection. + The specified object is not found in the collection. + + + Provides a container for a CodeDOM program graph. + + + Initializes a new instance of the class. + + + Gets a collection of custom attributes for the generated assembly. + A that indicates the custom attributes for the generated assembly. + + + Gets a object containing end directives. + A object containing end directives. + + + Gets the collection of namespaces. + A that indicates the namespaces that the compile unit uses. + + + Gets the referenced assemblies. + A that contains the file names of the referenced assemblies. + + + Gets a object containing start directives. + A object containing start directives. + + + Represents a conditional branch statement, typically represented as an if statement. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified condition and statements. + A that indicates the expression to evaluate. + An array of type containing the statements to execute if the condition is true. + + + Initializes a new instance of the class using the specified condition and statements. + A that indicates the condition to evaluate. + An array of type containing the statements to execute if the condition is true. + An array of type containing the statements to execute if the condition is false. + + + Gets or sets the expression to evaluate true or false. + A to evaluate true or false. + + + Gets the collection of statements to execute if the conditional expression evaluates to false. + A containing the statements to execute if the conditional expression evaluates to false. + + + Gets the collection of statements to execute if the conditional expression evaluates to true. + A containing the statements to execute if the conditional expression evaluates to true. + + + Represents a declaration for an instance constructor of a type. + + + Initializes a new instance of the class. + + + Gets the collection of base constructor arguments. + A that contains the base constructor arguments. + + + Gets the collection of chained constructor arguments. + A that contains the chained constructor arguments. + + + Represents a reference to a default value. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified code type reference. + A that specifies the reference to a value type. + + + Gets or sets the data type reference for a default value. + A object representing a data type that has a default value. + + + Represents an expression that creates a delegate. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + A that indicates the data type of the delegate. + A that indicates the object containing the event-handler method. + The name of the event-handler method. + + + Gets or sets the data type of the delegate. + A that indicates the data type of the delegate. + + + Gets or sets the name of the event handler method. + The name of the event handler method. + + + Gets or sets the object that contains the event-handler method. + A that indicates the object containing the event-handler method. + + + Represents an expression that raises an event. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified target object. + A that indicates the target object. + + + Initializes a new instance of the class using the specified target object and parameters. + A that indicates the target object. + An array of objects that indicate the parameters. + + + Gets or sets the parameters to pass to the event handling methods attached to the event. + A that indicates the parameters to pass to the event handling methods attached to the event. + + + Gets or sets the event to invoke. + A that indicates the event to invoke. + + + Represents an expression used as a method invoke parameter along with a reference direction indicator. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified field direction and expression. + A that indicates the field direction of the expression. + A that indicates the code expression to represent. + + + Gets or sets the field direction for this direction expression. + A that indicates the field direction for this direction expression. + + + Gets or sets the code expression to represent. + A that indicates the expression to represent. + + + Serves as the base class for code directive classes. + + + Initializes a new instance of the class. + + + Represents a collection of objects. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with the code directive objects in the specified array. + An array of objects with which to initialize the collection. + + is null. + + + Initializes a new instance of the class with the elements in the specified code directive collection. + A object with which to initialize the collection. + + is null. + + + Adds the specified object to the collection. + The index position at which the new element was inserted. + The object to add. + + + Adds an array of objects to the end of the collection. + An array of objects to add to the collection. + + is null. + + + Adds the contents of the specified object to the end of the collection. + A object containing the objects to add to the collection. + + is null. + + + Gets a value indicating whether the collection contains the specified object. + true if the collection contains the specified object; otherwise, false. + The object to search for in the collection. + + + Copies the contents of the collection to a one-dimensional array beginning at the specified index. + An array of type that is the destination of the values copied from the collection. + The index in the array at which to begin inserting collection objects. + The destination array is multidimensional.-or- The number of elements in the is greater than the available space between the index of the target array specified by and the end of the target array. + + is null. + + is less than the target array's minimum index. + + + Gets the index in the collection of the specified object, if it exists in the collection. + The index position in the collection of the specified object, if found; otherwise, -1. + The object to locate in the collection. + + + Inserts the specified object into the collection at the specified index. + The zero-based index position where the specified object should be inserted. + The object to insert. + + is less than 0. -or- is greater than . + + + Gets or sets the object at the specified index in the collection. + The at the index position. + The index position to access. + + is outside the valid range of index positions for the collection. + + + Removes the specified object from the collection. + The object to remove from the collection. + The specified object is not found in the collection. + + + Represents the entry point method of an executable. + + + Initializes a new instance of the class. + + + Represents a reference to an event. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified target object and event name. + A that indicates the object that contains the event. + The name of the event to reference. + + + Gets or sets the name of the event. + The name of the event. + + + Gets or sets the object that contains the event. + A that indicates the object that contains the event. + + + Represents a code expression. This is a base class for other code expression objects that is never instantiated. + + + Initializes a new instance of the class. + + + Represents a collection of objects. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class containing the specified array of objects. + An array of objects with which to initialize the collection. + One or more objects in the array are null. + + + Initializes a new instance of the class containing the elements of the specified source collection. + A with which to initialize the collection. + + is null. + + + Adds the specified object to the collection. + The index at which the new element was inserted. + The object to add. + + + Copies the elements of the specified array to the end of the collection. + An array of type that contains the objects to add to the collection. + + is null. + + + Copies the contents of another object to the end of the collection. + A that contains the objects to add to the collection. + + is null. + + + Gets a value that indicates whether the collection contains the specified object. + true if the collection contains the specified object; otherwise, false. + The object to locate in the collection. + + + Copies the collection objects to a one-dimensional instance beginning at the specified index. + The one-dimensional that is the destination of the values copied from the collection. + The index of the array at which to begin inserting. + The destination array is multidimensional.-or- The number of elements in the is greater than the available space between the index of the target array specified by the parameter and the end of the target array. + The parameter is null. + The parameter is less than the target array's minimum index. + + + Gets the index of the specified object in the collection, if it exists in the collection. + The index of the specified object, if found, in the collection; otherwise, -1. + The object to locate in the collection. + + + Inserts the specified object into the collection at the specified index. + The zero-based index where the specified object should be inserted. + The object to insert. + + + Gets or sets the object at the specified index in the collection. + A object at each valid index. + The zero-based index of the collection to access. + The parameter is outside the valid range of indexes for the collection. + + + Removes the specified object from the collection. + The object to remove from the collection. + The specified object is not found in the collection. + + + Represents a statement that consists of a single expression. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class by using the specified expression. + A for the statement. + + + Gets or sets the expression for the statement. + A that indicates the expression for the statement. + + + Represents a reference to a field. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified target object and field name. + A that indicates the object that contains the field. + The name of the field. + + + Gets or sets the name of the field to reference. + A string containing the field name. + + + Gets or sets the object that contains the field to reference. + A that indicates the object that contains the field to reference. + + + Represents a goto statement. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified label name. + The name of the label at which to continue program execution. + + is null. + + + Gets or sets the name of the label at which to continue program execution. + A string that indicates the name of the label at which to continue program execution. + The label cannot be set because is null or an empty string. + + + Represents a reference to an indexer property of an object. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified target object and index. + The target object. + The index or indexes of the indexer expression. + + + Gets the collection of indexes of the indexer expression. + A that indicates the index or indexes of the indexer expression. + + + Gets or sets the target object that can be indexed. + A that indicates the indexer object. + + + Represents a for statement, or a loop through a block of statements, using a test expression as a condition for continuing to loop. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified parameters. + A containing the loop initialization statement. + A containing the expression to test for exit condition. + A containing the per-cycle increment statement. + An array of type containing the statements within the loop. + + + Gets or sets the statement that is called after each loop cycle. + A that indicates the per cycle increment statement. + + + Gets or sets the loop initialization statement. + A that indicates the loop initialization statement. + + + Gets the collection of statements to be executed within the loop. + An array of type that indicates the statements within the loop. + + + Gets or sets the expression to test as the condition that continues the loop. + A that indicates the expression to test. + + + Represents a labeled statement or a stand-alone label. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified label name. + The name of the label. + + + Initializes a new instance of the class using the specified label name and statement. + The name of the label. + The to associate with the label. + + + Gets or sets the name of the label. + The name of the label. + + + Gets or sets the optional associated statement. + A that indicates the statement associated with the label. + + + Represents a specific location within a specific file. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + The file name of the associated file. + The line number to store a reference to. + + + Gets or sets the name of the associated file. + The file name of the associated file. + + + Gets or sets the line number of the associated reference. + The line number. + + + Represents a declaration for an event of a type. + + + Initializes a new instance of the class. + + + Gets or sets the data type that the member event implements. + A that indicates the data type or types that the member event implements. + + + Gets or sets the privately implemented data type, if any. + A that indicates the data type that the event privately implements. + + + Gets or sets the data type of the delegate type that handles the event. + A that indicates the delegate type that handles the event. + + + Represents a declaration for a field of a type. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified field type and field name. + An object that indicates the type of the field. + The name of the field. + + + Initializes a new instance of the class using the specified field type and field name. + The type of the field. + The name of the field. + + + Initializes a new instance of the class using the specified field type and field name. + The type of the field. + The name of the field. + + + Gets or sets the initialization expression for the field. + The initialization expression for the field. + + + Gets or sets the type of the field. + The type of the field. + + + Represents a declaration for a method of a type. + + + Initializes a new instance of the class. + + + Gets the data types of the interfaces implemented by this method, unless it is a private method implementation, which is indicated by the property. + A that indicates the interfaces implemented by this method. + + + Gets the parameter declarations for the method. + A that indicates the method parameters. + + + An event that will be raised the first time the collection is accessed. + + + An event that will be raised the first time the collection is accessed. + + + An event that will be raised the first time the collection is accessed. + + + Gets or sets the data type of the interface this method, if private, implements a method of, if any. + A that indicates the data type of the interface with the method that the private method whose declaration is represented by this implements. + + + Gets or sets the data type of the return value of the method. + A that indicates the data type of the value returned by the method. + + + Gets the custom attributes of the return type of the method. + A that indicates the custom attributes. + + + Gets the statements within the method. + A that indicates the statements within the method. + + + Gets the type parameters for the current generic method. + A that contains the type parameters for the generic method. + + + Represents a declaration for a property of a type. + + + Initializes a new instance of the class. + + + Gets the collection of get statements for the property. + A that contains the get statements for the member property. + + + Gets or sets a value indicating whether the property has a get method accessor. + true if the Count property of the collection is non-zero, or if the value of this property has been set to true; otherwise, false. + + + Gets or sets a value indicating whether the property has a set method accessor. + true if the property of the collection is non-zero; otherwise, false. + + + Gets the data types of any interfaces that the property implements. + A that indicates the data types the property implements. + + + Gets the collection of declaration expressions for the property. + A that indicates the declaration expressions for the property. + + + Gets or sets the data type of the interface, if any, this property, if private, implements. + A that indicates the data type of the interface, if any, the property, if private, implements. + + + Gets the collection of set statements for the property. + A that contains the set statements for the member property. + + + Gets or sets the data type of the property. + A that indicates the data type of the property. + + + Represents an expression that invokes a method. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified target object, method name, and parameters. + A that indicates the target object with the method to invoke. + The name of the method to invoke. + An array of objects that indicate the parameters to call the method with. + + + Initializes a new instance of the class using the specified method and parameters. + A that indicates the method to invoke. + An array of objects that indicate the parameters with which to invoke the method. + + + Gets or sets the method to invoke. + A that indicates the method to invoke. + + + Gets the parameters to invoke the method with. + A that indicates the parameters to invoke the method with. + + + Represents a reference to a method. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified target object and method name. + A that indicates the object to target. + The name of the method to call. + + + Initializes a new instance of the class using the specified target object, method name, and generic type arguments. + A that indicates the object to target. + The name of the method to call. + An array of values that specify the for this . + + + Gets or sets the name of the method to reference. + The name of the method to reference. + + + Gets or sets the expression that indicates the method to reference. + A that represents the method to reference. + + + Gets the type arguments for the current generic method reference expression. + A containing the type arguments for the current code . + + + Represents a return value statement. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified expression. + A that indicates the return value. + + + Gets or sets the return value. + A that indicates the value to return for the return statement, or null if the statement is part of a subroutine. + + + Represents a namespace declaration. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified name. + The name of the namespace being declared. + + + Gets the comments for the namespace. + A that indicates the comments for the namespace. + + + Gets the collection of namespace import directives used by the namespace. + A that indicates the namespace import directives used by the namespace. + + + Gets or sets the name of the namespace. + The name of the namespace. + + + An event that will be raised the first time the collection is accessed. + + + An event that will be raised the first time the collection is accessed. + + + An event that will be raised the first time the collection is accessed. + + + Gets the collection of types that the namespace contains. + A that indicates the types contained in the namespace. + + + Represents a collection of objects. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class that contains the specified array of objects. + An array of objects with which to initialize the collection. + One or more objects in the array are null. + + + Initializes a new instance of the class that contains the elements of the specified source collection. + The with which to initialize the collection. + + is null. + + + Adds the specified object to the collection. + The index at which the new element was inserted. + The to add. + + + Copies the elements of the specified array to the end of the collection. + An array of type that contains the objects to add to the collection. + + is null. + + + Adds the contents of the specified object to the end of the collection. + A that contains the objects to add to the collection. + + is null. + + + Gets a value that indicates whether the collection contains the specified object. + true if the is contained in the collection; otherwise, false. + The to search for in the collection. + + + Copies the collection objects to a one-dimensional instance, starting at the specified index. + The one-dimensional that is the destination of the values copied from the collection. + The index of the array at which to begin inserting. + The destination array is multidimensional.-or- The number of elements in the is greater than the available space between the index of the target array specified by the parameter and the end of the target array. + The parameter is null. + The parameter is less than the target array's minimum index. + + + Gets the index of the specified object in the , if it exists in the collection. + The index of the specified , if it is found, in the collection; otherwise, -1. + The to locate. + + + Inserts the specified object into the collection at the specified index. + The zero-based index where the new item should be inserted. + The to insert. + + + Gets or sets the object at the specified index in the collection. + A at each valid index. + The index of the collection to access. + The parameter is outside the valid range of indexes for the collection. + + + Removes the specified object from the collection. + The to remove from the collection. + The specified object is not found in the collection. + + + Represents a namespace import directive that indicates a namespace to use. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified namespace to import. + The name of the namespace to import. + + + Gets or sets the line and file the statement occurs on. + A that indicates the context of the statement. + + + Gets or sets the namespace to import. + The name of the namespace to import. + + + Represents a collection of objects. + + + Initializes a new instance of the class. + + + Adds a object to the collection. + The object to add to the collection. + + + Adds a set of objects to the collection. + An array of type that contains the objects to add to the collection. + + is null. + + + Clears the collection of members. + + + Gets the number of namespaces in the collection. + The number of namespaces in the collection. + + + Gets an enumerator that enumerates the collection members. + An that indicates the collection members. + + + Gets or sets the object at the specified index in the collection. + A object at each valid index. + The index of the collection to access. + The parameter is outside the valid range of indexes for the collection. + + + Copies the elements of the to an , starting at a particular index. + The one-dimensional that is the destination of the elements copied from the . The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + Gets the number of elements contained in the . + The number of elements contained in the . + + + Gets a value indicating whether access to the is synchronized (thread safe). + true if access to the is synchronized (thread safe); otherwise, false. This property always returns false. + + + Gets an object that can be used to synchronize access to the . + An object that can be used to synchronize access to the . This property always returns null. + + + Returns an enumerator that can iterate through a collection. + An that can be used to iterate through the collection. + + + Adds an object to the . + The position at which the new element was inserted. + The to add to the . + + + Removes all items from the . + + + Determines whether the contains a specific value. + true if the value is in the list; otherwise, false. + The to locate in the . + + + Determines the index of a specific item in the . + The index of if it is found in the list; otherwise, -1. + The to locate in the . + + + Inserts an item in the at the specified position. + The zero-based index at which should be inserted. + The to insert into the . + + + Gets a value indicating whether the has a fixed size. + true if the has a fixed size; otherwise, false. This property always returns false. + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. This property always returns false. + + + Gets or sets the element at the specified index. + The element at the specified index. + The zero-based index of the element to get or set. + + + Removes the first occurrence of a specific object from the . + The to remove from the . + + + Removes the element at the specified index of the . + The zero-based index of the element to remove. + + + Provides a common base class for most Code Document Object Model (CodeDOM) objects. + + + Initializes a new instance of the class. + + + Gets the user-definable data for the current object. + An containing user data for the current object. + + + Represents an expression that creates a new instance of a type. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified type and parameters. + A that indicates the data type of the object to create. + An array of objects that indicates the parameters to use to create the object. + + + Initializes a new instance of the class using the specified type and parameters. + The name of the data type of object to create. + An array of objects that indicates the parameters to use to create the object. + + + Initializes a new instance of the class using the specified type and parameters. + The data type of the object to create. + An array of objects that indicates the parameters to use to create the object. + + + Gets or sets the data type of the object to create. + A to the data type of the object to create. + + + Gets or sets the parameters to use in creating the object. + A that indicates the parameters to use when creating the object. + + + Represents a parameter declaration for a method, property, or constructor. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified parameter type and name. + An object that indicates the type of the parameter to declare. + The name of the parameter to declare. + + + Initializes a new instance of the class using the specified parameter type and name. + The type of the parameter to declare. + The name of the parameter to declare. + + + Initializes a new instance of the class using the specified parameter type and name. + The type of the parameter to declare. + The name of the parameter to declare. + + + Gets or sets the custom attributes for the parameter declaration. + An object that indicates the custom attributes. + + + Gets or sets the direction of the field. + An object that indicates the direction of the field. + + + Gets or sets the name of the parameter. + The name of the parameter. + + + Gets or sets the type of the parameter. + The type of the parameter. + + + Represents a collection of objects. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class containing the specified array of objects. + An array of objects with which to initialize the collection. + one or more objects in the array are null. + + + Initializes a new instance of the class containing the elements of the specified source collection. + A with which to initialize the collection. + + is null. + + + Adds the specified to the collection. + The index at which the new element was inserted. + The to add. + + + Copies the elements of the specified array to the end of the collection. + An array of type containing the objects to add to the collection. + + is null. + + + Adds the contents of another to the end of the collection. + A containing the objects to add to the collection. + + is null. + + + Gets a value indicating whether the collection contains the specified . + true if the collection contains the specified object; otherwise, false. + A to search for in the collection. + + + Copies the collection objects to a one-dimensional instance beginning at the specified index. + The one-dimensional that is the destination of the values copied from the collection. + The index of the array at which to begin inserting. + The destination array is multidimensional.-or- The number of elements in the is greater than the available space between the index of the target array specified by the parameter and the end of the target array. + The parameter is null. + The parameter is less than the target array's minimum index. + + + Gets the index in the collection of the specified , if it exists in the collection. + The index in the collection of the specified object, if found; otherwise, -1. + The to locate in the collection. + + + Inserts the specified into the collection at the specified index. + The zero-based index where the specified object should be inserted. + The to insert. + + + Gets or sets the at the specified index in the collection. + A at each valid index. + The index of the collection to access. + The parameter is outside the valid range of indexes for the collection. + + + Removes the specified from the collection. + The to remove from the collection. + The specified object is not found in the collection. + + + Represents a primitive data type value. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified object. + The object to represent. + + + Gets or sets the primitive data type to represent. + The primitive data type instance to represent the value of. + + + Represents a reference to the value of a property. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified target object and property name. + A that indicates the object that contains the property to reference. + The name of the property to reference. + + + Gets or sets the name of the property to reference. + The name of the property to reference. + + + Gets or sets the object that contains the property to reference. + A that indicates the object that contains the property to reference. + + + Represents the value argument of a property set method call within a property set method. + + + Initializes a new instance of the class. + + + Specifies the name and mode for a code region. + + + Initializes a new instance of the class with default values. + + + Initializes a new instance of the class, specifying its mode and name. + One of the values. + The name for the region. + + + Gets or sets the mode for the region directive. + One of the values. The default is . + + + Gets or sets the name of the region. + The name of the region. + + + Specifies the start or end of a code region. + + + End of the region. + + + Not used. + + + Start of the region. + + + Represents a statement that removes an event handler. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with the specified event and event handler. + A that indicates the event to detach the event handler from. + A that indicates the event handler to remove. + + + Initializes a new instance of the class using the specified target object, event name, and event handler. + A that indicates the object that contains the event. + The name of the event. + A that indicates the event handler to remove. + + + Gets or sets the event to remove a listener from. + A that indicates the event to remove a listener from. + + + Gets or sets the event handler to remove. + A that indicates the event handler to remove. + + + Represents a literal code fragment that can be compiled. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + The literal code fragment to represent. + + + Gets or sets the line and file information about where the code is located in a source code document. + A that indicates the position of the code fragment. + + + Gets or sets the literal code fragment to represent. + The literal code fragment. + + + Represents a literal expression. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified literal expression. + The literal expression to represent. + + + Gets or sets the literal string of code. + The literal string. + + + Represents a statement using a literal code fragment. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified code fragment. + The literal code fragment of the statement to represent. + + + Gets or sets the literal code fragment statement. + The literal code fragment statement. + + + Represents a member of a type using a literal code fragment. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified text. + The literal code fragment for the type member. + + + Gets or sets the literal code fragment for the type member. + The literal code fragment for the type member. + + + Represents the abstract base class from which all code statements derive. + + + Initializes a new instance of the class. + + + Gets a object that contains end directives. + A object containing end directives. + + + Gets or sets the line on which the code statement occurs. + A object that indicates the context of the code statement. + + + Gets a object that contains start directives. + A object containing start directives. + + + Represents a collection of objects. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class that contains the specified array of objects. + An array of objects with which to initialize the collection. + + is null. + + + Initializes a new instance of the class that contains the elements of the specified source collection. + A object with which to initialize the collection. + + is null. + + + Adds the specified object to the collection. + The index at which the new element was inserted. + The object to add. + + + Adds the specified object to the collection. + The index at which the new element was inserted. + The object to add. + + + Adds a set of objects to the collection. + An array of objects to add to the collection. + + is null. + + + Adds the contents of another object to the end of the collection. + A object that contains the objects to add to the collection. + + is null. + + + Gets a value that indicates whether the collection contains the specified object. + true if the collection contains the specified object; otherwise, false. + The object to search for in the collection. + + + Copies the elements of the object to a one-dimensional instance, starting at the specified index. + The one-dimensional that is the destination of the values copied from the collection. + The index of the array at which to begin inserting. + The destination array is multidimensional.-or- The number of elements in the is greater than the available space between the index of the target array specified by the parameter and the end of the target array. + The parameter is null. + The parameter is less than the target array's minimum index. + + + Gets the index of the specified object in the , if it exists in the collection. + The index of the specified object, if it is found, in the collection; otherwise, -1. + The to locate in the collection. + + + Inserts the specified object into the collection at the specified index. + The zero-based index where the specified object should be inserted. + The object to insert. + + + Gets or sets the object at the specified index in the collection. + A at each valid index. + The index of the collection to access. + The parameter is outside the valid range of indexes for the collection. + + + Removes the specified object from the collection. + The to remove from the collection. + The specified object is not found in the collection. + + + Represents a reference to the current local class instance. + + + Initializes a new instance of the class. + + + Represents a statement that throws an exception. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with the specified exception type instance. + A that indicates the exception to throw. + + + Gets or sets the exception to throw. + A representing an instance of the exception to throw. + + + Represents a try block with any number of catch clauses and, optionally, a finally block. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified statements for try and catch clauses. + An array of objects that indicate the statements to try. + An array of objects that indicate the clauses to catch. + + + Initializes a new instance of the class using the specified statements for try, catch clauses, and finally statements. + An array of objects that indicate the statements to try. + An array of objects that indicate the clauses to catch. + An array of objects that indicate the finally statements to use. + + + Gets the catch clauses to use. + A that indicates the catch clauses to use. + + + Gets the finally statements to use. + A that indicates the finally statements. + + + Gets the statements to try. + A that indicates the statements to try. + + + Represents a static constructor for a class. + + + Initializes a new instance of the class. + + + Represents a type declaration for a class, structure, interface, or enumeration. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with the specified name. + The name for the new type. + + + Gets the base types of the type. + A object that indicates the base types of the type. + + + Gets or sets a value indicating whether the type is a class or reference type. + true if the type is a class or reference type; otherwise, false. + + + Gets or sets a value indicating whether the type is an enumeration. + true if the type is an enumeration; otherwise, false. + + + Gets or sets a value indicating whether the type is an interface. + true if the type is an interface; otherwise, false. + + + Gets or sets a value indicating whether the type declaration is complete or partial. + true if the class or structure declaration is a partial representation of the implementation; false if the declaration is a complete implementation of the class or structure. The default is false. + + + Gets or sets a value indicating whether the type is a value type (struct). + true if the type is a value type; otherwise, false. + + + Gets the collection of class members for the represented type. + A object that indicates the class members. + + + Occurs when the collection is accessed for the first time. + + + Occurs when the collection is accessed for the first time. + + + Gets or sets the attributes of the type. + A object that indicates the attributes of the type. + + + Gets the type parameters for the type declaration. + A that contains the type parameters for the type declaration. + + + Represents a collection of objects. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class that contains the specified array of objects. + An array of objects with which to initialize the collection. + + + Initializes a new instance of the class that contains the elements of the specified source collection. + A object with which to initialize the collection. + + + Adds the specified object to the collection. + The index at which the new element was inserted. + The object to add. + + + Copies the elements of the specified array to the end of the collection. + An array of type that contains the objects to add to the collection. + + is null. + + + Adds the contents of another object to the end of the collection. + A object that contains the objects to add to the collection. + + is null. + + + Gets a value that indicates whether the collection contains the specified object. + true if the collection contains the specified object; otherwise, false. + The object to search for in the collection. + + + Copies the elements in the object to a one-dimensional instance, starting at the specified index. + The one-dimensional that is the destination of the values copied from the collection. + The index of the array at which to begin inserting. + The destination array is multidimensional.-or- The number of elements in the is greater than the available space between the index of the target array specified by the parameter and the end of the target array. + The parameter is null. + The parameter is less than the target array's minimum index. + + + Gets the index of the specified object in the , if it exists in the collection. + The index of the specified object, if it is found, in the collection; otherwise, -1. + The to locate in the collection. + + + Inserts the specified object into the collection at the specified index. + The zero-based index where the specified object should be inserted. + The object to insert. + + + Gets or sets the object at the specified index in the collection. + A at each valid index. + The index of the collection to access. + The parameter is outside the valid range of indexes for the collection. + + + Removes the specified object from the collection. + The to remove from the collection. + The specified object is not found in the collection. + + + Represents a delegate declaration. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + The name of the delegate. + + + Gets the parameters of the delegate. + A that indicates the parameters of the delegate. + + + Gets or sets the return type of the delegate. + A that indicates the return type of the delegate. + + + Provides a base class for a member of a type. Type members include fields, methods, properties, constructors and nested types. + + + Initializes a new instance of the class. + + + Gets or sets the attributes of the member. + A bitwise combination of the values used to indicate the attributes of the member. The default value is | . + + + Gets the collection of comments for the type member. + A that indicates the comments for the member. + + + Gets or sets the custom attributes of the member. + A that indicates the custom attributes of the member. + + + Gets the end directives for the member. + A object containing end directives. + + + Gets or sets the line on which the type member statement occurs. + A object that indicates the location of the type member declaration. + + + Gets or sets the name of the member. + The name of the member. + + + Gets the start directives for the member. + A object containing start directives. + + + Represents a collection of objects. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class containing the specified array of objects. + An array of objects with which to initialize the collection. + + + Initializes a new instance of the class containing the elements of the specified source collection. + A with which to initialize the collection. + + + Adds a with the specified value to the collection. + The index at which the new element was inserted. + The to add. + + + Copies the elements of the specified array to the end of the collection. + An array of type containing the objects to add to the collection. + + is null. + + + Adds the contents of another to the end of the collection. + A containing the objects to add to the collection. + + is null. + + + Gets a value indicating whether the collection contains the specified . + true if the collection contains the specified object; otherwise, false. + The to search for in the collection. + + + Copies the collection objects to a one-dimensional instance, beginning at the specified index. + The one-dimensional that is the destination of the values copied from the collection. + The index of the array at which to begin inserting. + The destination array is multidimensional.-or- The number of elements in the is greater than the available space between the index of the target array specified by the parameter and the end of the target array. + The parameter is null. + The parameter is less than the target array's minimum index. + + + Gets the index in the collection of the specified , if it exists in the collection. + The index in the collection of the specified object, if found; otherwise, -1. + The to locate in the collection. + + + Inserts the specified into the collection at the specified index. + The zero-based index where the specified object should be inserted. + The to insert. + + + Gets or sets the at the specified index in the collection. + A at each valid index. + The index of the collection to access. + The parameter is outside the valid range of indexes for the collection. + + + Removes a specific from the collection. + The to remove from the collection. + The specified object is not found in the collection. + + + Represents a typeof expression, an expression that returns a for a specified type name. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + A that indicates the data type for the typeof expression. + + + Initializes a new instance of the class using the specified type. + The name of the data type for the typeof expression. + + + Initializes a new instance of the class using the specified type. + The data type of the data type of the typeof expression. + + + Gets or sets the data type referenced by the typeof expression. + A that indicates the data type referenced by the typeof expression. This property will never return null, and defaults to the type. + + + Represents a type parameter of a generic type or method. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with the specified type parameter name. + The name of the type parameter. + + + Gets the constraints for the type parameter. + A object that contains the constraints for the type parameter. + + + Gets the custom attributes of the type parameter. + A that indicates the custom attributes of the type parameter. The default is null. + + + Gets or sets a value indicating whether the type parameter has a constructor constraint. + true if the type parameter has a constructor constraint; otherwise, false. The default is false. + + + Gets or sets the name of the type parameter. + The name of the type parameter. The default is an empty string (""). + + + Represents a collection of objects. + + + Initializes a new, empty instance of the class. + + + Initializes a new instance of the class containing the specified array of objects. + An array of objects with which to initialize the collection. + + + Initializes a new instance of the class containing the elements of the specified source collection. + A with which to initialize the collection. + + + Adds the specified object to the collection. + The zero-based index at which the new element was inserted. + The to add. + + + Adds the specified object to the collection using the specified data type name. + The name of a data type for which to add the object to the collection. + + + Copies the elements of the specified array to the end of the collection. + An array of type containing the objects to add to the collection. + + is null. + + + Copies the elements of the specified to the end of the collection. + A containing the objects to add to the collection. + + is null. + + + Determines whether the collection contains the specified object. + true if the object is contained in the collection; otherwise, false. + The object to search for in the collection. + + + Copies the items in the collection to the specified one-dimensional at the specified index. + The one-dimensional that is the destination of the values copied from the collection. + The index of the array at which to begin inserting. + + is multidimensional.-or- The number of elements in the is greater than the available space between the index of the target array specified by and the end of the target array. + + is null. + + is less than the target array's lowest index. + + + Gets the index in the collection of the specified object, if it exists in the collection. + The zero-based index of the specified object in the collection if found; otherwise, -1. + The object to locate in the collection. + + + Inserts the specified object into the collection at the specified index. + The zero-based index at which to insert the item. + The object to insert. + + + Gets or sets the object at the specified index in the collection. + The object at the specified index. + The zero-based index of the collection object to access. + + is outside the valid range of indexes for the collection. + + + Removes the specified object from the collection. + The object to remove from the collection. + The specified object is not found in the collection. + + + Represents a reference to a type. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified code type parameter. + A that represents the type of the type parameter. + + + Initializes a new instance of the class using the specified array type and rank. + A that indicates the type of the array. + The number of dimensions in the array. + + + Initializes a new instance of the class using the specified type name. + The name of the type to reference. + + + Initializes a new instance of the class using the specified type name and type arguments. + The name of the type to reference. + An array of values. + + + Initializes a new instance of the class using the specified type name and code type reference option. + The name of the type to reference. + The code type reference option, one of the values. + + + Initializes a new instance of the class using the specified array type name and rank. + The name of the type of the elements of the array. + The number of dimensions of the array. + + + Initializes a new instance of the class using the specified type. + The to reference. + + is null. + + + Initializes a new instance of the class using the specified type and code type reference. + The to reference. + The code type reference option, one of the values. + + + Gets or sets the type of the elements in the array. + A that indicates the type of the array elements. + + + Gets or sets the array rank of the array. + The number of dimensions of the array. + + + Gets or sets the name of the type being referenced. + The name of the type being referenced. + + + Gets or sets the code type reference option. + A bitwise combination of the values. + + + Gets the type arguments for the current generic type reference. + A containing the type arguments for the current object. + + + Represents a collection of objects. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class containing the specified array of objects. + An array of objects with which to initialize the collection. + + + Initializes a new instance of the class containing the elements of the specified source collection. + A with which to initialize the collection. + + + Adds the specified to the collection. + The index at which the new element was inserted. + The to add. + + + Adds a to the collection using the specified data type name. + The name of a data type for which to add a to the collection. + + + Adds a to the collection using the specified data type. + The data type for which to add a to the collection. + + + Copies the elements of the specified array to the end of the collection. + An array of type containing the objects to add to the collection. + + is null. + + + Adds the contents of the specified to the end of the collection. + A containing the objects to add to the collection. + + is null. + + + Gets a value indicating whether the collection contains the specified . + true if the is contained in the collection; otherwise, false. + The to search for in the collection. + + + Copies the items in the collection to the specified one-dimensional at the specified index. + The one-dimensional that is the destination of the values copied from the collection. + The index of the array at which to begin inserting. + The parameter is multidimensional.-or- The number of elements in the is greater than the available space between the index of the target array specified by the parameter and the end of the target array. + The parameter is null. + The parameter is less than the target array's minimum index. + + + Gets the index in the collection of the specified , if it exists in the collection. + The index of the specified in the collection if found; otherwise, -1. + The to locate in the collection. + + + Inserts a into the collection at the specified index. + The zero-based index where the item should be inserted. + The to insert. + + + Gets or sets the at the specified index in the collection. + A at each valid index. + The index of the collection to access. + The parameter is outside the valid range of indexes for the collection. + + + Removes the specified from the collection. + The to remove from the collection. + The specified object is not found in the collection. + + + Represents a reference to a data type. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified type. + A that indicates the data type to reference. + + + Initializes a new instance of the class using the specified data type name. + The name of the data type to reference. + + + Initializes a new instance of the class using the specified data type. + An instance of the data type to reference. + + + Gets or sets the data type to reference. + A that indicates the data type to reference. + + + Specifies how the code type reference is to be resolved. + + + Resolve the type from the type parameter. + + + Resolve the type from the root namespace. + + + Represents a variable declaration. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified type and name. + A that indicates the data type of the variable. + The name of the variable. + + + Initializes a new instance of the class using the specified data type, variable name, and initialization expression. + A that indicates the type of the variable. + The name of the variable. + A that indicates the initialization expression for the variable. + + + Initializes a new instance of the class using the specified data type name and variable name. + The name of the data type of the variable. + The name of the variable. + + + Initializes a new instance of the class using the specified data type, variable name, and initialization expression. + The name of the data type of the variable. + The name of the variable. + A that indicates the initialization expression for the variable. + + + Initializes a new instance of the class using the specified data type and variable name. + The data type for the variable. + The name of the variable. + + + Initializes a new instance of the class using the specified data type, variable name, and initialization expression. + The data type of the variable. + The name of the variable. + A that indicates the initialization expression for the variable. + + + Gets or sets the initialization expression for the variable. + A that indicates the initialization expression for the variable. + + + Gets or sets the name of the variable. + The name of the variable. + + + Gets or sets the data type of the variable. + A that indicates the data type of the variable. + + + Represents a reference to a local variable. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified local variable name. + The name of the local variable to reference. + + + Gets or sets the name of the local variable to reference. + The name of the local variable to reference. + + + Defines identifiers used to indicate the direction of parameter and argument declarations. + + + An incoming field. + + + An outgoing field. + + + A field by reference. + + + Defines member attribute identifiers for class members. + + + An abstract member. + + + An access mask. + + + A member that is accessible to any class within the same assembly. + + + A constant member. + + + A member that is accessible within the family of its class and derived classes. + + + A member that is accessible within its class, and derived classes in the same assembly. + + + A member that is accessible within its class, its derived classes in any assembly, and any class in the same assembly. + + + A member that cannot be overridden in a derived class. + + + A new member. + + + An overloaded member. Some languages, such as Visual Basic, require overloaded members to be explicitly indicated. + + + A member that overrides a base class member. + + + A private member. + + + A public member. + + + A scope mask. + + + A static member. In Visual Basic, this is equivalent to the Shared keyword. + + + A VTable mask. + + + Provides an example implementation of the interface. + + + Initializes a new instance of the class. + + + Gets the command arguments to be passed to the compiler from the specified . + The command arguments. + A that indicates the compiler options. + + + Gets the name of the compiler executable. + The name of the compiler executable. + + + Gets the file name extension to use for source files. + The file name extension to use for source files. + + + Compiles the specified compile unit using the specified options, and returns the results from the compilation. + The results of compilation. + A object that indicates the compiler options. + A object that indicates the source to compile. + + is null. + + + Compiles the specified compile units using the specified options, and returns the results from the compilation. + The results of compilation. + A object that indicates the compiler options. + An array of objects that indicates the source to compile. + + is null.-or- is null. + + + Compiles the specified file using the specified options, and returns the results from the compilation. + The results of compilation. + A object that indicates the compiler options. + The file name to compile. + + is null. -or- is null. + + + Compiles the specified files using the specified options, and returns the results from the compilation. + The results of compilation. + A object that indicates the compiler options. + An array of strings that indicates the file names of the files to compile. + + is null.-or- is null. + + + Compiles the specified source code string using the specified options, and returns the results from the compilation. + The results of compilation. + A object that indicates the compiler options. + The source code string to compile. + + is null. + + + Compiles the specified source code strings using the specified options, and returns the results from the compilation. + The results of compilation. + A object that indicates the compiler options. + An array of strings containing the source code to compile. + + is null.-or- is null. + + + Gets the command arguments to use when invoking the compiler to generate a response file. + The command arguments to use to generate a response file, or null if there are no response file arguments. + A object that indicates the compiler options. + A command arguments string. + + + Joins the specified string arrays. + The concatenated string. + The array of strings to join. + The separator to use. + + + Processes the specified line from the specified . + A that indicates the results of compilation. + The line to process. + + + For a description of this member, see . + The results of compilation. + A object that indicates the compiler options. + A that indicates the source to compile. + + is null. + + + For a description of this member, see . + The results of compilation. + A object that indicates the compiler options. + An array of objects that indicates the source to compile. + + + For a description of this member, see . + The results of compilation. + A object that indicates the compiler options. + The file name to compile. + + is null. + + + For a description of this member, see . + The results of compilation. + A object that indicates the compiler options. + An array of strings that indicates the file names to compile. + + + For a description of this member, see . + The results of compilation. + A object that indicates the compiler options. + A string that indicates the source code to compile. + + is null. + + + For a description of this member, see . + The results of compilation. + A object that indicates the compiler options. + An array of strings that indicates the source code to compile. + + is null. + + + Provides a base class for implementations. This class is abstract. + + + Initializes a new instance of the class. + + + Compiles an assembly based on the trees contained in the specified array of objects, using the specified compiler settings. + A object that indicates the results of the compilation. + A object that indicates the settings for the compilation. + An array of type that indicates the code to compile. + Neither this method nor the method is overridden in a derived class. + + + Compiles an assembly from the source code contained in the specified files, using the specified compiler settings. + A object that indicates the results of compilation. + A object that indicates the settings for the compilation. + An array of the names of the files to compile. + Neither this method nor the method is overridden in a derived class. + + + Compiles an assembly from the specified array of strings containing source code, using the specified compiler settings. + A object that indicates the results of compilation. + A object that indicates the compiler settings for this compilation. + An array of source code strings to compile. + Neither this method nor the method is overridden in a derived class. + + + When overridden in a derived class, creates a new code compiler. + An that can be used for compilation of based source code representations. + + + Creates an escaped identifier for the specified value. + The escaped identifier for the value. + The string for which to create an escaped identifier. + Neither this method nor the method is overridden in a derived class. + + + When overridden in a derived class, creates a new code generator. + An that can be used to generate based source code representations. + + + When overridden in a derived class, creates a new code generator using the specified for output. + An that can be used to generate based source code representations. + A to use to output. + + + When overridden in a derived class, creates a new code generator using the specified file name for output. + An that can be used to generate based source code representations. + The file name to output to. + + + When overridden in a derived class, creates a new code parser. + An that can be used to parse source code. The base implementation always returns null. + + + Gets a instance for the specified language. + A CodeDOM provider that is implemented for the specified language name. + The language name. + The does not have a configured provider on this computer. + The is null. + The caller does not have the required permission. + + + Gets a instance for the specified language and provider options. + A CodeDOM provider that is implemented for the specified language name and options. + The language name. + A collection of provider options from the configuration file. + + + Creates a valid identifier for the specified value. + A valid identifier for the specified value. + The string for which to generate a valid identifier. + Neither this method nor the method is overridden in a derived class. + + + Gets the default file name extension to use for source code files in the current language. + A file name extension corresponding to the extension of the source files of the current language. The base implementation always returns . + + + Generates code for the specified Code Document Object Model (CodeDOM) compilation unit and sends it to the specified text writer, using the specified options. + A for which to generate code. + The to which the output code is sent. + A that indicates the options to use for generating code. + Neither this method nor the method is overridden in a derived class. + + + Generates code for the specified Code Document Object Model (CodeDOM) expression and sends it to the specified text writer, using the specified options. + A object that indicates the expression for which to generate code. + The to which output code is sent. + A that indicates the options to use for generating code. + Neither this method nor the method is overridden in a derived class. + + + Generates code for the specified Code Document Object Model (CodeDOM) member declaration and sends it to the specified text writer, using the specified options. + A object that indicates the member for which to generate code. + The to which output code is sent. + A that indicates the options to use for generating code. + This method is not overridden in a derived class. + + + Generates code for the specified Code Document Object Model (CodeDOM) namespace and sends it to the specified text writer, using the specified options. + A object that indicates the namespace for which to generate code. + The to which output code is sent. + A that indicates the options to use for generating code. + Neither this method nor the method is overridden in a derived class. + + + Generates code for the specified Code Document Object Model (CodeDOM) statement and sends it to the specified text writer, using the specified options. + A containing the CodeDOM elements for which to generate code. + The to which output code is sent. + A that indicates the options to use for generating code. + Neither this method nor the method is overridden in a derived class. + + + Generates code for the specified Code Document Object Model (CodeDOM) type declaration and sends it to the specified text writer, using the specified options. + A object that indicates the type for which to generate code. + The to which output code is sent. + A that indicates the options to use for generating code. + Neither this method nor the method is overridden in a derived class. + + + Returns the language provider and compiler configuration settings for this computer. + An array of type representing the settings of all configured implementations. + The caller does not have the required permission. + + + Returns the language provider and compiler configuration settings for the specified language. + A object populated with settings of the configured implementation. + A language name. + The does not have a configured provider on this computer. + The is null. + The caller does not have the required permission. + + + Gets a for the specified data type. + A for the specified type, or null if a for the specified type cannot be found. + The type of object to retrieve a type converter for. + + + Returns a language name associated with the specified file name extension, as configured in the compiler configuration section. + A language name associated with the file name extension, as configured in the compiler configuration settings. + A file name extension. + The does not have a configured language provider on this computer. + The is null. + The caller does not have the required permission. + + + Gets the type indicated by the specified . + A text representation of the specified type, formatted for the language in which code is generated by this code generator. In Visual Basic, for example, passing in a for the type will return "Integer". + A that indicates the type to return. + Neither this method nor the method is overridden in a derived class. + + + Tests whether a file name extension has an associated implementation configured on the computer. + true if a implementation is configured for the specified file name extension; otherwise, false. + A file name extension. + The is null. + The caller does not have the required permission. + + + Tests whether a language has a implementation configured on the computer. + true if a implementation is configured for the specified language; otherwise, false. + The language name. + The is null. + The caller does not have the required permission. + + + Returns a value that indicates whether the specified value is a valid identifier for the current language. + true if the parameter is a valid identifier; otherwise, false. + The value to verify as a valid identifier. + Neither this method nor the method is overridden in a derived class. + + + Gets a language features identifier. + A that indicates special features of the language. + + + Compiles the code read from the specified text stream into a . + A that contains a representation of the parsed code. + A object that is used to read the code to be parsed. + Neither this method nor the method is overridden in a derived class. + + + Returns a value indicating whether the specified code generation support is provided. + true if the specified code generation support is provided; otherwise, false. + A object that indicates the type of code generation support to verify. + Neither this method nor the method is overridden in a derived class. + + + Provides an example implementation of the interface. This class is abstract. + + + Initializes a new instance of the class. + + + Generates a line-continuation character and outputs the specified string on a new line. + The string to write on the new line. + + + Creates an escaped identifier for the specified value. + The escaped identifier for the value. + The string to create an escaped identifier for. + + + Creates a valid identifier for the specified value. + A valid identifier for the value. + A string to create a valid identifier for. + + + Gets the code type declaration for the current class. + The code type declaration for the current class. + + + Gets the current member of the class. + The current member of the class. + + + Gets the current member name. + The name of the current member. + + + Gets the current class name. + The current class name. + + + Generates code for the specified argument reference expression. + A that indicates the expression to generate code for. + + + Generates code for the specified array creation expression. + A that indicates the expression to generate code for. + + + Generates code for the specified array indexer expression. + A that indicates the expression to generate code for. + + + Generates code for the specified assignment statement. + A that indicates the statement to generate code for. + + + Generates code for the specified attach event statement. + A that indicates the statement to generate code for. + + + Generates code for the specified attribute block end. + A that indicates the end of the attribute block to generate code for. + + + Generates code for the specified attribute block start. + A that indicates the start of the attribute block to generate code for. + + + Generates code for the specified base reference expression. + A that indicates the expression to generate code for. + + + Generates code for the specified binary operator expression. + A that indicates the expression to generate code for. + + is null. + + + Generates code for the specified cast expression. + A that indicates the expression to generate code for. + + + Generates code for the specified class member using the specified text writer and code generator options. + The class member to generate code for. + The text writer to output code to. + The options to use when generating the code. + The property is not null. + + + Generates code for the specified comment. + A to generate code for. + + + Generates code for the specified comment statement. + The statement to generate code for. + The property of is not set. + + + Generates code for the specified comment statements. + The expression to generate code for. + + + Generates code for the specified compile unit. + The compile unit to generate code for. + + + Generates code for the end of a compile unit. + The compile unit to generate code for. + + + Generates code for the start of a compile unit. + The compile unit to generate code for. + + + Generates code for the specified conditional statement. + The statement to generate code for. + + + Generates code for the specified constructor. + The constructor to generate code for. + The type of the object that this constructor constructs. + + + Generates code for the specified decimal value. + The decimal value to generate code for. + + + Generates code for the specified reference to a default value. + The reference to generate code for. + + + Generates code for the specified delegate creation expression. + The expression to generate code for. + + + Generates code for the specified delegate invoke expression. + The expression to generate code for. + + + Generates code for the specified direction expression. + The expression to generate code for. + + + Generates code for the specified code directives. + The code directives to generate code for. + + + Generates code for a double-precision floating point number. + The value to generate code for. + + + Generates code for the specified entry point method. + The entry point for the code. + The code that declares the type. + + + Generates code for the specified event. + The member event to generate code for. + The type of the object that this event occurs on. + + + Generates code for the specified event reference expression. + The expression to generate code for. + + + Generates code for the specified code expression. + The code expression to generate code for. + + is null. + + is not a valid . + + + Generates code for the specified expression statement. + The statement to generate code for. + + + Generates code for the specified member field. + The field to generate code for. + + + Generates code for the specified field reference expression. + The expression to generate code for. + + + Generates code for the specified goto statement. + The expression to generate code for. + + + Generates code for the specified indexer expression. + The expression to generate code for. + + + Generates code for the specified iteration statement. + The statement to generate code for. + + + Generates code for the specified labeled statement. + The statement to generate code for. + + + Generates code for the specified line pragma end. + The end of the line pragma to generate code for. + + + Generates code for the specified line pragma start. + The start of the line pragma to generate code for. + + + Generates code for the specified method. + The member method to generate code for. + The type of the object that this method occurs on. + + + Generates code for the specified method invoke expression. + The expression to generate code for. + + + Generates code for the specified method reference expression. + The expression to generate code for. + + + Generates code for the specified method return statement. + The statement to generate code for. + + + Generates code for the specified namespace. + The namespace to generate code for. + + + Generates code for the end of a namespace. + The namespace to generate code for. + + + Generates code for the specified namespace import. + The namespace import to generate code for. + + + Generates code for the specified namespace import. + The namespace import to generate code for. + + + Generates code for the namespaces in the specified compile unit. + The compile unit to generate namespaces for. + + + Generates code for the start of a namespace. + The namespace to generate code for. + + + Generates code for the specified object creation expression. + The expression to generate code for. + + + Generates code for the specified parameter declaration expression. + The expression to generate code for. + + + Generates code for the specified primitive expression. + The expression to generate code for. + + uses an invalid data type. Only the following data types are valid:stringcharbyteInt16Int32Int64SingleDoubleDecimal + + + Generates code for the specified property. + The property to generate code for. + The type of the object that this property occurs on. + + + Generates code for the specified property reference expression. + The expression to generate code for. + + + Generates code for the specified property set value reference expression. + The expression to generate code for. + + + Generates code for the specified remove event statement. + The statement to generate code for. + + + Generates code for a single-precision floating point number. + The value to generate code for. + + + Outputs the code of the specified literal code fragment compile unit. + The literal code fragment compile unit to generate code for. + + + Outputs the code of the specified literal code fragment expression. + The expression to generate code for. + + + Outputs the code of the specified literal code fragment class member. + The member to generate code for. + + + Outputs the code of the specified literal code fragment statement. + The statement to generate code for. + + + Generates code for the specified statement. + The statement to generate code for. + + is not a valid . + + + Generates code for the specified statement collection. + The statements to generate code for. + + + Generates code for the specified this reference expression. + The expression to generate code for. + + + Generates code for the specified throw exception statement. + The statement to generate code for. + + + Generates code for the specified try...catch...finally statement. + The statement to generate code for. + + + Generates code for the specified class constructor. + The class constructor to generate code for. + + + Generates code for the specified end of the class. + The end of the class to generate code for. + + + Generates code for the specified type of expression. + The expression to generate code for. + + + Generates code for the specified type reference expression. + The expression to generate code for. + + + Generates code for the specified namespace and the classes it contains. + The namespace to generate classes for. + + + Generates code for the specified start of the class. + The start of the class to generate code for. + + + Generates code for the specified variable declaration statement. + The statement to generate code for. + + + Generates code for the specified variable reference expression. + The expression to generate code for. + + + Gets the name of the specified data type. + The name of the data type reference. + The type whose name will be returned. + + + Gets or sets the amount of spaces to indent each indentation level. + The number of spaces to indent for each indentation level. + + + Gets a value indicating whether the current object being generated is a class. + true if the current object is a class; otherwise, false. + + + Gets a value indicating whether the current object being generated is a delegate. + true if the current object is a delegate; otherwise, false. + + + Gets a value indicating whether the current object being generated is an enumeration. + true if the current object is an enumeration; otherwise, false. + + + Gets a value indicating whether the current object being generated is an interface. + true if the current object is an interface; otherwise, false. + + + Gets a value indicating whether the current object being generated is a value type or struct. + true if the current object is a value type or struct; otherwise, false. + + + Gets a value indicating whether the specified value is a valid identifier. + true if the value is a valid identifier; otherwise, false. + The value to test for conflicts with valid identifiers. + + + Gets a value indicating whether the specified string is a valid identifier. + true if the specified string is a valid identifier; otherwise, false. + The string to test for validity. + + + Gets the token that represents null. + The token that represents null. + + + Gets the options to be used by the code generator. + An object that indicates the options for the code generator to use. + + + Gets the text writer to use for output. + The text writer to use for output. + + + Outputs an argument in an attribute block. + The attribute argument to generate code for. + + + Generates code for the specified attribute declaration collection. + The attributes to generate code for. + + + Generates code for the specified . + One of the enumeration values that indicates the attribute of the field. + + + Generates code for the specified expression list. + The expressions to generate code for. + + + Generates code for the specified expression list. + The expressions to generate code for. + true to insert a new line after each item; otherwise, false. + + + Outputs a field scope modifier that corresponds to the specified attributes. + One of the enumeration values that specifies the attributes. + + + Outputs the specified identifier. + The identifier to output. + + + Generates code for the specified member access modifier. + One of the enumeration values that indicates the member access modifier to generate code for. + + + Generates code for the specified member scope modifier. + One of the enumeration values that indicates the member scope modifier to generate code for. + + + Generates code for the specified operator. + The operator to generate code for. + + + Generates code for the specified parameters. + The parameter declaration expressions to generate code for. + + + Generates code for the specified type. + The type to generate code for. + + + Generates code for the specified type attributes. + One of the enumeration values that indicates the type attributes to generate code for. + true if the type is a struct; otherwise, false. + true if the type is an enum; otherwise, false. + + + Generates code for the specified object type and name pair. + The type. + The name for the object. + + + Converts the specified string by formatting it with escape codes. + The converted string. + The string to convert. + + + Gets a value indicating whether the specified code generation support is provided. + true if the specified code generation support is provided; otherwise, false. + The type of code generation support to test for. + + + Creates an escaped identifier for the specified value. + The escaped identifier for the value. + The string to create an escaped identifier for. + + + Creates a valid identifier for the specified value. + A valid identifier for the specified value. + The string to generate a valid identifier for. + + + Generates code for the specified Code Document Object Model (CodeDOM) compilation unit and outputs it to the specified text writer using the specified options. + The CodeDOM compilation unit to generate code for. + The text writer to output code to. + The options to use for generating code. + + is not available. may have been closed before the method call was made. + + + Generates code for the specified Code Document Object Model (CodeDOM) expression and outputs it to the specified text writer. + The expression to generate code for. + The text writer to output code to. + The options to use for generating code. + + is not available. may have been closed before the method call was made. + + + Generates code for the specified Code Document Object Model (CodeDOM) namespace and outputs it to the specified text writer using the specified options. + The namespace to generate code for. + The text writer to output code to. + The options to use for generating code. + + is not available. may have been closed before the method call was made. + + + Generates code for the specified Code Document Object Model (CodeDOM) statement and outputs it to the specified text writer using the specified options. + The statement that contains the CodeDOM elements to translate. + The text writer to output code to. + The options to use for generating code. + + is not available. may have been closed before the method call was made. + + + Generates code for the specified Code Document Object Model (CodeDOM) type declaration and outputs it to the specified text writer using the specified options. + The type to generate code for. + The text writer to output code to. + The options to use for generating code. + + is not available. may have been closed before the method call was made. + + + Gets the type indicated by the specified . + The name of the data type reference. + The type to return. + + + Gets a value that indicates whether the specified value is a valid identifier for the current language. + true if the parameter is a valid identifier; otherwise, false. + The value to test. + + + Gets a value indicating whether the generator provides support for the language features represented by the specified object. + true if the specified capabilities are supported; otherwise, false. + The capabilities to test the generator for. + + + Throws an exception if the specified value is not a valid identifier. + The identifier to validate. + + + Throws an exception if the specified string is not a valid identifier. + The identifier to test for validity as an identifier. + If the specified identifier is invalid or conflicts with reserved or language keywords. + + + Attempts to validate each identifier field contained in the specified or tree. + An object to test for invalid identifiers. + The specified contains an invalid identifier. + + + Represents a set of options used by a code generator. + + + Initializes a new instance of the class. + + + Gets or sets a value indicating whether to insert blank lines between members. + true if blank lines should be inserted; otherwise, false. By default, the value of this property is true. + + + Gets or sets the style to use for bracing. + A string containing the bracing style to use. + + + Gets or sets a value indicating whether to append an else, catch, or finally block, including brackets, at the closing line of each previous if or try block. + true if an else should be appended; otherwise, false. The default value of this property is false. + + + Gets or sets the string to use for indentations. + A string containing the characters to use for indentations. + + + Gets or sets the object at the specified index. + The object associated with the specified name. If no object associated with the specified name exists in the collection, null. + The name associated with the object to retrieve. + + + Gets or sets a value indicating whether to generate members in the order in which they occur in member collections. + true to generate the members in the order in which they occur in the member collection; otherwise, false. The default value of this property is false. + + + Provides an empty implementation of the interface. + + + Initializes a new instance of the class. + + + Compiles the specified text stream into a . + A containing the code model produced from parsing the code. + A that is used to read the code to be parsed. + + + Represents a compiler error or warning. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified file name, line, column, error number, and error text. + The file name of the file that the compiler was compiling when it encountered the error. + The line of the source of the error. + The column of the source of the error. + The error number of the error. + The error message text. + + + Gets or sets the column number where the source of the error occurs. + The column number of the source file where the compiler encountered the error. + + + Gets or sets the error number. + The error number as a string. + + + Gets or sets the text of the error message. + The text of the error message. + + + Gets or sets the file name of the source file that contains the code which caused the error. + The file name of the source file that contains the code which caused the error. + + + Gets or sets a value that indicates whether the error is a warning. + true if the error is a warning; otherwise, false. + + + Gets or sets the line number where the source of the error occurs. + The line number of the source file where the compiler encountered the error. + + + Provides an implementation of Object's method. + A string representation of the compiler error. + + + Represents a collection of objects. + + + Initializes a new instance of the class. + + + Initializes a new instance of that contains the specified array of objects. + An array of objects to initialize the collection with. + + is null. + + + Initializes a new instance of the class that contains the contents of the specified . + A object with which to initialize the collection. + + is null. + + + Adds the specified object to the error collection. + The index at which the new element was inserted. + The object to add. + + + Copies the elements of an array to the end of the error collection. + An array of type that contains the objects to add to the collection. + + is null. + + + Adds the contents of the specified compiler error collection to the end of the error collection. + A object that contains the objects to add to the collection. + + is null. + + + Gets a value that indicates whether the collection contains the specified object. + true if the is contained in the collection; otherwise, false. + The to locate. + + + Copies the collection values to a one-dimensional instance at the specified index. + The one-dimensional that is the destination of the values copied from . + The index in the array at which to start copying. + The array indicated by the parameter is multidimensional.-or- The number of elements in the is greater than the available space between the index value of the parameter in the array indicated by the parameter and the end of the array indicated by the parameter. + The parameter is null. + The parameter is less than the lowbound of the array indicated by the parameter. + + + Gets a value that indicates whether the collection contains errors. + true if the collection contains errors; otherwise, false. + + + Gets a value that indicates whether the collection contains warnings. + true if the collection contains warnings; otherwise, false. + + + Gets the index of the specified object in the collection, if it exists in the collection. + The index of the specified in the , if found; otherwise, -1. + The to locate. + + + Inserts the specified into the collection at the specified index. + The zero-based index where the compiler error should be inserted. + The to insert. + + + Gets or sets the at the specified index. + A at each valid index. + The zero-based index of the entry to locate in the collection. + The index value indicated by the parameter is outside the valid range of indexes for the collection. + + + Removes a specific from the collection. + The to remove from the . + The specified object is not found in the collection. + + + Represents the configuration settings of a language provider. This class cannot be inherited. + + + Gets the type of the configured implementation. + A read-only instance that represents the configured language provider type. + The language provider is not configured on this computer. + Cannot locate the type because it is a null or empty string.-or-Cannot locate the type because the name for the cannot be found in the configuration file. + + + Gets the configured compiler settings for the language provider implementation. + A read-only instance that contains the compiler options and settings configured for the language provider. + + + Returns a instance for the current language provider settings. + A CodeDOM provider associated with the language provider configuration. + + + Returns a instance for the current language provider settings and specified options. + A CodeDOM provider associated with the language provider configuration and specified options. + A collection of provider options from the configuration file. + + is null. + The provider does not support options. + + + Determines whether the specified object represents the same language provider and compiler settings as the current . + true if is a object and its value is the same as this instance; otherwise, false. + The object to compare with the current . + + + Returns the file name extensions supported by the language provider. + An array of file name extensions supported by the language provider. + + + Returns the hash code for the current instance. + A 32-bit signed integer hash code for the current instance, suitable for use in hashing algorithms and data structures such as a hash table. + + + Gets the language names supported by the language provider. + An array of language names supported by the language provider. + + + Returns a value indicating whether the language provider implementation is configured on the computer. + true if the language provider implementation type is configured on the computer; otherwise, false. + + + Represents the parameters used to invoke a compiler. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified assembly names. + The names of the assemblies to reference. + + + Initializes a new instance of the class using the specified assembly names and output file name. + The names of the assemblies to reference. + The output file name. + + + Initializes a new instance of the class using the specified assembly names, output name, and a value indicating whether to include debug information. + The names of the assemblies to reference. + The output file name. + true to include debug information; false to exclude debug information. + + + Gets or sets optional command-line arguments to use when invoking the compiler. + Any additional command-line arguments for the compiler. + + + Gets or sets the name of the core or standard assembly that contains basic types such as , , or . + The name of the core assembly that contains basic types. + + + Gets the .NET Framework resource files to include when compiling the assembly output. + A collection that contains the file paths of .NET Framework resources to include in the generated assembly. + + + Specifies an evidence object that represents the security policy permissions to grant the compiled assembly. + An object that represents the security policy permissions to grant the compiled assembly. + + + Gets or sets a value indicating whether to generate an executable. + true if an executable should be generated; otherwise, false. + + + Gets or sets a value indicating whether to generate the output in memory. + true if the compiler should generate the output in memory; otherwise, false. + + + Gets or sets a value indicating whether to include debug information in the compiled executable. + true if debug information should be generated; otherwise, false. + + + Gets the .NET Framework resource files that are referenced in the current source. + A collection that contains the file paths of .NET Framework resources that are referenced by the source. + + + Gets or sets the name of the main class. + The name of the main class. + + + Gets or sets the name of the output assembly. + The name of the output assembly. + + + Gets the assemblies referenced by the current project. + A collection that contains the assembly names that are referenced by the source to compile. + + + Gets or sets the collection that contains the temporary files. + A collection that contains the temporary files. + + + Gets or sets a value indicating whether to treat warnings as errors. + true if warnings should be treated as errors; otherwise, false. + + + Gets or sets the user token to use when creating the compiler process. + The user token to use. + + + Gets or sets the warning level at which the compiler aborts compilation. + The warning level at which the compiler aborts compilation. + + + Gets or sets the file name of a Win32 resource file to link into the compiled assembly. + A Win32 resource file that will be linked into the compiled assembly. + + + Represents the results of compilation that are returned from a compiler. + + + Initializes a new instance of the class that uses the specified temporary files. + A with which to manage and store references to intermediate files generated during compilation. + + + Gets or sets the compiled assembly. + An that indicates the compiled assembly. + + + + + + Gets the collection of compiler errors and warnings. + A that indicates the errors and warnings resulting from compilation, if any. + + + Indicates the evidence object that represents the security policy permissions of the compiled assembly. + An object that represents the security policy permissions of the compiled assembly. + + + Gets or sets the compiler's return value. + The compiler's return value. + + + Gets the compiler output messages. + A that contains the output messages. + + + Gets or sets the path of the compiled assembly. + The path of the assembly, or null if the assembly was generated in memory. + + + Gets or sets the temporary file collection to use. + A with which to manage and store references to intermediate files generated during compilation. + + + Provides command execution functions for invoking compilers. This class cannot be inherited. + + + Executes the command using the specified temporary files and waits for the call to return. + The command to execute. + A with which to manage and store references to intermediate files generated during compilation. + + + Executes the specified command using the specified user token and temporary files, and waits for the call to return, storing output and error information from the compiler in the specified strings. + The return value from the compiler. + The token to start the compiler process with. + The command to execute. + A with which to manage and store references to intermediate files generated during compilation. + A reference to a string that will store the compiler's message output. + A reference to a string that will store the name of the error or errors encountered. + + + Executes the specified command using the specified user token, current directory, and temporary files; then waits for the call to return, storing output and error information from the compiler in the specified strings. + The return value from the compiler. + The token to start the compiler process with. + The command to execute. + The directory to start the process in. + A with which to manage and store references to intermediate files generated during compilation. + A reference to a string that will store the compiler's message output. + A reference to a string that will store the name of the error or errors encountered. + + + Executes the specified command using the specified temporary files and waits for the call to return, storing output and error information from the compiler in the specified strings. + The return value from the compiler. + The command to execute. + A with which to manage and store references to intermediate files generated during compilation. + A reference to a string that will store the compiler's message output. + A reference to a string that will store the name of the error or errors encountered. + + + Executes the specified command using the specified current directory and temporary files, and waits for the call to return, storing output and error information from the compiler in the specified strings. + The return value from the compiler. + The command to execute. + The current directory. + A with which to manage and store references to intermediate files generated during compilation. + A reference to a string that will store the compiler's message output. + A reference to a string that will store the name of the error or errors encountered. + + + Identifies code generated by a tool. This class cannot be inherited. + + + Initializes a new instance of the class specifying the name and version of the tool that generated the code. + The name of the tool that generated the code. + The version of the tool that generated the code. + + + Gets the name of the tool that generated the code. + The name of the tool that generated to code. + + + Gets the version of the tool that generated the code. + The version of the tool that generated the code. + + + Defines identifiers used to determine whether a code generator supports certain types of code elements. + + + Indicates the generator supports arrays of arrays. + + + Indicates the generator supports assembly attributes. + + + Indicates the generator supports chained constructor arguments. + + + Indicates the generator supports complex expressions. + + + Indicates the generator supports delegate declarations. + + + Indicates the generator supports enumeration declarations. + + + Indicates the generator supports event declarations. + + + Indicates the generator supports the declaration of indexer properties. + + + Indicates the generator supports interface declarations. + + + Indicates the generator supports value type declarations. + + + Indicates the generator supports a program entry point method designation. This is used when building executables. + + + Indicates the generator supports generic type declarations. + + + Indicates the generator supports generic type references. + + + Indicates the generator supports goto statements. + + + Indicates the generator supports referencing multidimensional arrays. Currently, the CodeDom cannot be used to instantiate multidimensional arrays. + + + Indicates the generator supports the declaration of members that implement multiple interfaces. + + + Indicates the generator supports the declaration of nested types. + + + Indicates the generator supports parameter attributes. + + + Indicates the generator supports partial type declarations. + + + Indicates the generator supports public static members. + + + Indicates the generator supports reference and out parameters. + + + Indicates the generator supports compilation with .NET Framework resources. These can be default resources compiled directly into an assembly, or resources referenced in a satellite assembly. + + + Indicates the generator supports return type attribute declarations. + + + Indicates the generator supports static constructors. + + + Indicates the generator supports try...catch statements. + + + Indicates the generator supports compilation with Win32 resources. + + + Defines an interface for invoking compilation of source code or a CodeDOM tree using a specific compiler. + + + Compiles an assembly from the tree contained in the specified , using the specified compiler settings. + A object that indicates the results of compilation. + A object that indicates the settings for compilation. + A that indicates the code to compile. + + + Compiles an assembly based on the trees contained in the specified array of objects, using the specified compiler settings. + A object that indicates the results of compilation. + A object that indicates the settings for compilation. + An array of type that indicates the code to compile. + + + Compiles an assembly from the source code contained within the specified file, using the specified compiler settings. + A object that indicates the results of compilation. + A object that indicates the settings for compilation. + The file name of the file that contains the source code to compile. + + + Compiles an assembly from the source code contained within the specified files, using the specified compiler settings. + A object that indicates the results of compilation. + A object that indicates the settings for compilation. + The file names of the files to compile. + + + Compiles an assembly from the specified string containing source code, using the specified compiler settings. + A object that indicates the results of compilation. + A object that indicates the settings for compilation. + The source code to compile. + + + Compiles an assembly from the specified array of strings containing source code, using the specified compiler settings. + A object that indicates the results of compilation. + A object that indicates the settings for compilation. + The source code strings to compile. + + + Defines an interface for generating code. + + + Creates an escaped identifier for the specified value. + The escaped identifier for the value. + The string to create an escaped identifier for. + + + Creates a valid identifier for the specified value. + A valid identifier for the specified value. + The string to generate a valid identifier for. + + + Generates code for the specified Code Document Object Model (CodeDOM) compilation unit and outputs it to the specified text writer using the specified options. + A to generate code for. + The to output code to. + A that indicates the options to use for generating code. + + + Generates code for the specified Code Document Object Model (CodeDOM) expression and outputs it to the specified text writer. + A that indicates the expression to generate code for. + The to output code to. + A that indicates the options to use for generating code. + + + Generates code for the specified Code Document Object Model (CodeDOM) namespace and outputs it to the specified text writer using the specified options. + A that indicates the namespace to generate code for. + The to output code to. + A that indicates the options to use for generating code. + + + Generates code for the specified Code Document Object Model (CodeDOM) statement and outputs it to the specified text writer using the specified options. + A containing the CodeDOM elements to translate. + The to output code to. + A that indicates the options to use for generating code. + + + Generates code for the specified Code Document Object Model (CodeDOM) type declaration and outputs it to the specified text writer using the specified options. + A that indicates the type to generate code for. + The to output code to. + A that indicates the options to use for generating code. + + + Gets the type indicated by the specified . + A text representation of the specified type for the language this code generator is designed to generate code in. For example, in Visual Basic, passing in type System.Int32 will return "Integer". + A that indicates the type to return. + + + Gets a value that indicates whether the specified value is a valid identifier for the current language. + true if the parameter is a valid identifier; otherwise, false. + The value to test for being a valid identifier. + + + Gets a value indicating whether the generator provides support for the language features represented by the specified object. + true if the specified capabilities are supported; otherwise, false. + The capabilities to test the generator for. + + + Throws an exception if the specified value is not a valid identifier. + The identifier to validate. + The identifier is not valid. + + + Defines an interface for parsing code into a . + + + When implemented in a derived class, compiles the specified text stream into a . + A that contains a representation of the parsed code. + A that can be used to read the code to be compiled. + + + Provides a text writer that can indent new lines by a tab string token. + + + Initializes a new instance of the class using the specified text writer and default tab string. + The to use for output. + + + Initializes a new instance of the class using the specified text writer and tab string. + The to use for output. + The tab string to use for indentation. + + + Closes the document being written to. + + + Specifies the default tab string. This field is constant. + + + Gets the encoding for the text writer to use. + An that indicates the encoding for the text writer to use. + + + Flushes the stream. + + + Gets or sets the number of spaces to indent. + The number of spaces to indent. + + + Gets the to use. + The to use. + + + Gets or sets the new line character to use. + The new line character to use. + + + Outputs the tab string once for each level of indentation according to the property. + + + Writes the text representation of a Boolean value to the text stream. + The Boolean value to write. + + + Writes a character to the text stream. + The character to write. + + + Writes a character array to the text stream. + The character array to write. + + + Writes a subarray of characters to the text stream. + The character array to write data from. + Starting index in the buffer. + The number of characters to write. + + + Writes the text representation of a Double to the text stream. + The double to write. + + + Writes the text representation of an integer to the text stream. + The integer to write. + + + Writes the text representation of an 8-byte integer to the text stream. + The 8-byte integer to write. + + + Writes the text representation of an object to the text stream. + The object to write. + + + Writes the text representation of a Single to the text stream. + The single to write. + + + Writes the specified string to the text stream. + The string to write. + + + Writes out a formatted string, using the same semantics as specified. + The formatting string. + The object to write into the formatted string. + + + Writes out a formatted string, using the same semantics as specified. + The formatting string to use. + The first object to write into the formatted string. + The second object to write into the formatted string. + + + Writes out a formatted string, using the same semantics as specified. + The formatting string to use. + The argument array to output. + + + Writes a line terminator. + + + Writes the text representation of a Boolean, followed by a line terminator, to the text stream. + The Boolean to write. + + + Writes a character, followed by a line terminator, to the text stream. + The character to write. + + + Writes a character array, followed by a line terminator, to the text stream. + The character array to write. + + + Writes a subarray of characters, followed by a line terminator, to the text stream. + The character array to write data from. + Starting index in the buffer. + The number of characters to write. + + + Writes the text representation of a Double, followed by a line terminator, to the text stream. + The double to write. + + + Writes the text representation of an integer, followed by a line terminator, to the text stream. + The integer to write. + + + Writes the text representation of an 8-byte integer, followed by a line terminator, to the text stream. + The 8-byte integer to write. + + + Writes the text representation of an object, followed by a line terminator, to the text stream. + The object to write. + + + Writes the text representation of a Single, followed by a line terminator, to the text stream. + The single to write. + + + Writes the specified string, followed by a line terminator, to the text stream. + The string to write. + + + Writes out a formatted string, followed by a line terminator, using the same semantics as specified. + The formatting string. + The object to write into the formatted string. + + + Writes out a formatted string, followed by a line terminator, using the same semantics as specified. + The formatting string to use. + The first object to write into the formatted string. + The second object to write into the formatted string. + + + Writes out a formatted string, followed by a line terminator, using the same semantics as specified. + The formatting string to use. + The argument array to output. + + + Writes the text representation of a UInt32, followed by a line terminator, to the text stream. + A UInt32 to output. + + + Writes the specified string to a line without tabs. + The string to write. + + + Defines identifiers that indicate special features of a language. + + + The language is case-insensitive. + + + The language has default characteristics. + + + Represents a collection of temporary files. + + + Initializes a new instance of the class with default values. + + + Initializes a new instance of the class using the specified temporary directory that is set to delete the temporary files after their generation and use, by default. + A path to the temporary directory to use for storing the temporary files. + + + Initializes a new instance of the class using the specified temporary directory and specified value indicating whether to keep or delete the temporary files after their generation and use, by default. + A path to the temporary directory to use for storing the temporary files. + true if the temporary files should be kept after use; false if the temporary files should be deleted. + + + Adds a file name with the specified file name extension to the collection. + A file name with the specified extension that was just added to the collection. + The file name extension for the auto-generated temporary file name to add to the collection. + + + Adds a file name with the specified file name extension to the collection, using the specified value indicating whether the file should be deleted or retained. + A file name with the specified extension that was just added to the collection. + The file name extension for the auto-generated temporary file name to add to the collection. + true if the file should be kept after use; false if the file should be deleted. + + is null or an empty string. + + + Adds the specified file to the collection, using the specified value indicating whether to keep the file after the collection is disposed or when the method is called. + The name of the file to add to the collection. + true if the file should be kept after use; false if the file should be deleted. + + is null or an empty string.-or- is a duplicate. + + + Gets the full path to the base file name, without a file name extension, on the temporary directory path, that is used to generate temporary file names for the collection. + The full path to the base file name, without a file name extension, on the temporary directory path, that is used to generate temporary file names for the collection. + If the property has not been set or is set to null, and is not granted for the temporary directory indicated by the property. + + + Copies the members of the collection to the specified string, beginning at the specified index. + The array of strings to copy to. + The index of the array to begin copying to. + + + Gets the number of files in the collection. + The number of files in the collection. + + + Deletes the temporary files within this collection that were not marked to be kept. + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Attempts to delete the temporary files before this object is reclaimed by garbage collection. + + + Gets an enumerator that can enumerate the members of the collection. + An that contains the collection's members. + + + Gets or sets a value indicating whether to keep the files, by default, when the method is called or the collection is disposed. + true if the files should be kept; otherwise, false. + + + Copies the elements of the collection to an array, starting at the specified index of the target array. + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in array at which copying begins. + + + Gets the number of elements contained in the collection. + The number of elements contained in the . + + + Gets a value indicating whether access to the collection is synchronized (thread safe). + true if access to the is synchronized (thread safe); otherwise, false. + + + Gets an object that can be used to synchronize access to the collection. + An object that can be used to synchronize access to the . + + + Returns an enumerator that iterates through a collection. + An that can be used to iterate through the collection. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + Gets the temporary directory to store the temporary files in. + The temporary directory to store the temporary files in. + + + Provides blocking and bounding capabilities for thread-safe collections that implement . + The type of elements in the collection. + + + Initializes a new instance of the class without an upper-bound. + + + Initializes a new instance of the class without an upper-bound and using the provided as its underlying data store. + The collection to use as the underlying data store. + The argument is null. + + + Initializes a new instance of the class with the specified upper-bound and using the provided as its underlying data store. + The collection to use as the underlying data store. + The bounded size of the collection. + The argument is null. + The is not a positive value. + The supplied contains more values than is permitted by . + + + Initializes a new instance of the class with the specified upper-bound. + The bounded size of the collection. + The is not a positive value. + + + Adds the item to the . + The item to be added to the collection. The value can be a null reference. + The has been disposed. + The has been marked as complete with regards to additions.-or-The underlying collection didn't accept the item. + + + Adds the item to the . + The item to be added to the collection. The value can be a null reference. + A cancellation token to observe. + If the is canceled. + The has been disposed or the that owns has been disposed. + The has been marked as complete with regards to additions.-or-The underlying collection didn't accept the item. + + + Adds the specified item to any one of the specified instances. + The index of the collection in the array to which the item was added. + The array of collections. + The item to be added to one of the collections. + At least one of the instances has been disposed. + The argument is null. + The count of is greater than the maximum size of 62 for STA and 63 for MTA. + The argument is a 0-length array or contains a null element, or at least one of collections has been marked as complete for adding. + At least one underlying collection didn't accept the item. + + + Adds the specified item to any one of the specified instances. + The index of the collection in the array to which the item was added. + The array of collections. + The item to be added to one of the collections. + A cancellation token to observe. + If the is canceled. + At least one underlying collection didn't accept the item. + The argument is null. + The count of is greater than the maximum size of 62 for STA and 63 for MTA. + The argument is a 0-length array or contains a null element, or at least one of collections has been marked as complete for adding. + At least one of the instances has been disposed, or the that created has been disposed. + + + Gets the bounded capacity of this instance. + The bounded capacity of this collection, or int.MaxValue if no bound was supplied. + The has been disposed. + + + Marks the instances as not accepting any more additions. + The has been disposed. + + + Copies all of the items in the instance to a compatible one-dimensional array, starting at the specified index of the target array. + The one-dimensional array that is the destination of the elements copied from the instance. The array must have zero-based indexing. + The zero-based index in at which copying begins. + The has been disposed. + The argument is null. + The argument is less than zero. + The argument is equal to or greater than the length of the .The destination array is too small to hold all of the BlockingCcollection elements.The array rank doesn't match.The array type is incompatible with the type of the BlockingCollection elements. + + + Gets the number of items contained in the . + The number of items contained in the . + The has been disposed. + + + Releases all resources used by the current instance of the class. + + + Releases resources used by the instance. + Whether being disposed explicitly (true) or due to a finalizer (false). + + + Provides a consuming for items in the collection. + An that removes and returns items from the collection. + The has been disposed. + + + Provides a consuming for items in the collection. + An that removes and returns items from the collection. + A cancellation token to observe. + If the is canceled. + The has been disposed or the that created has been disposed + + + Gets whether this has been marked as complete for adding. + Whether this collection has been marked as complete for adding. + The has been disposed. + + + Gets whether this has been marked as complete for adding and is empty. + Whether this collection has been marked as complete for adding and is empty. + The has been disposed. + + + Provides an for items in the collection. + An for the items in the collection. + The has been disposed. + + + Copies all of the items in the instance to a compatible one-dimensional array, starting at the specified index of the target array. + The one-dimensional array that is the destination of the elements copied from the instance. The array must have zero-based indexing. + The zero-based index in at which copying begins. + The has been disposed. + The argument is null. + The argument is less than zero. + The argument is equal to or greater than the length of the , the array is multidimensional, or the type parameter for the collection cannot be cast automatically to the type of the destination array. + + + Gets a value indicating whether access to the is synchronized. + always returns false. + The has been disposed. + + + Gets an object that can be used to synchronize access to the . This property is not supported. + returns null. + The SyncRoot property is not supported. + + + Provides an for items in the collection. + An for the items in the collection. + The has been disposed. + + + Removes an item from the . + The item removed from the collection. + The has been disposed. + The underlying collection was modified outside of this instance, or the is empty and the collection has been marked as complete for adding. + + + Removes an item from the . + The item removed from the collection. + Object that can be used to cancel the take operation. + The is canceled. + The has been disposed or the that created the token was canceled. + The underlying collection was modified outside of this instance or the BlockingCollection is marked as complete for adding, or the is empty. + + + Takes an item from any one of the specified instances. + The index of the collection in the array from which the item was removed. + The array of collections. + The item removed from one of the collections. + At least one of the instances has been disposed. + The argument is null. + The count of is greater than the maximum size of 62 for STA and 63 for MTA. + The argument is a 0-length array or contains a null element or has been called on the collection. + At least one of the underlying collections was modified outside of its instance. + + + Takes an item from any one of the specified instances while observing the specified cancellation token. + The index of the collection in the array from which the item was removed. + The array of collections. + The item removed from one of the collections. + A cancellation token to observe. + If the is canceled. + At least one of the underlying collections was modified outside of its instance. + The argument is null. + The count of is greater than the maximum size of 62 for STA and 63 for MTA. + The argument is a 0-length array or contains a null element, or has been called on the collection. + At least one of the instances has been disposed. + + + Copies the items from the instance into a new array. + An array containing copies of the elements of the collection. + The has been disposed. + + + Tries to add the specified item to the . + true if could be added; otherwise false. If the item is a duplicate, and the underlying collection does not accept duplicate items, then an is thrown. + The item to be added to the collection. + The has been disposed. + The has been marked as complete with regards to additions.-or-The underlying collection didn't accept the item. + + + Tries to add the specified item to the within the specified time period. + true if the could be added to the collection within the specified time; otherwise, false. If the item is a duplicate, and the underlying collection does not accept duplicate items, then an is thrown. + The item to be added to the collection. + The number of milliseconds to wait, or (-1) to wait indefinitely. + The has been disposed. + + is a negative number other than -1, which represents an infinite time-out. + The has been marked as complete with regards to additions.-or-The underlying collection didn't accept the item. + + + Tries to add the specified item to the within the specified time period, while observing a cancellation token. + true if the could be added to the collection within the specified time; otherwise, false. If the item is a duplicate, and the underlying collection does not accept duplicate items, then an is thrown. + The item to be added to the collection. + The number of milliseconds to wait, or (-1) to wait indefinitely. + A cancellation token to observe. + If the is canceled. + The has been disposed or the underlying has been disposed. + + is a negative number other than -1, which represents an infinite time-out. + The has been marked as complete with regards to additions.-or-The underlying collection didn't accept the item. + + + Tries to add the specified item to the . + true if the could be added to the collection within the specified time span; otherwise, false. + The item to be added to the collection. + A that represents the number of milliseconds to wait, or a that represents -1 milliseconds to wait indefinitely. + The has been disposed. + + is a negative number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater than . + The has been marked as complete with regards to additions.-or-The underlying collection didn't accept the item. + + + Tries to add the specified item to any one of the specified instances. + The index of the collection in the array to which the item was added, or -1 if the item could not be added. + The array of collections. + The item to be added to one of the collections. + At least one of the instances has been disposed. + The argument is null. + The count of is greater than the maximum size of 62 for STA and 63 for MTA. + The argument is a 0-length array or contains a null element, or at least one of collections has been marked as complete for adding. + At least one underlying collection didn't accept the item. + + + Tries to add the specified item to any one of the specified instances. + The index of the collection in the array to which the item was added, or -1 if the item could not be added. + The array of collections. + The item to be added to one of the collections. + The number of milliseconds to wait, or (-1) to wait indefinitely. + At least one of the instances has been disposed. + The argument is null. + + is a negative number other than -1, which represents an infinite time-out.-or-The count of is greater than the maximum size of 62 for STA and 63 for MTA. + The argument is a 0-length array or contains a null element, or at least one of collections has been marked as complete for adding. + At least one underlying collection didn't accept the item. + + + Tries to add the specified item to any one of the specified instances. + The index of the collection in the array to which the item was added, or -1 if the item could not be added. + The array of collections. + The item to be added to one of the collections. + The number of milliseconds to wait, or (-1) to wait indefinitely. + A cancellation token to observe. + If the is canceled. + At least one underlying collection didn't accept the item. + The argument is null. + + is a negative number other than -1, which represents an infinite time-out.-or-The count of is greater than the maximum size of 62 for STA and 63 for MTA. + The argument is a 0-length array or contains a null element, or at least one of collections has been marked as complete for adding. + At least one of the instances has been disposed. + + + Tries to add the specified item to any one of the specified instances while observing the specified cancellation token. + The index of the collection in the array to which the item was added, or -1 if the item could not be added. + The array of collections. + The item to be added to one of the collections. + A that represents the number of milliseconds to wait, or a that represents -1 milliseconds to wait indefinitely. + At least one of the instances or the that created has been disposed. + The argument is null. + + is a negative number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater than .-or-The count of is greater than the maximum size of 62 for STA and 63 for MTA. + The argument is a 0-length array or contains a null element, or at least one of collections has been marked as complete for adding. + At least one underlying collection didn't accept the item. + + + Tries to remove an item from the . + true if an item could be removed; otherwise, false. + The item to be removed from the collection. + The has been disposed. + The underlying collection was modified outside of this instance. + + + Tries to remove an item from the in the specified time period. + true if an item could be removed from the collection within the specified time; otherwise, false. + The item to be removed from the collection. + The number of milliseconds to wait, or (-1) to wait indefinitely. + The has been disposed. + + is a negative number other than -1, which represents an infinite time-out. + The underlying collection was modified outside of this instance. + + + Tries to remove an item from the in the specified time period while observing a cancellation token. + true if an item could be removed from the collection within the specified time; otherwise, false. + The item to be removed from the collection. + The number of milliseconds to wait, or (-1) to wait indefinitely. + A cancellation token to observe. + The has been canceled. + The has been disposed or the underlying has been disposed. + + is a negative number other than -1, which represents an infinite time-out. + The underlying collection was modified outside this instance. + + + Tries to remove an item from the in the specified time period. + true if an item could be removed from the collection within the specified time; otherwise, false. + The item to be removed from the collection. + An object that represents the number of milliseconds to wait, or an object that represents -1 milliseconds to wait indefinitely. + The has been disposed. + + is a negative number other than -1 milliseconds, which represents an infinite time-out.-or- is greater than . + The underlying collection was modified outside of this instance. + + + Tries to remove an item from any one of the specified instances. + The index of the collection in the array from which the item was removed, or -1 if an item could not be removed. + The array of collections. + The item removed from one of the collections. + At least one of the instances has been disposed. + The argument is null. + The count of is greater than the maximum size of 62 for STA and 63 for MTA. + The argument is a 0-length array or contains a null element. + At least one of the underlying collections was modified outside of its instance. + + + Tries to remove an item from any one of the specified instances. + The index of the collection in the array from which the item was removed, or -1 if an item could not be removed. + The array of collections. + The item removed from one of the collections. + The number of milliseconds to wait, or (-1) to wait indefinitely. + At least one of the instances has been disposed. + The argument is null. + + is a negative number other than -1, which represents an infinite time-out.-or-The count of is greater than the maximum size of 62 for STA and 63 for MTA. + The argument is a 0-length array or contains a null element. + At least one of the underlying collections was modified outside of its instance. + + + Tries to remove an item from any one of the specified instances. + The index of the collection in the array from which the item was removed, or -1 if an item could not be removed. + The array of collections. + The item removed from one of the collections. + The number of milliseconds to wait, or (-1) to wait indefinitely. + A cancellation token to observe. + If the is canceled. + At least one of the underlying collections was modified outside of its instance. + The argument is null. + + is a negative number other than -1, which represents an infinite time-out.-or-The count of is greater than the maximum size of 62 for STA and 63 for MTA. + The argument is a 0-length array or contains a null element. + At least one of the instances has been disposed. + + + Tries to remove an item from any one of the specified instances. + The index of the collection in the array from which the item was removed, or -1 if an item could not be removed. + The array of collections. + The item removed from one of the collections. + A that represents the number of milliseconds to wait, or a that represents -1 milliseconds to wait indefinitely. + At least one of the instances has been disposed. + The argument is null. + + is a negative number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater than .-or-The count of is greater than the maximum size of 62 for STA and 63 for MTA. + The argument is a 0-length array or contains a null element. + At least one of the underlying collections was modified outside of its instance. + + + Represents a thread-safe, unordered collection of objects. + The type of the elements to be stored in the collection. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class that contains elements copied from the specified collection. + The collection whose elements are copied to the new . + + is a null reference (Nothing in Visual Basic). + + + Adds an object to the . + The object to be added to the . The value can be a null reference (Nothing in Visual Basic) for reference types. + + + Copies the elements to an existing one-dimensional , starting at the specified array index. + The one-dimensional that is the destination of the elements copied from the . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is a null reference (Nothing in Visual Basic). + + is less than zero. + + is equal to or greater than the length of the -or- the number of elements in the source is greater than the available space from to the end of the destination . + + + Gets the number of elements contained in the . + The number of elements contained in the . + + + Returns an enumerator that iterates through the . + An enumerator for the contents of the . + + + Gets a value that indicates whether the is empty. + true if the is empty; otherwise, false. + + + Attempts to add an object to the . + Always returns true + The object to be added to the . The value can be a null reference (Nothing in Visual Basic) for reference types. + + + Copies the elements of the to an , starting at a particular index. + The one-dimensional that is the destination of the elements copied from the . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is a null reference (Nothing in Visual Basic). + + is less than zero. + + is multidimensional. -or- does not have zero-based indexing. -or- is equal to or greater than the length of the -or- The number of elements in the source is greater than the available space from to the end of the destination . -or- The type of the source cannot be cast automatically to the type of the destination . + + + Gets a value indicating whether access to the is synchronized with the SyncRoot. + true if access to the is synchronized with the SyncRoot; otherwise, false. For , this property always returns false. + + + Gets an object that can be used to synchronize access to the . This property is not supported. + Returns null (Nothing in Visual Basic). + The SyncRoot property is not supported. + + + Returns an enumerator that iterates through the . + An enumerator for the contents of the . + + + Copies the elements to a new array. + A new array containing a snapshot of elements copied from the . + + + Attempts to return an object from the without removing it. + true if and object was returned successfully; otherwise, false. + When this method returns, contains an object from the or the default value of if the operation failed. + + + Attempts to remove and return an object from the . + true if an object was removed successfully; otherwise, false. + When this method returns, contains the object removed from the or the default value of if the bag is empty. + + + Provides the base interface for the abstraction of sets. + The type of elements in the set. + + + Adds an element to the current set and returns a value to indicate if the element was successfully added. + true if the element is added to the set; false if the element is already in the set. + The element to add to the set. + + + Removes all elements in the specified collection from the current set. + The collection of items to remove from the set. + + is null. + + + Modifies the current set so that it contains only elements that are also in a specified collection. + The collection to compare to the current set. + + is null. + + + Determines whether the current set is a proper (strict) subset of a specified collection. + true if the current set is a proper subset of ; otherwise, false. + The collection to compare to the current set. + + is null. + + + Determines whether the current set is a proper (strict) superset of a specified collection. + true if the current set is a proper superset of ; otherwise, false. + The collection to compare to the current set. + + is null. + + + Determines whether a set is a subset of a specified collection. + true if the current set is a subset of ; otherwise, false. + The collection to compare to the current set. + + is null. + + + Determines whether the current set is a superset of a specified collection. + true if the current set is a superset of ; otherwise, false. + The collection to compare to the current set. + + is null. + + + Determines whether the current set overlaps with the specified collection. + true if the current set and share at least one common element; otherwise, false. + The collection to compare to the current set. + + is null. + + + Determines whether the current set and the specified collection contain the same elements. + true if the current set is equal to ; otherwise, false. + The collection to compare to the current set. + + is null. + + + Modifies the current set so that it contains only elements that are present either in the current set or in the specified collection, but not both. + The collection to compare to the current set. + + is null. + + + Modifies the current set so that it contains all elements that are present in either the current set or the specified collection. + The collection to compare to the current set. + + is null. + + + Represents a doubly linked list. + Specifies the element type of the linked list. + 1 + + + Initializes a new instance of the class that is empty. + + + Initializes a new instance of the class that contains elements copied from the specified and has sufficient capacity to accommodate the number of elements copied. + The whose elements are copied to the new . + + is null. + + + Initializes a new instance of the class that is serializable with the specified and . + A object containing the information required to serialize the . + A object containing the source and destination of the serialized stream associated with the . + + + Adds the specified new node after the specified existing node in the . + The after which to insert . + The new to add to the . + + is null.-or- is null. + + is not in the current .-or- belongs to another . + + + Adds a new node containing the specified value after the specified existing node in the . + The new containing . + The after which to insert a new containing . + The value to add to the . + + is null. + + is not in the current . + + + Adds the specified new node before the specified existing node in the . + The before which to insert . + The new to add to the . + + is null.-or- is null. + + is not in the current .-or- belongs to another . + + + Adds a new node containing the specified value before the specified existing node in the . + The new containing . + The before which to insert a new containing . + The value to add to the . + + is null. + + is not in the current . + + + Adds the specified new node at the start of the . + The new to add at the start of the . + + is null. + + belongs to another . + + + Adds a new node containing the specified value at the start of the . + The new containing . + The value to add at the start of the . + + + Adds the specified new node at the end of the . + The new to add at the end of the . + + is null. + + belongs to another . + + + Adds a new node containing the specified value at the end of the . + The new containing . + The value to add at the end of the . + + + Removes all nodes from the . + + + Determines whether a value is in the . + true if is found in the ; otherwise, false. + The value to locate in the . The value can be null for reference types. + + + Copies the entire to a compatible one-dimensional , starting at the specified index of the target array. + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than zero. + The number of elements in the source is greater than the available space from to the end of the destination . + + + Gets the number of nodes actually contained in the . + The number of nodes actually contained in the . + + + Finds the first node that contains the specified value. + The first that contains the specified value, if found; otherwise, null. + The value to locate in the . + + + Finds the last node that contains the specified value. + The last that contains the specified value, if found; otherwise, null. + The value to locate in the . + + + Gets the first node of the . + The first of the . + + + Returns an enumerator that iterates through the . + An for the . + + + Implements the interface and returns the data needed to serialize the instance. + A object that contains the information required to serialize the instance. + A object that contains the source and destination of the serialized stream associated with the instance. + + is null. + + + Gets the last node of the . + The last of the . + + + Implements the interface and raises the deserialization event when the deserialization is complete. + The source of the deserialization event. + The object associated with the current instance is invalid. + + + Removes the specified node from the . + The to remove from the . + + is null. + + is not in the current . + + + Removes the first occurrence of the specified value from the . + true if the element containing is successfully removed; otherwise, false. This method also returns false if was not found in the original . + The value to remove from the . + + + Removes the node at the start of the . + The is empty. + + + Removes the node at the end of the . + The is empty. + + + Adds an item at the end of the . + The value to add at the end of the . + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. In the default implementation of , this property always returns false. + + + Returns an enumerator that iterates through a collection. + An that can be used to iterate through the collection. + + + Copies the elements of the to an , starting at a particular index. + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than zero. + + is multidimensional.-or- does not have zero-based indexing.-or-The number of elements in the source is greater than the available space from to the end of the destination .-or-The type of the source cannot be cast automatically to the type of the destination . + + + Gets a value indicating whether access to the is synchronized (thread safe). + true if access to the is synchronized (thread safe); otherwise, false. In the default implementation of , this property always returns false. + + + Gets an object that can be used to synchronize access to the . + An object that can be used to synchronize access to the . In the default implementation of , this property always returns the current instance. + + + Returns an enumerator that iterates through the linked list as a collection. + An that can be used to iterate through the linked list as a collection. + + + Enumerates the elements of a . + + + Gets the element at the current position of the enumerator. + The element in the at the current position of the enumerator. + + + Releases all resources used by the . + + + Advances the enumerator to the next element of the . + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + The collection was modified after the enumerator was created. + + + Gets the element at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + The enumerator is positioned before the first element of the collection or after the last element. + + + Sets the enumerator to its initial position, which is before the first element in the collection. This class cannot be inherited. + The collection was modified after the enumerator was created. + + + Implements the interface and raises the deserialization event when the deserialization is complete. + The source of the deserialization event. + The object associated with the current instance is invalid. + + + Implements the interface and returns the data needed to serialize the instance. + A object that contains the information required to serialize the instance. + A object that contains the source and destination of the serialized stream associated with the instance. + + is null. + + + Represents a node in a . This class cannot be inherited. + Specifies the element type of the linked list. + 1 + + + Initializes a new instance of the class, containing the specified value. + The value to contain in the . + + + Gets the that the belongs to. + A reference to the that the belongs to, or null if the is not linked. + + + Gets the next node in the . + A reference to the next node in the , or null if the current node is the last element () of the . + + + Gets the previous node in the . + A reference to the previous node in the , or null if the current node is the first element () of the . + + + Gets the value contained in the node. + The value contained in the node. + + + Represents a first-in, first-out collection of objects. + Specifies the type of elements in the queue. + 1 + + + Initializes a new instance of the class that is empty and has the default initial capacity. + + + Initializes a new instance of the class that contains elements copied from the specified collection and has sufficient capacity to accommodate the number of elements copied. + The collection whose elements are copied to the new . + + is null. + + + Initializes a new instance of the class that is empty and has the specified initial capacity. + The initial number of elements that the can contain. + + is less than zero. + + + Removes all objects from the . + 1 + + + Determines whether an element is in the . + true if is found in the ; otherwise, false. + The object to locate in the . The value can be null for reference types. + + + Copies the elements to an existing one-dimensional , starting at the specified array index. + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than zero. + The number of elements in the source is greater than the available space from to the end of the destination . + + + Gets the number of elements contained in the . + The number of elements contained in the . + + + Removes and returns the object at the beginning of the . + The object that is removed from the beginning of the . + The is empty. + + + Adds an object to the end of the . + The object to add to the . The value can be null for reference types. + + + Returns an enumerator that iterates through the . + An for the . + + + Returns the object at the beginning of the without removing it. + The object at the beginning of the . + The is empty. + + + Returns an enumerator that iterates through a collection. + An that can be used to iterate through the collection. + + + Copies the elements of the to an , starting at a particular index. + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than zero. + + is multidimensional.-or- does not have zero-based indexing.-or-The number of elements in the source is greater than the available space from to the end of the destination .-or-The type of the source cannot be cast automatically to the type of the destination . + + + Gets a value indicating whether access to the is synchronized (thread safe). + true if access to the is synchronized (thread safe); otherwise, false. In the default implementation of , this property always returns false. + + + Gets an object that can be used to synchronize access to the . + An object that can be used to synchronize access to the . In the default implementation of , this property always returns the current instance. + + + Returns an enumerator that iterates through a collection. + An that can be used to iterate through the collection. + + + Copies the elements to a new array. + A new array containing elements copied from the . + + + Sets the capacity to the actual number of elements in the , if that number is less than 90 percent of current capacity. + + + Enumerates the elements of a . + + + Gets the element at the current position of the enumerator. + The element in the at the current position of the enumerator. + The enumerator is positioned before the first element of the collection or after the last element. + + + Releases all resources used by the . + + + Advances the enumerator to the next element of the . + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + The collection was modified after the enumerator was created. + + + Gets the element at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + The enumerator is positioned before the first element of the collection or after the last element. + + + Sets the enumerator to its initial position, which is before the first element in the collection. + The collection was modified after the enumerator was created. + + + Represents a collection of key/value pairs that are sorted on the key. + The type of the keys in the dictionary. + The type of the values in the dictionary. + 1 + + + Initializes a new instance of the class that is empty and uses the default implementation for the key type. + + + Initializes a new instance of the class that is empty and uses the specified implementation to compare keys. + The implementation to use when comparing keys, or null to use the default for the type of the key. + + + Initializes a new instance of the class that contains elements copied from the specified and uses the default implementation for the key type. + The whose elements are copied to the new . + + is null. + + contains one or more duplicate keys. + + + Initializes a new instance of the class that contains elements copied from the specified and uses the specified implementation to compare keys. + The whose elements are copied to the new . + The implementation to use when comparing keys, or null to use the default for the type of the key. + + is null. + + contains one or more duplicate keys. + + + Adds an element with the specified key and value into the . + The key of the element to add. + The value of the element to add. The value can be null for reference types. + + is null. + An element with the same key already exists in the . + + + Removes all elements from the . + + + Gets the used to order the elements of the . + The used to order the elements of the + + + Determines whether the contains an element with the specified key. + true if the contains an element with the specified key; otherwise, false. + The key to locate in the . + + is null. + + + Determines whether the contains an element with the specified value. + true if the contains an element with the specified value; otherwise, false. + The value to locate in the . The value can be null for reference types. + + + Copies the elements of the to the specified array of structures, starting at the specified index. + The one-dimensional array of structures that is the destination of the elements copied from the current The array must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than 0. + The number of elements in the source is greater than the available space from to the end of the destination . + + + Gets the number of key/value pairs contained in the . + The number of key/value pairs contained in the . + + + Returns an enumerator that iterates through the . + A for the . + + + Gets or sets the value associated with the specified key. + The value associated with the specified key. If the specified key is not found, a get operation throws a , and a set operation creates a new element with the specified key. + The key of the value to get or set. + + is null. + The property is retrieved and does not exist in the collection. + + + Gets a collection containing the keys in the . + A containing the keys in the . + + + Removes the element with the specified key from the . + true if the element is successfully removed; otherwise, false. This method also returns false if is not found in the . + The key of the element to remove. + + is null. + + + Adds an item to the . + The structure to add to the . + + is null. + An element with the same key already exists in the . + + + Determines whether the contains a specific key and value. + true if is found in the ; otherwise, false. + The structure to locate in the . + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. In the default implementation of , this property always returns false. + + + Removes the first occurrence of the specified element from the . + true if was successfully removed from the ; otherwise, false. This method also returns false if was not found in the . + The structure to remove from the . + + + Gets an containing the keys of the . + An containing the keys of the . + + + Gets an containing the values in the . + An containing the values in the . + + + Returns an enumerator that iterates through a collection. + An that can be used to iterate through the collection. + + + Copies the elements of the to an array, starting at the specified array index. + The one-dimensional array that is the destination of the elements copied from the . The array must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than 0. + + is multidimensional.-or- does not have zero-based indexing.-or-The number of elements in the source is greater than the available space from to the end of the destination .-or-The type of the source cannot be cast automatically to the type of the destination . + + + Gets a value indicating whether access to the is synchronized (thread safe). + true if access to the is synchronized (thread safe); otherwise, false. In the default implementation of , this property always returns false. + + + Gets an object that can be used to synchronize access to the . + An object that can be used to synchronize access to the . + + + Adds an element with the provided key and value to the . + The object to use as the key of the element to add. + The object to use as the value of the element to add. + + is null. + + is of a type that is not assignable to the key type of the .-or- is of a type that is not assignable to the value type of the .-or-An element with the same key already exists in the . + + + Determines whether the contains an element with the specified key. + true if the contains an element with the key; otherwise, false. + The key to locate in the . + + is null. + + + Returns an for the . + An for the . + + + Gets a value indicating whether the has a fixed size. + true if the has a fixed size; otherwise, false. In the default implementation of , this property always returns false. + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. In the default implementation of , this property always returns false. + + + Gets or sets the element with the specified key. + The element with the specified key, or null if is not in the dictionary or is of a type that is not assignable to the key type of the . + The key of the element to get. + + is null. + A value is being assigned, and is of a type that is not assignable to the key type of the .-or-A value is being assigned, and is of a type that is not assignable to the value type of the . + + + Gets an containing the keys of the . + An containing the keys of the . + + + Removes the element with the specified key from the . + The key of the element to remove. + + is null. + + + Gets an containing the values in the . + An containing the values in the . + + + Returns an enumerator that iterates through the collection. + An that can be used to iterate through the collection. + + + Gets the value associated with the specified key. + true if the contains an element with the specified key; otherwise, false. + The key of the value to get. + When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the parameter. + + is null. + + + Gets a collection containing the values in the . + A containing the values in the . + + + Enumerates the elements of a . + + + Gets the element at the current position of the enumerator. + The element in the at the current position of the enumerator. + + + Releases all resources used by the . + + + Advances the enumerator to the next element of the . + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + The collection was modified after the enumerator was created. + + + Gets the element at the current position of the enumerator as a structure. + The element in the collection at the current position of the dictionary, as a structure. + The enumerator is positioned before the first element of the collection or after the last element. + + + Gets the key of the element at the current position of the enumerator. + The key of the element in the collection at the current position of the enumerator. + The enumerator is positioned before the first element of the collection or after the last element. + + + Gets the value of the element at the current position of the enumerator. + The value of the element in the collection at the current position of the enumerator. + The enumerator is positioned before the first element of the collection or after the last element. + + + Gets the element at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + The enumerator is positioned before the first element of the collection or after the last element. + + + Sets the enumerator to its initial position, which is before the first element in the collection. + The collection was modified after the enumerator was created. + + + Represents the collection of keys in a . This class cannot be inherited. + + + Initializes a new instance of the class that reflects the keys in the specified . + The whose keys are reflected in the new . + + is null. + + + Copies the elements to an existing one-dimensional array, starting at the specified array index. + The one-dimensional array that is the destination of the elements copied from the . The array must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than 0. + The number of elements in the source is greater than the available space from to the end of the destination . + + + Gets the number of elements contained in the . + The number of elements contained in the . + + + Returns an enumerator that iterates through the . + A structure for the . + + + Adds an item to the . This implementation always throws a . + The object to add to the . + Always thrown; the collection is read-only. + + + Removes all items from the . This implementation always throws a . + Always thrown; the collection is read-only. + + + Determines whether the contains the specified value. + true if is found in the ; otherwise, false. + The object to locate in the . + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. In the default implementation of , this property always returns false. + + + Removes the first occurrence of a specific object from the . This implementation always throws a . + true if is successfully removed from the ; otherwise, false. This method also returns false if is not found in the . + The object to remove from the . + Always thrown; the collection is read-only. + + + Returns an enumerator that iterates through the collection. + An that can be used to iterate through the collection. + + + Copies the elements of the to an array, starting at a particular array index. + The one-dimensional array that is the destination of the elements copied from the . The array must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than 0. + + is multidimensional.-or- does not have zero-based indexing.-or-The number of elements in the source is greater than the available space from to the end of the destination .-or-The type of the source cannot be cast automatically to the type of the destination . + + + Gets a value indicating whether access to the is synchronized (thread safe). + true if access to the is synchronized (thread safe); otherwise, false. In the default implementation of , this property always returns false. + + + Gets an object that can be used to synchronize access to the . + An object that can be used to synchronize access to the . In the default implementation of , this property always returns the current instance. + + + Returns an enumerator that iterates through the collection. + An that can be used to iterate through the collection. + + + Enumerates the elements of a . + + + Gets the element at the current position of the enumerator. + The element in the at the current position of the enumerator. + + + Releases all resources used by the . + + + Advances the enumerator to the next element of the . + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + The collection was modified after the enumerator was created. + + + Gets the element at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + The enumerator is positioned before the first element of the collection or after the last element. + + + Sets the enumerator to its initial position, which is before the first element in the collection. + The collection was modified after the enumerator was created. + + + Represents the collection of values in a . This class cannot be inherited + + + Initializes a new instance of the class that reflects the values in the specified . + The whose values are reflected in the new . + + is null. + + + Copies the elements to an existing one-dimensional array, starting at the specified array index. + The one-dimensional array that is the destination of the elements copied from the . The array must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than 0. + The number of elements in the source is greater than the available space from to the end of the destination . + + + Gets the number of elements contained in the . + The number of elements contained in the . + + + Returns an enumerator that iterates through the . + A structure for the . + + + Adds an item to the . This implementation always throws a . + The object to add to the . + Always thrown; the collection is read-only. + + + Removes all items from the . This implementation always throws a . + Always thrown; the collection is read-only. + + + Determines whether the contains a specified value. + true if is found in the ; otherwise, false. + The object to locate in the . + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. In the default implementation of , this property always returns false. + + + Removes the first occurrence of a specific object from the . This implementation always throws a . + true if is successfully removed from the ; otherwise, false. This method also returns false if is not found in the . + The object to remove from the . + Always thrown; the collection is read-only. + + + Removes the first occurrence of a specific object from the . This implementation always throws a . + true if is successfully removed from the ; otherwise, false. This method also returns false if is not found in the . + Always thrown; the collection is read-only. + + + Copies the elements of the to an array, starting at a particular array index. + The one-dimensional array that is the destination of the elements copied from the . The array must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than 0. + + is multidimensional.-or- does not have zero-based indexing.-or-The number of elements in the source is greater than the available space from to the end of the destination .-or-The type of the source cannot be cast automatically to the type of the destination . + + + Gets a value indicating whether access to the is synchronized (thread safe). + true if access to the is synchronized (thread safe); otherwise, false. In the default implementation of , this property always returns false. + + + Gets an object that can be used to synchronize access to the . + An object that can be used to synchronize access to the . In the default implementation of , this property always returns the current instance. + + + Returns an enumerator that iterates through the collection. + An that can be used to iterate through the collection. + + + Enumerates the elements of a . + + + Gets the element at the current position of the enumerator. + The element in the at the current position of the enumerator. + + + Releases all resources used by the . + + + Advances the enumerator to the next element of the . + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + The collection was modified after the enumerator was created. + + + Gets the element at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + The enumerator is positioned before the first element of the collection or after the last element. + + + Sets the enumerator to its initial position, which is before the first element in the collection. + The collection was modified after the enumerator was created. + + + Represents a collection of key/value pairs that are sorted by key based on the associated implementation. + The type of keys in the collection. + The type of values in the collection. + + + Initializes a new instance of the class that is empty, has the default initial capacity, and uses the default . + + + Initializes a new instance of the class that is empty, has the default initial capacity, and uses the specified . + The implementation to use when comparing keys.-or-null to use the default for the type of the key. + + + Initializes a new instance of the class that contains elements copied from the specified , has sufficient capacity to accommodate the number of elements copied, and uses the default . + The whose elements are copied to the new . + + is null. + + contains one or more duplicate keys. + + + Initializes a new instance of the class that contains elements copied from the specified , has sufficient capacity to accommodate the number of elements copied, and uses the specified . + The whose elements are copied to the new . + The implementation to use when comparing keys.-or-null to use the default for the type of the key. + + is null. + + contains one or more duplicate keys. + + + Initializes a new instance of the class that is empty, has the specified initial capacity, and uses the default . + The initial number of elements that the can contain. + + is less than zero. + + + Initializes a new instance of the class that is empty, has the specified initial capacity, and uses the specified . + The initial number of elements that the can contain. + The implementation to use when comparing keys.-or-null to use the default for the type of the key. + + is less than zero. + + + Adds an element with the specified key and value into the . + The key of the element to add. + The value of the element to add. The value can be null for reference types. + + is null. + An element with the same key already exists in the . + + + Gets or sets the number of elements that the can contain. + The number of elements that the can contain. + + is set to a value that is less than . + There is not enough memory available on the system. + + + Removes all elements from the . + + + Gets the for the sorted list. + The for the current . + + + Determines whether the contains a specific key. + true if the contains an element with the specified key; otherwise, false. + The key to locate in the . + + is null. + + + Determines whether the contains a specific value. + true if the contains an element with the specified value; otherwise, false. + The value to locate in the . The value can be null for reference types. + + + Gets the number of key/value pairs contained in the . + The number of key/value pairs contained in the . + + + Returns an enumerator that iterates through the . + An of type for the . + + + Searches for the specified key and returns the zero-based index within the entire . + The zero-based index of within the entire , if found; otherwise, -1. + The key to locate in the . + + is null. + + + Searches for the specified value and returns the zero-based index of the first occurrence within the entire . + The zero-based index of the first occurrence of within the entire , if found; otherwise, -1. + The value to locate in the . The value can be null for reference types. + + + Gets or sets the value associated with the specified key. + The value associated with the specified key. If the specified key is not found, a get operation throws a and a set operation creates a new element using the specified key. + The key whose value to get or set. + + is null. + The property is retrieved and does not exist in the collection. + + + Gets a collection containing the keys in the , in sorted order. + A containing the keys in the . + + + Removes the element with the specified key from the . + true if the element is successfully removed; otherwise, false. This method also returns false if was not found in the original . + The key of the element to remove. + + is null. + + + Removes the element at the specified index of the . + The zero-based index of the element to remove. + + is less than zero.-or- is equal to or greater than . + + + Adds a key/value pair to the . + The to add to the . + + + Determines whether the contains a specific element. + true if is found in the ; otherwise, false. + The to locate in the . + + + Copies the elements of the to an , starting at a particular index. + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than zero. + The number of elements in the source is greater than the available space from to the end of the destination . + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. In the default implementation of , this property always returns false. + + + Removes the first occurrence of a specific key/value pair from the . + true if was successfully removed from the ; otherwise, false. This method also returns false if was not found in the original . + The to remove from the . + + + Gets an containing the keys of the . + An containing the keys of the . + + + Gets an containing the values in the . + An containing the values in the . + + + Returns an enumerator that iterates through a collection. + An that can be used to iterate through the collection. + + + Copies the elements of the to an , starting at a particular index. + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than zero. + + is multidimensional.-or- does not have zero-based indexing.-or-The number of elements in the source is greater than the available space from to the end of the destination .-or-The type of the source cannot be cast automatically to the type of the destination . + + + Gets a value indicating whether access to the is synchronized (thread safe). + true if access to the is synchronized (thread safe); otherwise, false. In the default implementation of , this property always returns false. + + + Gets an object that can be used to synchronize access to the . + An object that can be used to synchronize access to the . In the default implementation of , this property always returns the current instance. + + + Adds an element with the provided key and value to the . + The to use as the key of the element to add. + The to use as the value of the element to add. + + is null. + + is of a type that is not assignable to the key type of the .-or- is of a type that is not assignable to the value type of the .-or-An element with the same key already exists in the . + + + Determines whether the contains an element with the specified key. + true if the contains an element with the key; otherwise, false. + The key to locate in the . + + is null. + + + Returns an for the . + An for the . + + + Gets a value indicating whether the has a fixed size. + true if the has a fixed size; otherwise, false. In the default implementation of , this property always returns false. + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. In the default implementation of , this property always returns false. + + + Gets or sets the element with the specified key. + The element with the specified key, or null if is not in the dictionary or is of a type that is not assignable to the key type of the . + The key of the element to get or set. + + is null. + A value is being assigned, and is of a type that is not assignable to the key type of the .-or-A value is being assigned, and is of a type that is not assignable to the value type of the . + + + Gets an containing the keys of the . + An containing the keys of the . + + + Removes the element with the specified key from the . + The key of the element to remove. + + is null. + + + Gets an containing the values in the . + An containing the values in the . + + + Returns an enumerator that iterates through a collection. + An that can be used to iterate through the collection. + + + Sets the capacity to the actual number of elements in the , if that number is less than 90 percent of current capacity. + + + Gets the value associated with the specified key. + true if the contains an element with the specified key; otherwise, false. + The key whose value to get. + When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized. + + is null. + + + Gets a collection containing the values in the . + A containing the values in the . + + + Represents a collection of objects that is maintained in sorted order. + The type of elements in the set. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class that uses a specified comparer. + The default comparer to use for comparing objects. + + is null. + + + Initializes a new instance of the class that contains elements copied from a specified enumerable collection. + The enumerable collection to be copied. + + + Initializes a new instance of the class that contains elements copied from a specified enumerable collection and that uses a specified comparer. + The enumerable collection to be copied. + The default comparer to use for comparing objects. + + is null. + + + Initializes a new instance of the class that contains serialized data. + The object that contains the information that is required to serialize the object. + The structure that contains the source and destination of the serialized stream associated with the object. + + + Adds an element to the set and returns a value that indicates if it was successfully added. + true if is added to the set; otherwise, false. + The element to add to the set. + + + Removes all elements from the set. + + + Gets the object that is used to determine equality for the values in the . + The comparer that is used to determine equality for the values in the . + + + Determines whether the set contains a specific element. + true if the set contains ; otherwise, false. + The element to locate in the set. + + + Copies the complete to a compatible one-dimensional array, starting at the beginning of the target array. + A one-dimensional array that is the destination of the elements copied from the . + The number of elements in the source exceeds the number of elements that the destination array can contain. + + is null. + + + Copies the complete to a compatible one-dimensional array, starting at the specified array index. + A one-dimensional array that is the destination of the elements copied from the . The array must have zero-based indexing. + The zero-based index in at which copying begins. + The number of elements in the source array is greater than the available space from to the end of the destination array. + + is null. + + is less than zero. + + + Copies a specified number of elements from to a compatible one-dimensional array, starting at the specified array index. + A one-dimensional array that is the destination of the elements copied from the . The array must have zero-based indexing. + The zero-based index in at which copying begins. + The number of elements to copy. + The number of elements in the source array is greater than the available space from to the end of the destination array. + + is null. + + is less than zero.-or- is less than zero. + + + Gets the number of elements in the . + The number of elements in the . + + + Returns an object that can be used to create a collection that contains individual sets. + A comparer for creating a collection of sets. + + + Returns an object, according to a specified comparer, that can be used to create a collection that contains individual sets. + A comparer for creating a collection of sets. + The comparer to use for creating the returned comparer. + + + Removes all elements that are in a specified collection from the current object. + The collection of items to remove from the object. + + is null. + + + Returns an enumerator that iterates through the . + An enumerator that iterates through the in sorted order. + + + Implements the interface and returns the data that you must have to serialize a object. + A object that contains the information that is required to serialize the object. + A structure that contains the source and destination of the serialized stream associated with the object. + + is null. + + + Returns a view of a subset in a . + A subset view that contains only the values in the specified range. + The lowest desired value in the view. + The highest desired value in the view. + + is more than according to the comparer. + A tried operation on the view was outside the range specified by and . + + + Modifies the current object so that it contains only elements that are also in a specified collection. + The collection to compare to the current object. + + is null. + + + Determines whether a object is a proper subset of the specified collection. + true if the object is a proper subset of ; otherwise, false. + The collection to compare to the current object. + + is null. + + + Determines whether a object is a proper superset of the specified collection. + true if the object is a proper superset of ; otherwise, false. + The collection to compare to the current object. + + is null. + + + Determines whether a object is a subset of the specified collection. + true if the current object is a subset of ; otherwise, false. + The collection to compare to the current object. + + is null. + + + Determines whether a object is a superset of the specified collection. + true if the object is a superset of ; otherwise, false. + The collection to compare to the current object. + + is null. + + + Gets the maximum value in the , as defined by the comparer. + The maximum value in the set. + + + Gets the minimum value in the , as defined by the comparer. + The minimum value in the set. + + + Implements the interface, and raises the deserialization event when the deserialization is completed. + The source of the deserialization event. + The object associated with the current object is invalid. + + + Determines whether the current object and a specified collection share common elements. + true if the object and share at least one common element; otherwise, false. + The collection to compare to the current object. + + is null. + + + Removes a specified item from the . + true if the element is found and successfully removed; otherwise, false. + The element to remove. + + + Removes all elements that match the conditions defined by the specified predicate from a . + The number of elements that were removed from the collection.. + The delegate that defines the conditions of the elements to remove. + + is null. + + + Returns an that iterates over the in reverse order. + An enumerator that iterates over the in reverse order. + + + Determines whether the current object and the specified collection contain the same elements. + true if the current object is equal to ; otherwise, false. + The collection to compare to the current object. + + is null. + + + Modifies the current object so that it contains only elements that are present either in the current object or in the specified collection, but not both. + The collection to compare to the current object. + + is null. + + + Adds an item to an object. + The object to add to the object. + The is read-only. + + + Gets a value that indicates whether a is read-only. + true if the collection is read-only; otherwise, false. + + + Returns an enumerator that iterates through a collection. + An enumerator that can be used to iterate through the collection. + + + Copies the complete to a compatible one-dimensional array, starting at the specified array index. + A one-dimensional array that is the destination of the elements copied from the . The array must have zero-based indexing. + The zero-based index in at which copying begins. + The number of elements in the source array is greater than the available space from to the end of the destination array. + + is null. + + is less than zero. + + + Gets a value that indicates whether access to the is synchronized (thread safe). + true if access to the is synchronized; otherwise, false. + + + Gets an object that can be used to synchronize access to the . + An object that can be used to synchronize access to the . In the default implementation of , this property always returns the current instance. + + + Returns an enumerator that iterates through a collection. + An enumerator that can be used to iterate through the collection. + + + Implements the interface, and raises the deserialization event when the deserialization is completed. + The source of the deserialization event. + The object associated with the current instance is invalid. + + + Implements the interface, and returns the data that you need to serialize the instance. + A object that contains the information that is required to serialize the instance. + A structure that contains the source and destination of the serialized stream associated with the instance. + + is null. + + + Modifies the current object so that it contains all elements that are present in either the current object or the specified collection. + The collection to compare to the current object. + + is null. + + + Enumerates the elements of a object. + + + Gets the element at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + + + Releases all resources used by the . + + + Advances the enumerator to the next element of the collection. + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + The collection was modified after the enumerator was created. + + + Gets the element at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + The enumerator is positioned before the first element of the collection or after the last element. + + + Sets the enumerator to its initial position, which is before the first element in the collection. + The collection was modified after the enumerator was created. + + + Implements the interface and raises the deserialization event when the deserialization is complete. + The source of the deserialization event. + The object associated with the current instance is invalid. + + + Implements the interface and returns the data needed to serialize the instance. + A object that contains the information required to serialize the instance. + A object that contains the source and destination of the serialized stream associated with the instance. + + is null. + + + Represents a variable size last-in-first-out (LIFO) collection of instances of the same arbitrary type. + Specifies the type of elements in the stack. + 1 + + + Initializes a new instance of the class that is empty and has the default initial capacity. + + + Initializes a new instance of the class that contains elements copied from the specified collection and has sufficient capacity to accommodate the number of elements copied. + The collection to copy elements from. + + is null. + + + Initializes a new instance of the class that is empty and has the specified initial capacity or the default initial capacity, whichever is greater. + The initial number of elements that the can contain. + + is less than zero. + + + Removes all objects from the . + 1 + + + Determines whether an element is in the . + true if is found in the ; otherwise, false. + The object to locate in the . The value can be null for reference types. + + + Copies the to an existing one-dimensional , starting at the specified array index. + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than zero. + The number of elements in the source is greater than the available space from to the end of the destination . + + + Gets the number of elements contained in the . + The number of elements contained in the . + + + Returns an enumerator for the . + An for the . + + + Returns the object at the top of the without removing it. + The object at the top of the . + The is empty. + + + Removes and returns the object at the top of the . + The object removed from the top of the . + The is empty. + + + Inserts an object at the top of the . + The object to push onto the . The value can be null for reference types. + + + Returns an enumerator that iterates through the collection. + An that can be used to iterate through the collection. + + + Copies the elements of the to an , starting at a particular index. + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than zero. + + is multidimensional.-or- does not have zero-based indexing.-or-The number of elements in the source is greater than the available space from to the end of the destination .-or-The type of the source cannot be cast automatically to the type of the destination . + + + Gets a value indicating whether access to the is synchronized (thread safe). + true if access to the is synchronized (thread safe); otherwise, false. In the default implementation of , this property always returns false. + + + Gets an object that can be used to synchronize access to the . + An object that can be used to synchronize access to the . In the default implementation of , this property always returns the current instance. + + + Returns an enumerator that iterates through a collection. + An that can be used to iterate through the collection. + + + Copies the to a new array. + A new array containing copies of the elements of the . + + + Sets the capacity to the actual number of elements in the , if that number is less than 90 percent of current capacity. + + + Enumerates the elements of a . + + + Gets the element at the current position of the enumerator. + The element in the at the current position of the enumerator. + The enumerator is positioned before the first element of the collection or after the last element. + + + Releases all resources used by the . + + + Advances the enumerator to the next element of the . + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + The collection was modified after the enumerator was created. + + + Gets the element at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + The enumerator is positioned before the first element of the collection or after the last element. + + + Sets the enumerator to its initial position, which is before the first element in the collection. This class cannot be inherited. + The collection was modified after the enumerator was created. + + + Represents a dynamic data collection that provides notifications when items get added, removed, or when the whole list is refreshed. + The type of elements in the collection. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class that contains elements copied from the specified collection. + The collection from which the elements are copied. + The parameter cannot be null. + + + Initializes a new instance of the class that contains elements copied from the specified list. + The list from which the elements are copied. + The parameter cannot be null. + + + Disallows reentrant attempts to change this collection. + An object that can be used to dispose of the object. + + + Checks for reentrant attempts to change this collection. + If there was a call to of which the return value has not yet been disposed of. Typically, this means when there are additional attempts to change this collection during a event. However, it depends on when derived classes choose to call . + + + Removes all items from the collection. + + + Occurs when an item is added, removed, changed, moved, or the entire list is refreshed. + + + Inserts an item into the collection at the specified index. + The zero-based index at which should be inserted. + The object to insert. + + + Moves the item at the specified index to a new location in the collection. + The zero-based index specifying the location of the item to be moved. + The zero-based index specifying the new location of the item. + + + Moves the item at the specified index to a new location in the collection. + The zero-based index specifying the location of the item to be moved. + The zero-based index specifying the new location of the item. + + + Raises the event with the provided arguments. + Arguments of the event being raised. + + + Raises the event with the provided arguments. + Arguments of the event being raised. + + + Occurs when a property value changes. + + + Removes the item at the specified index of the collection. + The zero-based index of the element to remove. + + + Replaces the element at the specified index. + The zero-based index of the element to replace. + The new value for the element at the specified index. + + + Occurs when a property value changes. + + + Represents a read-only . + The type of elements in the collection. + + + Initializes a new instance of the class that serves as a wrapper around the specified . + The with which to create this instance of the class. + + is null. + + + Occurs when an item is added or removed. + + + Raises the event using the provided arguments. + Arguments of the event being raised. + + + Raises the event using the provided arguments. + Arguments of the event being raised. + + + Occurs when a property value changes. + + + Occurs when the collection changes. + + + Occurs when a property value changes. + + + Provides a simple structure that stores Boolean values and small integers in 32 bits of memory. + + + Initializes a new instance of the structure containing the data represented in an existing structure. + A structure that contains the data to copy. + + + Initializes a new instance of the structure containing the data represented in an integer. + An integer representing the data of the new . + + + Creates the first mask in a series of masks that can be used to retrieve individual bits in a that is set up as bit flags. + A mask that isolates the first bit flag in the . + + + + + + Creates an additional mask following the specified mask in a series of masks that can be used to retrieve individual bits in a that is set up as bit flags. + A mask that isolates the bit flag following the one that points to in . + The mask that indicates the previous bit flag. + + indicates the last bit flag in the . + + + Creates the first in a series of sections that contain small integers. + A that can hold a number from zero to . + A 16-bit signed integer that specifies the maximum value for the new . + + is less than 1. + + + Creates a new following the specified in a series of sections that contain small integers. + A that can hold a number from zero to . + A 16-bit signed integer that specifies the maximum value for the new . + The previous in the . + + is less than 1. + + includes the final bit in the .-or- is greater than the highest value that can be represented by the number of bits after . + + + Gets the value of the as an integer. + The value of the as an integer. + + + Determines whether the specified object is equal to the . + true if the specified object is equal to the ; otherwise, false. + The object to compare with the current . + + + Serves as a hash function for the . + A hash code for the . + + + Gets or sets the value stored in the specified . + The value stored in the specified . + A that contains the value to get or set. + + + Gets or sets the state of the bit flag indicated by the specified mask. + true if the specified bit flag is on (1); otherwise, false. + A mask that indicates the bit to get or set. + + + Returns a string that represents the current . + A string that represents the current . + + + Returns a string that represents the specified . + A string that represents the specified . + The to represent. + + + Represents a section of the vector that can contain an integer number. + + + Determines whether the specified object is the same as the current object. + true if the parameter is the same as the current object; otherwise false. + The object to compare with the current object. + + + Determines whether the specified object is the same as the current object. + true if the specified object is the same as the current object; otherwise, false. + The object to compare with the current . + + + Serves as a hash function for the current , suitable for hashing algorithms and data structures, such as a hash table. + A hash code for the current . + + + Gets a mask that isolates this section within the . + A mask that isolates this section within the . + + + Gets the offset of this section from the start of the . + The offset of this section from the start of the . + + + Determines whether two specified objects are equal. + true if the and parameters represent the same object, otherwise, false. + A object. + A object. + + + Determines whether two objects have different values. + true if the and parameters represent different objects; otherwise, false. + A object. + A object. + + + Returns a string that represents the current . + A string that represents the current . + + + Returns a string that represents the specified . + A string that represents the specified . + The to represent. + + + Creates collections that ignore the case in strings. + + + Initializes a new instance of the class. + + + Creates a new case-insensitive instance of the class with the default initial capacity. + A new case-insensitive instance of the class with the default initial capacity. + + + + + + Copies the entries from the specified dictionary to a new case-insensitive instance of the class with the same initial capacity as the number of entries copied. + A new case-insensitive instance of the class containing the entries from the specified . + The to copy to a new case-insensitive . + + is null. + + + Creates a new case-insensitive instance of the class with the specified initial capacity. + A new case-insensitive instance of the class with the specified initial capacity. + The approximate number of entries that the can initially contain. + + is less than zero. + + + Creates a new instance of the class that ignores the case of strings. + A new instance of the class that ignores the case of strings. + + + Implements IDictionary by using a while the collection is small, and then switching to a when the collection gets large. + + + Creates an empty case-sensitive . + + + Creates an empty with the specified case sensitivity. + A Boolean that denotes whether the is case-insensitive. + + + Creates a case-sensitive with the specified initial size. + The approximate number of entries that the can initially contain. + + + Creates a with the specified initial size and case sensitivity. + The approximate number of entries that the can initially contain. + A Boolean that denotes whether the is case-insensitive. + + + Adds an entry with the specified key and value into the . + The key of the entry to add. + The value of the entry to add. The value can be null. + + is null. + An entry with the same key already exists in the . + + + Removes all entries from the . + + + Determines whether the contains a specific key. + true if the contains an entry with the specified key; otherwise, false. + The key to locate in the . + + is null. + + + Copies the entries to a one-dimensional instance at the specified index. + The one-dimensional that is the destination of the objects copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than zero. + + is multidimensional.-or- The number of elements in the source is greater than the available space from to the end of the destination . + The type of the source cannot be cast automatically to the type of the destination . + + + Gets the number of key/value pairs contained in the . + The number of key/value pairs contained in the .Retrieving the value of this property is an O(1) operation. + + + Returns an that iterates through the . + An for the . + + + Gets a value indicating whether the has a fixed size. + This property always returns false. + + + Gets a value indicating whether the is read-only. + This property always returns false. + + + Gets a value indicating whether the is synchronized (thread safe). + This property always returns false. + + + Gets or sets the value associated with the specified key. + The value associated with the specified key. If the specified key is not found, attempting to get it returns null, and attempting to set it creates a new entry using the specified key. + The key whose value to get or set. + + is null. + + + Gets an containing the keys in the . + An containing the keys in the . + + + Removes the entry with the specified key from the . + The key of the entry to remove. + + is null. + + + Gets an object that can be used to synchronize access to the . + An object that can be used to synchronize access to the . + + + Returns an that iterates through the . + An for the . + + + Gets an containing the values in the . + An containing the values in the . + + + Notifies listeners of dynamic changes, such as when items get added and removed or the whole list is refreshed. + + + Occurs when the collection changes. + + + Represents an indexed collection of key/value pairs. + + + Returns an enumerator that iterates through the collection. + An for the entire collection. + + + Inserts a key/value pair into the collection at the specified index. + The zero-based index at which the key/value pair should be inserted. + The object to use as the key of the element to add. + The object to use as the value of the element to add. The value can be null. + + is less than 0.-or- is greater than . + + is null. + An element with the same key already exists in the collection. + The collection is read-only.-or-The collection has a fixed size. + + + Gets or sets the element at the specified index. + The element at the specified index. + The zero-based index of the element to get or set. + + is less than 0.-or- is equal to or greater than . + + + Removes the element at the specified index. + The zero-based index of the element to remove. + + is less than 0.-or- is equal to or greater than . + The collection is read-only.-or- The collection has a fixed size. + + + Implements IDictionary using a singly linked list. Recommended for collections that typically include fewer than 10 items. + + + Creates an empty using the default comparer. + + + Creates an empty using the specified comparer. + The to use to determine whether two keys are equal.-or- null to use the default comparer, which is each key's implementation of . + + + Adds an entry with the specified key and value into the . + The key of the entry to add. + The value of the entry to add. The value can be null. + + is null. + An entry with the same key already exists in the . + + + Removes all entries from the . + + + Determines whether the contains a specific key. + true if the contains an entry with the specified key; otherwise, false. + The key to locate in the . + + is null. + + + Copies the entries to a one-dimensional instance at the specified index. + The one-dimensional that is the destination of the objects copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than zero. + + is multidimensional.-or- The number of elements in the source is greater than the available space from to the end of the destination . + The type of the source cannot be cast automatically to the type of the destination . + + + Gets the number of key/value pairs contained in the . + The number of key/value pairs contained in the . + + + Returns an that iterates through the . + An for the . + + + Gets a value indicating whether the has a fixed size. + This property always returns false. + + + Gets a value indicating whether the is read-only. + This property always returns false. + + + Gets a value indicating whether the is synchronized (thread safe). + This property always returns false. + + + Gets or sets the value associated with the specified key. + The value associated with the specified key. If the specified key is not found, attempting to get it returns null, and attempting to set it creates a new entry using the specified key. + The key whose value to get or set. + + is null. + + + Gets an containing the keys in the . + An containing the keys in the . + + + Removes the entry with the specified key from the . + The key of the entry to remove. + + is null. + + + Gets an object that can be used to synchronize access to the . + An object that can be used to synchronize access to the . + + + Returns an that iterates through the . + An for the . + + + Gets an containing the values in the . + An containing the values in the . + + + Provides the abstract base class for a collection of associated keys and values that can be accessed either with the key or with the index. + + + Initializes a new instance of the class that is empty. + + + Initializes a new instance of the class that is empty, has the default initial capacity, and uses the specified object. + The object to use to determine whether two keys are equal and to generate hash codes for the keys in the collection. + + + Initializes a new instance of the class that is empty, has the default initial capacity, and uses the specified hash code provider and the specified comparer. + The that will supply the hash codes for all keys in the instance. + The to use to determine whether two keys are equal. + + + Initializes a new instance of the class that is empty, has the specified initial capacity, and uses the default hash code provider and the default comparer. + The approximate number of entries that the instance can initially contain. + + is less than zero. + + + Initializes a new instance of the class that is empty, has the specified initial capacity, and uses the specified object. + The approximate number of entries that the object can initially contain. + The object to use to determine whether two keys are equal and to generate hash codes for the keys in the collection. + + is less than zero. + + + Initializes a new instance of the class that is empty, has the specified initial capacity and uses the specified hash code provider and the specified comparer. + The approximate number of entries that the instance can initially contain. + The that will supply the hash codes for all keys in the instance. + The to use to determine whether two keys are equal. + + is less than zero. + + + Initializes a new instance of the class that is serializable and uses the specified and . + A object that contains the information required to serialize the new instance. + A object that contains the source and destination of the serialized stream associated with the new instance. + + + Adds an entry with the specified key and value into the instance. + The key of the entry to add. The key can be null. + The value of the entry to add. The value can be null. + The collection is read-only. + + + Removes all entries from the instance. + The collection is read-only. + + + Gets the value of the entry at the specified index of the instance. + An that represents the value of the entry at the specified index. + The zero-based index of the value to get. + + is outside the valid range of indexes for the collection. + + + Gets the value of the first entry with the specified key from the instance. + An that represents the value of the first entry with the specified key, if found; otherwise, null. + The key of the entry to get. The key can be null. + + + Returns a array that contains all the keys in the instance. + A array that contains all the keys in the instance. + + + Returns an array that contains all the values in the instance. + An array that contains all the values in the instance. + + + Returns an array of the specified type that contains all the values in the instance. + An array of the specified type that contains all the values in the instance. + A that represents the type of array to return. + + is null. + + is not a valid . + + + Gets the key of the entry at the specified index of the instance. + A that represents the key of the entry at the specified index. + The zero-based index of the key to get. + + is outside the valid range of indexes for the collection. + + + Gets a value indicating whether the instance contains entries whose keys are not null. + true if the instance contains entries whose keys are not null; otherwise, false. + + + Removes the entries with the specified key from the instance. + The key of the entries to remove. The key can be null. + The collection is read-only. + + + Removes the entry at the specified index of the instance. + The zero-based index of the entry to remove. + + is outside the valid range of indexes for the collection. + The collection is read-only. + + + Sets the value of the entry at the specified index of the instance. + The zero-based index of the entry to set. + The that represents the new value of the entry to set. The value can be null. + The collection is read-only. + + is outside the valid range of indexes for the collection. + + + Sets the value of the first entry with the specified key in the instance, if found; otherwise, adds an entry with the specified key and value into the instance. + The key of the entry to set. The key can be null. + The that represents the new value of the entry to set. The value can be null. + The collection is read-only. + + + Gets the number of key/value pairs contained in the instance. + The number of key/value pairs contained in the instance. + + + Returns an enumerator that iterates through the . + An for the instance. + + + Implements the interface and returns the data needed to serialize the instance. + A object that contains the information required to serialize the instance. + A object that contains the source and destination of the serialized stream associated with the instance. + + is null. + + + Gets or sets a value indicating whether the instance is read-only. + true if the instance is read-only; otherwise, false. + + + Gets a instance that contains all the keys in the instance. + A instance that contains all the keys in the instance. + + + Implements the interface and raises the deserialization event when the deserialization is complete. + The source of the deserialization event. + The object associated with the current instance is invalid. + + + Copies the entire to a compatible one-dimensional , starting at the specified index of the target array. + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than zero. + + is multidimensional.-or-The number of elements in the source is greater than the available space from to the end of the destination . + The type of the source cannot be cast automatically to the type of the destination . + + + Gets a value indicating whether access to the object is synchronized (thread safe). + true if access to the object is synchronized (thread safe); otherwise, false. The default is false. + + + Gets an object that can be used to synchronize access to the object. + An object that can be used to synchronize access to the object. + + + Represents a collection of the keys of a collection. + + + Gets the number of keys in the . + The number of keys in the . + + + Gets the key at the specified index of the collection. + A that contains the key at the specified index of the collection. + The zero-based index of the key to get from the collection. + + is outside the valid range of indexes for the collection. + + + Returns an enumerator that iterates through the . + An for the . + + + Gets the entry at the specified index of the collection. + The key of the entry at the specified index of the collection. + The zero-based index of the entry to locate in the collection. + + is outside the valid range of indexes for the collection. + + + Copies the entire to a compatible one-dimensional , starting at the specified index of the target array. + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than zero. + + is multidimensional.-or- The number of elements in the source is greater than the available space from to the end of the destination . + The type of the source cannot be cast automatically to the type of the destination . + + + Gets a value indicating whether access to the is synchronized (thread safe). + true if access to the is synchronized (thread safe); otherwise, false. The default is false. + + + Gets an object that can be used to synchronize access to the . + An object that can be used to synchronize access to the . + + + Represents a collection of associated keys and values that can be accessed either with the key or with the index. + + + Initializes a new instance of the class that is empty, has the default initial capacity and uses the default case-insensitive hash code provider and the default case-insensitive comparer. + + + Initializes a new instance of the class that is empty, has the default initial capacity, and uses the specified object. + The object to use to determine whether two keys are equal and to generate hash codes for the keys in the collection. + + + Initializes a new instance of the class that is empty, has the default initial capacity and uses the specified hash code provider and the specified comparer. + The that will supply the hash codes for all keys in the . + The to use to determine whether two keys are equal. + + + Copies the entries from the specified to a new with the same initial capacity as the number of entries copied and using the same hash code provider and the same comparer as the source collection. + The to copy to the new instance. + + is null. + + + Initializes a new instance of the class that is empty, has the specified initial capacity and uses the default case-insensitive hash code provider and the default case-insensitive comparer. + The initial number of entries that the can contain. + + is less than zero. + + + Initializes a new instance of the class that is empty, has the specified initial capacity, and uses the specified object. + The initial number of entries that the object can contain. + The object to use to determine whether two keys are equal and to generate hash codes for the keys in the collection. + + is less than zero. + + + Initializes a new instance of the class that is empty, has the specified initial capacity and uses the specified hash code provider and the specified comparer. + The initial number of entries that the can contain. + The that will supply the hash codes for all keys in the . + The to use to determine whether two keys are equal. + + is less than zero. + + + Copies the entries from the specified to a new with the specified initial capacity or the same initial capacity as the number of entries copied, whichever is greater, and using the default case-insensitive hash code provider and the default case-insensitive comparer. + The initial number of entries that the can contain. + The to copy to the new instance. + + is less than zero. + + is null. + + + Initializes a new instance of the class that is serializable and uses the specified and . + A object that contains the information required to serialize the new instance. + A object that contains the source and destination of the serialized stream associated with the new instance. + + + Copies the entries in the specified to the current . + The to copy to the current . + The collection is read-only. + + is null. + + + Adds an entry with the specified name and value to the . + The key of the entry to add. The key can be null. + The value of the entry to add. The value can be null. + The collection is read-only. + + + Gets all the keys in the . + A array that contains all the keys of the . + + + Invalidates the cached arrays and removes all entries from the . + The collection is read-only. + + + + + + Copies the entire to a compatible one-dimensional , starting at the specified index of the target array. + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than zero. + + is multidimensional.-or- The number of elements in the source is greater than the available space from to the end of the destination . + The type of the source cannot be cast automatically to the type of the destination . + + + Gets the values at the specified index of the combined into one comma-separated list. + A that contains a comma-separated list of the values at the specified index of the , if found; otherwise, null. + The zero-based index of the entry that contains the values to get from the collection. + + is outside the valid range of indexes for the collection. + + + Gets the values associated with the specified key from the combined into one comma-separated list. + A that contains a comma-separated list of the values associated with the specified key from the , if found; otherwise, null. + The key of the entry that contains the values to get. The key can be null. + + + Gets the key at the specified index of the . + A that contains the key at the specified index of the , if found; otherwise, null. + The zero-based index of the key to get from the collection. + + is outside the valid range of indexes for the collection. + + + Gets the values at the specified index of the . + A array that contains the values at the specified index of the , if found; otherwise, null. + The zero-based index of the entry that contains the values to get from the collection. + + is outside the valid range of indexes for the collection. + + + Gets the values associated with the specified key from the . + A array that contains the values associated with the specified key from the , if found; otherwise, null. + The key of the entry that contains the values to get. The key can be null. + + + Gets a value indicating whether the contains keys that are not null. + true if the contains keys that are not null; otherwise, false. + + + Resets the cached arrays of the collection to null. + + + Gets the entry at the specified index of the . + A that contains the comma-separated list of values at the specified index of the collection. + The zero-based index of the entry to locate in the collection. + + is outside the valid range of indexes for the collection. + + + Gets or sets the entry with the specified key in the . + A that contains the comma-separated list of values associated with the specified key, if found; otherwise, null. + The key of the entry to locate. The key can be null. + The collection is read-only and the operation attempts to modify the collection. + + + Removes the entries with the specified key from the instance. + The key of the entry to remove. The key can be null. + The collection is read-only. + + + Sets the value of an entry in the . + The key of the entry to add the new value to. The key can be null. + The that represents the new value to add to the specified entry. The value can be null. + The collection is read-only. + + + Describes the action that caused a event. + + + One or more items were added to the collection. + + + One or more items were moved within the collection. + + + One or more items were removed from the collection. + + + One or more items were replaced in the collection. + + + The content of the collection changed dramatically. + + + Provides data for the event. + + + Initializes a new instance of the class that describes a change. + The action that caused the event. This must be set to . + + + Initializes a new instance of the class that describes a multi-item change. + The action that caused the event. This can be set to , , or . + The items that are affected by the change. + + + Initializes a new instance of the class that describes a multi-item change. + The action that caused the event. This can only be set to . + The new items that are replacing the original items. + The original items that are replaced. + If is not Replace. + If or is null. + + + Initializes a new instance of the class that describes a multi-item change. + The action that caused the event. This can only be set to . + The new items that are replacing the original items. + The original items that are replaced. + The index of the first item of the items that are being replaced. + If is not Replace. + If or is null. + + + Initializes a new instance of the class that describes a multi-item change or a change. + The action that caused the event. This can be set to , , or . + The items affected by the change. + The index where the change occurred. + If is not Reset, Add, or Remove, if is Reset and either is not null or is not -1, or if action is Add or Remove and is less than -1. + If is Add or Remove and is null. + + + Initializes a new instance of the class that describes a multi-item change. + The action that caused the event. This can only be set to . + The items affected by the change. + The new index for the changed items. + The old index for the changed items. + If is not Move or is less than 0. + + + Initializes a new instance of the class that describes a one-item change. + The action that caused the event. This can be set to , , or . + The item that is affected by the change. + If is not Reset, Add, or Remove, or if is Reset and is not null. + + + Initializes a new instance of the class that describes a one-item change. + The action that caused the event. This can be set to , , or . + The item that is affected by the change. + The index where the change occurred. + If is not Reset, Add, or Remove, or if is Reset and either is not null or is not -1. + + + Initializes a new instance of the class that describes a one-item change. + The action that caused the event. This can only be set to . + The item affected by the change. + The new index for the changed item. + The old index for the changed item. + If is not Move or is less than 0. + + + Initializes a new instance of the class that describes a one-item change. + The action that caused the event. This can only be set to . + The new item that is replacing the original item. + The original item that is replaced. + If is not Replace. + + + Initializes a new instance of the class that describes a one-item change. + The action that caused the event. This can be set to . + The new item that is replacing the original item. + The original item that is replaced. + The index of the item being replaced. + If is not Replace. + + + Gets the action that caused the event. + A value that describes the action that caused the event. + + + Gets the list of new items involved in the change. + The list of new items involved in the change. + + + Gets the index at which the change occurred. + The zero-based index at which the change occurred. + + + Gets the list of items affected by a , Remove, or Move action. + The list of items affected by a , Remove, or Move action. + + + Gets the index at which a , Remove, or Replace action occurred. + The zero-based index at which a , Remove, or Replace action occurred. + + + Represents the method that handles the event. + The object that raised the event. + Information about the event. + + + Represents a collection of key/value pairs that are accessible by the key or index. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified comparer. + The to use to determine whether two keys are equal.-or- null to use the default comparer, which is each key's implementation of . + + + Initializes a new instance of the class using the specified initial capacity. + The initial number of elements that the collection can contain. + + + Initializes a new instance of the class using the specified initial capacity and comparer. + The initial number of elements that the collection can contain. + The to use to determine whether two keys are equal.-or- null to use the default comparer, which is each key's implementation of . + + + Initializes a new instance of the class that is serializable using the specified and objects. + A object containing the information required to serialize the collection. + A object containing the source and destination of the serialized stream associated with the . + + + Adds an entry with the specified key and value into the collection with the lowest available index. + The key of the entry to add. + The value of the entry to add. This value can be null. + The collection is read-only. + + + Returns a read-only copy of the current collection. + A read-only copy of the current collection. + + + Removes all elements from the collection. + The collection is read-only. + + + Determines whether the collection contains a specific key. + true if the collection contains an element with the specified key; otherwise, false. + The key to locate in the collection. + + + Copies the elements to a one-dimensional object at the specified index. + The one-dimensional object that is the destination of the objects copied from collection. The must have zero-based indexing. + The zero-based index in at which copying begins. + + + Gets the number of key/values pairs contained in the collection. + The number of key/value pairs contained in the collection. + + + Returns an object that iterates through the collection. + An object for the collection. + + + Implements the interface and returns the data needed to serialize the collection. + A object containing the information required to serialize the collection. + A object containing the source and destination of the serialized stream associated with the . + + is null. + + + Inserts a new entry into the collection with the specified key and value at the specified index. + The zero-based index at which the element should be inserted. + The key of the entry to add. + The value of the entry to add. The value can be null. + + is out of range. + This collection is read-only. + + + Gets a value indicating whether the collection is read-only. + true if the collection is read-only; otherwise, false. The default is false. + + + Gets or sets the value at the specified index. + The value of the item at the specified index. + The zero-based index of the value to get or set. + The property is being set and the collection is read-only. + + is less than zero.-or- is equal to or greater than . + + + Gets or sets the value with the specified key. + The value associated with the specified key. If the specified key is not found, attempting to get it returns null, and attempting to set it creates a new element using the specified key. + The key of the value to get or set. + The property is being set and the collection is read-only. + + + Gets an object containing the keys in the collection. + An object containing the keys in the collection. + + + Implements the interface and is called back by the deserialization event when deserialization is complete. + The source of the deserialization event. + The object associated with the current collection is invalid. + + + Removes the entry with the specified key from the collection. + The key of the entry to remove. + The collection is read-only. + + is null. + + + Removes the entry at the specified index from the collection. + The zero-based index of the entry to remove. + The collection is read-only. + + is less than zero.- or - is equal to or greater than . + + + Gets a value indicating whether access to the object is synchronized (thread-safe). + This method always returns false. + + + Gets an object that can be used to synchronize access to the object. + An object that can be used to synchronize access to the object. + + + Gets a value indicating whether the has a fixed size. + true if the has a fixed size; otherwise, false. The default is false. + + + Returns an object that iterates through the collection. + An object for the collection. + + + Implements the interface and is called back by the deserialization event when deserialization is complete. + The source of the deserialization event. + + + Gets an object containing the values in the collection. + An object containing the values in the collection. + + + Represents a collection of strings. + + + Initializes a new instance of the class. + + + Adds a string to the end of the . + The zero-based index at which the new element is inserted. + The string to add to the end of the . The value can be null. + + + Copies the elements of a string array to the end of the . + An array of strings to add to the end of the . The array itself can not be null but it can contain elements that are null. + + is null. + + + Removes all the strings from the . + + + Determines whether the specified string is in the . + true if is found in the ; otherwise, false. + The string to locate in the . The value can be null. + + + Copies the entire values to a one-dimensional array of strings, starting at the specified index of the target array. + The one-dimensional array of strings that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than zero. + + is multidimensional.-or- The number of elements in the source is greater than the available space from to the end of the destination . + The type of the source cannot be cast automatically to the type of the destination . + + + Gets the number of strings contained in the . + The number of strings contained in the . + + + Returns a that iterates through the . + A for the . + + + Searches for the specified string and returns the zero-based index of the first occurrence within the . + The zero-based index of the first occurrence of in the , if found; otherwise, -1. + The string to locate. The value can be null. + + + Inserts a string into the at the specified index. + The zero-based index at which is inserted. + The string to insert. The value can be null. + + is less than zero.-or- greater than . + + + Gets a value indicating whether the is read-only. + This property always returns false. + + + Gets a value indicating whether access to the is synchronized (thread safe). + This property always returns false. + + + Gets or sets the element at the specified index. + The element at the specified index. + The zero-based index of the entry to get or set. + + is less than zero.-or- is equal to or greater than . + + + Removes the first occurrence of a specific string from the . + The string to remove from the . The value can be null. + + + Removes the string at the specified index of the . + The zero-based index of the string to remove. + + is less than zero.-or- is equal to or greater than . + + + Gets an object that can be used to synchronize access to the . + An object that can be used to synchronize access to the . + + + Copies the entire to a compatible one-dimensional , starting at the specified index of the target array. + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than zero. + + is multidimensional.-or- The number of elements in the source is greater than the available space from to the end of the destination . + The type of the source cannot be cast automatically to the type of the destination . + + + Returns a that iterates through the . + A for the . + + + Adds an object to the end of the . + The index at which the has been added. + The to be added to the end of the . The value can be null. + The is read-only.-or- The has a fixed size. + + + Determines whether an element is in the . + true if is found in the ; otherwise, false. + The to locate in the . The value can be null. + + + Searches for the specified and returns the zero-based index of the first occurrence within the entire . + The zero-based index of the first occurrence of within the entire , if found; otherwise, -1. + The to locate in the . The value can be null. + + + Inserts an element into the at the specified index. + The zero-based index at which should be inserted. + The to insert. The value can be null. + + is less than zero.-or- is greater than . + The is read-only.-or- The has a fixed size. + + + Gets a value indicating whether the object has a fixed size. + true if the object has a fixed size; otherwise, false. The default is false. + + + Gets a value indicating whether the object is read-only. + true if the object is read-only; otherwise, false. The default is false. + + + Gets or sets the element at the specified index. + The element at the specified index. + The zero-based index of the element to get or set. + + is less than zero.-or- is equal to or greater than . + + + Removes the first occurrence of a specific object from the . + The to remove from the . The value can be null. + The is read-only.-or- The has a fixed size. + + + Implements a hash table with the key and the value strongly typed to be strings rather than objects. + + + Initializes a new instance of the class. + + + Adds an entry with the specified key and value into the . + The key of the entry to add. + The value of the entry to add. The value can be null. + + is null. + An entry with the same key already exists in the . + The is read-only. + + + Removes all entries from the . + The is read-only. + + + Determines if the contains a specific key. + true if the contains an entry with the specified key; otherwise, false. + The key to locate in the . + The key is null. + + + Determines if the contains a specific value. + true if the contains an element with the specified value; otherwise, false. + The value to locate in the . The value can be null. + + + Copies the string dictionary values to a one-dimensional instance at the specified index. + The one-dimensional that is the destination of the values copied from the . + The index in the array where copying begins. + + is multidimensional.-or- The number of elements in the is greater than the available space from to the end of . + + is null. + + is less than the lower bound of . + + + Gets the number of key/value pairs in the . + The number of key/value pairs in the .Retrieving the value of this property is an O(1) operation. + + + Returns an enumerator that iterates through the string dictionary. + An that iterates through the string dictionary. + + + Gets a value indicating whether access to the is synchronized (thread safe). + true if access to the is synchronized (thread safe); otherwise, false. + + + Gets or sets the value associated with the specified key. + The value associated with the specified key. If the specified key is not found, Get returns null, and Set creates a new entry with the specified key. + The key whose value to get or set. + + is null. + + + Gets a collection of keys in the . + An that provides the keys in the . + + + Removes the entry with the specified key from the string dictionary. + The key of the entry to remove. + The key is null. + The is read-only. + + + Gets an object that can be used to synchronize access to the . + An that can be used to synchronize access to the . + + + Gets a collection of values in the . + An that provides the values in the . + + + Supports a simple iteration over a . + + + Gets the current element in the collection. + The current element in the collection. + The enumerator is positioned before the first element of the collection or after the last element. + + + Advances the enumerator to the next element of the collection. + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + The collection was modified after the enumerator was created. + + + Sets the enumerator to its initial position, which is before the first element in the collection. + The collection was modified after the enumerator was created. + + + Provides data for the event. + + + Initializes a new instance of the class using no parameters. + + + Initializes a new instance of the class using the specified object as the new item. + An to use as the new item value. + + + Gets or sets the object to be added to the binding list. + The to be added as a new item to the associated collection. + + + Represents the method that will handle the event. + The source of the event, typically a data container or data-bound collection. + A that contains the event data. + + + Specifies the value to pass to a property to cause the property to get its value from another source. This is known as ambience. This class cannot be inherited. + + + Initializes a new instance of the class, given a Boolean value for its value. + The value of this attribute. + + + Initializes a new instance of the class, given an 8-bit unsigned integer for its value. + The value of this attribute. + + + Initializes a new instance of the class, given a Unicode character for its value. + The value of this attribute. + + + Initializes a new instance of the class, given a double-precision floating-point number for its value. + The value of this attribute. + + + Initializes a new instance of the class, given a 16-bit signed integer for its value. + The value of this attribute. + + + Initializes a new instance of the class, given a 32-bit signed integer for its value. + The value of this attribute. + + + Initializes a new instance of the class, given a 64-bit signed integer for its value. + The value of this attribute. + + + Initializes a new instance of the class, given an object for its value. + The value of this attribute. + + + Initializes a new instance of the class, given a single-precision floating point number for its value. + The value of this attribute. + + + Initializes a new instance of the class, given a string for its value. + The value of this attribute. + + + Initializes a new instance of the class, given the value and its type. + The of the parameter. + The value for this attribute. + + + Determines whether the specified is equal to the current . + true if the specified is equal to the current ; otherwise, false. + The to compare with the current . + + + Returns the hash code for this instance. + A hash code for the current . + + + Gets the object that is the value of this . + The object that is the value of this . + + + Provides a type converter to convert objects to and from various other representations. + + + Initializes a new instance of the class. + + + Converts the given value object to the specified destination type. + An that represents the converted value. + An that provides a format context. + The culture into which will be converted. + The to convert. + The to convert the value to. + + is null. + The conversion cannot be performed. + + + Gets a collection of properties for the type of array specified by the value parameter. + A with the properties that are exposed for an array, or null if there are no properties. + An that provides a format context. + An that specifies the type of array to get the properties for. + An array of type that will be used as a filter. + + + Gets a value indicating whether this object supports properties. + true because should be called to find the properties of this object. This method never returns false. + An that provides a format context. + + + Provides data for the MethodNameCompleted event. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + Any error that occurred during the asynchronous operation. + A value indicating whether the asynchronous operation was canceled. + The optional user-supplied state object passed to the method. + + + Gets a value indicating whether an asynchronous operation has been canceled. + true if the background operation has been canceled; otherwise false. The default is false. + + + Gets a value indicating which error occurred during an asynchronous operation. + An instance, if an error occurred during an asynchronous operation; otherwise null. + + + Raises a user-supplied exception if an asynchronous operation failed. + The property is true. + The property has been set by the asynchronous operation. The property holds a reference to . + + + Gets the unique identifier for the asynchronous task. + An object reference that uniquely identifies the asynchronous task; otherwise, null if no value has been set. + + + Represents the method that will handle the MethodNameCompleted event of an asynchronous operation. + The source of the event. + An that contains the event data. + + + Tracks the lifetime of an asynchronous operation. + + + Ends the lifetime of an asynchronous operation. + + has been called previously for this task. + + + + + + Invokes a delegate on the thread or context appropriate for the application model. + A object that wraps the delegate to be called when the operation ends. + An argument for the delegate contained in the parameter. + The method has been called previously for this task. + + is null. + + + Ends the lifetime of an asynchronous operation. + A object that wraps the delegate to be called when the operation ends. + An argument for the delegate contained in the parameter. + + has been called previously for this task. + + is null. + + + Gets the object that was passed to the constructor. + The object that was passed to the constructor. + + + Gets or sets an object used to uniquely identify an asynchronous operation. + The state object passed to the asynchronous method invocation. + + + Provides concurrency management for classes that support asynchronous method calls. This class cannot be inherited. + + + Returns an for tracking the duration of a particular asynchronous operation. + An that you can use to track the duration of an asynchronous method invocation. + An object used to associate a piece of client state, such as a task ID, with a particular asynchronous operation. + + + Gets or sets the synchronization context for the asynchronous operation. + The synchronization context for the asynchronous operation. + + + Represents a collection of attributes. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + An array of type that provides the attributes for this collection. + + is null. + + + Gets the attribute collection. + The attribute collection. + + + Determines whether this collection of attributes has the specified attribute. + true if the collection contains the attribute or is the default attribute for the type of attribute; otherwise, false. + An to find in the collection. + + + Determines whether this attribute collection contains all the specified attributes in the attribute array. + true if the collection contains all the attributes; otherwise, false. + An array of type to find in the collection. + + + Copies the collection to an array, starting at the specified index. + The to copy the collection to. + The index to start from. + + + Gets the number of attributes. + The number of attributes. + + + Specifies an empty collection that you can use, rather than creating a new one. This field is read-only. + + + Creates a new from an existing . + A new that is a copy of . + An from which to create the copy. + An array of type that provides the attributes for this collection. Can be null. + + is null. + + + Returns the default of a given . + The default of a given . + The of the attribute to retrieve. + + + Gets an enumerator for this collection. + An enumerator of type . + + + Gets the attribute with the specified index number. + The with the specified index number. + The zero-based index of . + + + Gets the attribute with the specified type. + The with the specified type or, if the attribute does not exist, the default value for the attribute type. + The of the to get from the collection. + + + Determines whether a specified attribute is the same as an attribute in the collection. + true if the attribute is contained within the collection and has the same value as the attribute in the collection; otherwise, false. + An instance of to compare with the attributes in this collection. + + + Determines whether the attributes in the specified array are the same as the attributes in the collection. + true if all the attributes in the array are contained in the collection and have the same values as the attributes in the collection; otherwise, false. + An array of to compare with the attributes in this collection. + + + Gets the number of elements contained in the collection. + The number of elements contained in the collection. + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + true if access to the collection is synchronized (thread-safe); otherwise, false. + + + Gets an object that can be used to synchronize access to the collection. + An object that can be used to synchronize access to the collection. + + + Returns an for the . + An for the . + + + Enables attribute redirection. This class cannot be inherited. + + + Initializes a new instance of the class with the given type name. + The name of the type to specify. + + is null. + + + Initializes a new instance of the class with the given type name and property name. + The name of the type to specify. + The name of the property for which attributes will be retrieved. + + is null. + + is null. + + + Initializes a new instance of the class with the given type. + The type to specify. + + is null. + + + Gets the name of the property for which attributes will be retrieved. + The name of the property for which attributes will be retrieved. + + + Gets the assembly qualified type name passed into the constructor. + The assembly qualified name of the type specified in the constructor. + + + Executes an operation on a separate thread. + + + Initializes a new instance of the class. + + + Requests cancellation of a pending background operation. + + is false. + + + + + + Gets a value indicating whether the application has requested cancellation of a background operation. + true if the application has requested cancellation of a background operation; otherwise, false. The default is false. + + + Occurs when is called. + + + Gets a value indicating whether the is running an asynchronous operation. + true, if the is running an asynchronous operation; otherwise, false. + + + Raises the event. + An that contains the event data. + + + Raises the event. + An that contains the event data. + + + Raises the event. + An that contains the event data. + + + Occurs when is called. + + + Raises the event. + The percentage, from 0 to 100, of the background operation that is complete. + The property is set to false. + + + Raises the event. + The percentage, from 0 to 100, of the background operation that is complete. + The state object passed to . + The property is set to false. + + + Starts execution of a background operation. + + is true. + + + + + + Starts execution of a background operation. + A parameter for use by the background operation to be executed in the event handler. + + is true. + + + Occurs when the background operation has completed, has been canceled, or has raised an exception. + + + Gets or sets a value indicating whether the can report progress updates. + true if the supports progress updates; otherwise false. The default is false. + + + Gets or sets a value indicating whether the supports asynchronous cancellation. + true if the supports cancellation; otherwise false. The default is false. + + + Provides a base type converter for nonfloating-point numerical types. + + + Initializes a new instance of the class. + + + Determines if this converter can convert an object in the given source type to the native type of the converter. + true if this converter can perform the operation; otherwise, false. + An that provides a format context. + A that represents the type from which you want to convert. + + + Returns a value indicating whether this converter can convert an object to the given destination type using the context. + true if this converter can perform the operation; otherwise, false. + An that provides a format context. + A that represents the type to which you want to convert. + + + Converts the given object to the converter's native type. + An that represents the converted value. + An that provides a format context. + A that specifies the culture to represent the number. + The object to convert. + + is not a valid value for the target type. + The conversion cannot be performed. + + + Converts the specified object to another type. + An that represents the converted value. + An that provides a format context. + A that specifies the culture to represent the number. + The object to convert. + The type to convert the object to. + + is null. + The conversion cannot be performed. + + + Specifies whether a member is typically used for binding. This class cannot be inherited. + + + Initializes a new instance of the class with a Boolean value. + true to use property for binding; otherwise, false. + + + Initializes a new instance of the class. + true to use property for binding; otherwise, false. + One of the values. + + + Initializes a new instance of the class with one of the values. + One of the values. + + + Initializes a new instance of the class. + One of the values. + One of the values. + + + Gets a value indicating that a property is typically used for binding. + true if the property is typically used for binding; otherwise, false. + + + Specifies the default value for the , which is . This field is read-only. + + + Gets a value indicating the direction or directions of this property's data binding. + The direction of this property’s data binding. + + + Determines whether two objects are equal. + true if the specified is equal to the current ; false if it is not equal. + The object to compare. + + + Serves as a hash function for the class. + A hash code for the current . + + + Determines if this attribute is the default. + true if the attribute is the default value for this attribute class; otherwise, false. + + + Specifies that a property is not typically used for binding. This field is read-only. + + + Specifies that a property is typically used for binding. This field is read-only. + + + Specifies values to indicate whether a property can be bound to a data element or another property. + + + The property is set to the default. + + + The property is not bindable at design time. + + + The property is bindable at design time. + + + Specifies whether the template can be bound one way or two ways. + + + The template can only accept property values. Used with a generic . + + + The template can accept and expose property values. Used with an . + + + Provides a generic collection that supports data binding. + The type of elements in the list. + + + Initializes a new instance of the class using default values. + + + Initializes a new instance of the class with the specified list. + An of items to be contained in the . + + + Occurs before an item is added to the list. + + + Adds a new item to the collection. + The item added to the list. + The property is set to false. -or-A public default constructor could not be found for the current item type. + + + Adds a new item to the end of the collection. + The item that was added to the collection. + The new item is not the same type as the objects contained in the . + + + Gets or sets a value indicating whether items in the list can be edited. + true if list items can be edited; otherwise, false. The default is true. + + + Gets or sets a value indicating whether you can add items to the list using the method. + true if you can add items to the list with the method; otherwise, false. The default depends on the underlying type contained in the list. + + + Gets or sets a value indicating whether you can remove items from the collection. + true if you can remove items from the list with the method otherwise, false. The default is true. + + + Sorts the items if overridden in a derived class; otherwise, throws a . + A that specifies the property to sort on. + One of the values. + Method is not overridden in a derived class. + + + Discards a pending new item. + The index of the of the new item to be added + + + Removes all elements from the collection. + + + Commits a pending new item to the collection. + The index of the new item to be added. + + + Searches for the index of the item that has the specified property descriptor with the specified value, if searching is implemented in a derived class; otherwise, a . + The zero-based index of the item that matches the property descriptor and contains the specified value. + The to search for. + The value of to match. + + is not overridden in a derived class. + + + Inserts the specified item in the list at the specified index. + The zero-based index where the item is to be inserted. + The item to insert in the list. + + + Gets a value indicating whether the list is sorted. + true if the list is sorted; otherwise, false. The default is false. + + + Occurs when the list or an item in the list changes. + + + Raises the event. + An that contains the event data. + + + Raises the event. + A that contains the event data. + + + Gets or sets a value indicating whether adding or removing items within the list raises events. + true if adding or removing items raises events; otherwise, false. The default is true. + + + Removes the item at the specified index. + The zero-based index of the item to remove. + You are removing a newly added item and is set to false. + + + Removes any sort applied with if sorting is implemented in a derived class; otherwise, raises . + Method is not overridden in a derived class. + + + Raises a event of type . + + + Raises a event of type for the item at the specified position. + A zero-based index of the item to be reset. + + + Replaces the item at the specified index with the specified item. + The zero-based index of the item to replace. + The new value for the item at the specified index. The value can be null for reference types. + + is less than zero.-or- is greater than . + + + Gets the direction the list is sorted. + One of the values. The default is . + + + Gets the property descriptor that is used for sorting the list if sorting is implemented in a derived class; otherwise, returns null. + The used for sorting the list. + + + Gets a value indicating whether events are enabled. + true if events are supported; otherwise, false. The default is true. + + + Gets a value indicating whether the list supports searching. + true if the list supports searching; otherwise, false. The default is false. + + + Gets a value indicating whether the list supports sorting. + true if the list supports sorting; otherwise, false. The default is false. + + + For a description of this member, see . + The to add as a search criteria. + + + Adds a new item to the list. For more information, see . + The item added to the list. + This method is not supported. + + + Gets a value indicating whether items in the list can be edited. + true if list items can be edited; otherwise, false. The default is true. + + + Gets a value indicating whether new items can be added to the list using the method. + true if you can add items to the list with the method; otherwise, false. The default depends on the underlying type contained in the list. + + + Gets a value indicating whether items can be removed from the list. + true if you can remove items from the list with the method; otherwise, false. The default is true. + + + Sorts the list based on a and a . For a complete description of this member, see . + The to sort by. + One of the values. + + + For a description of this member, see . + The index of the row that has the given . + The to search on. + The value of the parameter to search for. + + + For a description of this member, see . + true if has been called and has not been called; otherwise, false. + + + For a description of this member, see . + A to remove from the indexes used for searching. + + + For a description of this member, see + + + For a description of this member, see . + One of the values. + + + For a description of this member, see . + The that is being used for sorting. + + + For a description of this member, see . + true if a event is raised when the list changes or when an item changes; otherwise, false. + + + For a description of this member, see . + true if the list supports searching using the method; otherwise, false. + + + For a description of this member, see . + true if the list supports sorting; otherwise, false. + + + Gets a value indicating whether item property value changes raise events of type . This member cannot be overridden in a derived class. + true if the list type implements , otherwise, false. The default is false. + + + Provides a type converter to convert objects to and from various other representations. + + + Initializes a new instance of the class. + + + Gets a value indicating whether this converter can convert an object in the given source type to a Boolean object using the specified context. + true if this object can perform the conversion; otherwise, false. + An that provides a format context. + A that represents the type you wish to convert from. + + + Converts the given value object to a Boolean object. + An that represents the converted . + An that provides a format context. + A that specifies the culture to which to convert. + The to convert. + + is not a valid value for the target type. + The conversion cannot be performed. + + + Gets a collection of standard values for the Boolean data type. + A that holds a standard set of valid values. + An that provides a format context. + + + Gets a value indicating whether the list of standard values returned from the method is an exclusive list. + true because the returned from is an exhaustive list of possible values. This method never returns false. + An that provides a format context. + + + Gets a value indicating whether this object supports a standard set of values that can be picked from a list. + true because can be called to find a common set of values the object supports. This method never returns false. + An that provides a format context. + + + Specifies whether a property or event should be displayed in a Properties window. + + + Initializes a new instance of the class. + true if a property or event can be modified at design time; otherwise, false. The default is true. + + + Gets a value indicating whether an object is browsable. + true if the object is browsable; otherwise, false. + + + Specifies the default value for the , which is . This static field is read-only. + + + Indicates whether this instance and a specified object are equal. + true if is equal to this instance; otherwise, false. + Another object to compare to. + + + Returns the hash code for this instance. + A 32-bit signed integer hash code. + + + Determines if this attribute is the default. + true if the attribute is the default value for this attribute class; otherwise, false. + + + Specifies that a property or event cannot be modified at design time. This static field is read-only. + + + Specifies that a property or event can be modified at design time. This static field is read-only. + + + Provides a type converter to convert 8-bit unsigned integer objects to and from various other representations. + + + Initializes a new instance of the class. + + + Provides data for a cancelable event. + + + Initializes a new instance of the class with the property set to false. + + + Initializes a new instance of the class with the property set to the given value. + true to cancel the event; otherwise, false. + + + Gets or sets a value indicating whether the event should be canceled. + true if the event should be canceled; otherwise, false. + + + Represents the method that handles a cancelable event. + The source of the event. + A that contains the event data. + + + Specifies the name of the category in which to group the property or event when displayed in a control set to Categorized mode. + + + Initializes a new instance of the class using the category name Default. + + + Initializes a new instance of the class using the specified category name. + The name of the category. + + + Gets a representing the Action category. + A for the action category. + + + Gets a representing the Appearance category. + A for the appearance category. + + + Gets a representing the Asynchronous category. + A for the asynchronous category. + + + Gets a representing the Behavior category. + A for the behavior category. + + + Gets the name of the category for the property or event that this attribute is applied to. + The name of the category for the property or event that this attribute is applied to. + + + Gets a representing the Data category. + A for the data category. + + + Gets a representing the Default category. + A for the default category. + + + Gets a representing the Design category. + A for the design category. + + + Gets a representing the DragDrop category. + A for the drag-and-drop category. + + + Returns whether the value of the given object is equal to the current .. + true if the value of the given object is equal to that of the current; otherwise, false. + The object to test the value equality of. + + + Gets a representing the Focus category. + A for the focus category. + + + Gets a representing the Format category. + A for the format category. + + + Returns the hash code for this attribute. + A 32-bit signed integer hash code. + + + + + + Looks up the localized name of the specified category. + The localized name of the category, or null if a localized name does not exist. + The identifer for the category to look up. + + + Determines if this attribute is the default. + true if the attribute is the default value for this attribute class; otherwise, false. + + + + + + Gets a representing the Key category. + A for the key category. + + + Gets a representing the Layout category. + A for the layout category. + + + Gets a representing the Mouse category. + A for the mouse category. + + + Gets a representing the WindowStyle category. + A for the window style category. + + + Provides a type converter to convert Unicode character objects to and from various other representations. + + + Initializes a new instance of the class. + + + Gets a value indicating whether this converter can convert an object in the given source type to a Unicode character object using the specified context. + true if this converter can perform the conversion; otherwise, false. + An that provides a format context. + A that represents the type you want to convert from. + + + Converts the given object to a Unicode character object. + An that represents the converted . + An that provides a format context. + The culture into which will be converted. + The to convert. + + is not a valid value for the target type. + The conversion cannot be performed. + + + Converts the given value object to a Unicode character object using the arguments. + An that represents the converted value. + An that provides a format context. + The culture into which will be converted. + The to convert. + The to convert the value to. + The conversion cannot be performed. + + + Specifies how the collection is changed. + + + Specifies that an element was added to the collection. + + + Specifies that the entire collection has changed. This is caused by using methods that manipulate the entire collection, such as . + + + Specifies that an element was removed from the collection. + + + Provides data for the event. + + + Initializes a new instance of the class. + One of the values that specifies how the collection changed. + An that specifies the instance of the collection where the change occurred. + + + Gets an action that specifies how the collection changed. + One of the values. + + + Gets the instance of the collection with the change. + An that represents the instance of the collection with the change, or null if you refresh the collection. + + + Represents the method that handles the event raised when adding elements to or removing elements from a collection. + The source of the event. + A that contains the event data. + + + Provides a type converter to convert collection objects to and from various other representations. + + + Initializes a new instance of the class. + + + Converts the given value object to the specified destination type. + An that represents the converted value. + An that provides a format context. + The culture to which will be converted. + The to convert. This parameter must inherit from . + The to convert the value to. + + is null. + The conversion cannot be performed. + + + Gets a collection of properties for the type of array specified by the value parameter using the specified context and attributes. + A with the properties that are exposed for this data type, or null if there are no properties. This method always returns null. + An that provides a format context. + An that specifies the type of array to get the properties for. + An array of type that will be used as a filter. + + + Gets a value indicating whether this object supports properties. + false because should not be called to find the properties of this object. This method never returns true. + An that provides a format context. + + + Specifies the data source and data member properties for a component that supports complex data binding. This class cannot be inherited. + + + Initializes a new instance of the class using no parameters. + + + Initializes a new instance of the class using the specified data source. + The name of the property to be used as the data source. + + + Initializes a new instance of the class using the specified data source and data member. + The name of the property to be used as the data source. + The name of the property to be used as the source for data. + + + Gets the name of the data member property for the component to which the is bound. + The name of the data member property for the component to which is bound + + + Gets the name of the data source property for the component to which the is bound. + The name of the data source property for the component to which is bound. + + + Represents the default value for the class. + + + Determines whether the specified is equal to the current instance. + true if the object is equal to the current instance; otherwise, false, indicating they are not equal. + The to compare with the current instance + + + A 32-bit signed integer hash code. + + + Provides the base implementation for the interface and enables object sharing between applications. + + + Initializes a new instance of the class. + + + Gets a value indicating whether the component can raise an event. + true if the component can raise events; otherwise, false. The default is true. + + + Gets the that contains the . + The that contains the , if any, or null if the is not encapsulated in an . + + + Gets a value that indicates whether the is currently in design mode. + true if the is in design mode; otherwise, false. + + + Releases all resources used by the . + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Occurs when the component is disposed by a call to the method. + + + Gets the list of event handlers that are attached to this . + An that provides the delegates for this component. + + + Releases unmanaged resources and performs other cleanup operations before the is reclaimed by garbage collection. + + + Returns an object that represents a service provided by the or by its . + An that represents a service provided by the , or null if the does not provide the specified service. + A service provided by the . + + + Gets or sets the of the . + The associated with the , or null if the is not encapsulated in an , the does not have an associated with it, or the is removed from its . + + + Returns a containing the name of the , if any. This method should not be overridden. + A containing the name of the , if any, or null if the is unnamed. + + + Provides a read-only container for a collection of objects. + + + Initializes a new instance of the class using the specified array of components. + An array of objects to initialize the collection with. + + + Copies the entire collection to an array, starting writing at the specified array index. + An array to copy the objects in the collection to. + The index of the at which copying to should begin. + + + Gets the in the collection at the specified collection index. + The at the specified index. + The collection index of the to get. + If the specified index is not within the index range of the collection. + + + Gets any component in the collection matching the specified name. + A component with a name matching the name specified by the parameter, or null if the named component cannot be found in the collection. + The name of the to get. + + + Provides a type converter to convert components to and from various other representations. + + + Initializes a new instance of the class. + A that represents the type to associate with this component converter. + + + Gets a collection of properties for the type of component specified by the value parameter. + A with the properties that are exposed for the component, or null if there are no properties. + An that provides a format context. + An that specifies the type of component to get the properties for. + An array of type that will be used as a filter. + + + Gets a value indicating whether this object supports properties using the specified context. + true because should be called to find the properties of this object. This method never returns false. + An that provides a format context. + + + Provides the base class for a custom component editor. + + + Initializes a new instance of the class. + + + Edits the component and returns a value indicating whether the component was modified based upon a given context. + true if the component was modified; otherwise, false. + An optional context object that can be used to obtain further information about the edit. + The component to be edited. + + + Edits the component and returns a value indicating whether the component was modified. + true if the component was modified; otherwise, false. + The component to be edited. + + + Provides simple functionality for enumerating resources for a component or object. The class is a . + + + Initializes a new instance of the class with default values. + + + Creates a that looks up resources in satellite assemblies based on information from the specified . + A from which the derives all information for finding resource files. + + + Applies a resource's value to the corresponding property of the object. + An that contains the property value to be applied. + A that contains the name of the object to look up in the resources. + + or is null. + + + Applies a resource's value to the corresponding property of the object. + An that contains the property value to be applied. + A that contains the name of the object to look up in the resources. + The culture for which to apply resources. + + or is null. + + + Encapsulates zero or more components. + + + Initializes a new instance of the class. + + + Adds the specified to the . The component is unnamed. + The component to add. + + is null. + + + + + + Adds the specified to the and assigns it a name. + The component to add. + The unique, case-insensitive name to assign to the component.-or- null, which leaves the component unnamed. + + is null. + + is not unique. + + + Gets all the components in the . + A collection that contains the components in the . + + + Creates a site for the given and assigns the given name to the site. + The newly created site. + The to create a site for. + The name to assign to , or null to skip the name assignment. + + + Releases all resources used by the . + + + Releases the unmanaged resources used by the , and optionally releases the managed resources. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Releases unmanaged resources and performs other cleanup operations before the is reclaimed by garbage collection. + + + Gets the service object of the specified type, if it is available. + An implementing the requested service, or null if the service cannot be resolved. + The of the service to retrieve. + + + Removes a component from the . + The component to remove. + + + Removes a component from the without setting to null. + The component to remove. + + + Determines whether the component name is unique for this container. + The named component. + The component name to validate. + + is null. + + is not unique. + + + Provides a base class for the container filter service. + + + Initializes a new instance of the class. + + + Filters the component collection. + A that represents a modified collection. + The component collection to filter. + + + Provides a type converter to convert objects to and from various other representations. + + + Initializes a new instance of the class. + + + Gets a value indicating whether this converter can convert an object in the given source type to a using the specified context. + true if this converter can perform the conversion; otherwise, false. + An that provides a format context. + A that represents the type you wish to convert from. + + + Gets a value indicating whether this converter can convert an object to the given destination type using the context. + true if this converter can perform the conversion; otherwise, false. + An that provides a format context. + A that represents the type you wish to convert to. + + + Converts the specified value object to a . + An that represents the converted value. + An that provides a format context. + A that specifies the culture to which to convert. + The to convert. + + specifies a culture that is not valid. + The conversion cannot be performed. + + + Converts the given value object to the specified destination type. + An that represents the converted . + An that provides a format context. + A that specifies the culture to which to convert. + The to convert. + The to convert the value to. + + is null. + The conversion cannot be performed. + + + Retrieves the name of the specified culture. + The name of the specified culture. + A that specifies the culture to get the name for. + + + Gets a collection of standard values for a object using the specified context. + A containing a standard set of valid values, or null if the data type does not support a standard set of values. + An that provides a format context. + + + Gets a value indicating whether the list of standard values returned from is an exhaustive list. + false because the returned from is not an exhaustive list of possible values (that is, other values are possible). This method never returns true. + An that provides a format context. + + + Gets a value indicating whether this object supports a standard set of values that can be picked from a list using the specified context. + true because should be called to find a common set of values the object supports. This method never returns false. + An that provides a format context. + + + Provides a simple default implementation of the interface. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using a parent custom type descriptor. + The parent custom type descriptor. + + + Returns a collection of custom attributes for the type represented by this type descriptor. + An containing the attributes for the type. The default is . + + + Returns the fully qualified name of the class represented by this type descriptor. + A containing the fully qualified class name of the type this type descriptor is describing. The default is null. + + + Returns the name of the class represented by this type descriptor. + A containing the name of the component instance this type descriptor is describing. The default is null. + + + Returns a type converter for the type represented by this type descriptor. + A for the type represented by this type descriptor. The default is a newly created . + + + Returns the event descriptor for the default event of the object represented by this type descriptor. + The for the default event on the object represented by this type descriptor. The default is null. + + + Returns the property descriptor for the default property of the object represented by this type descriptor. + A for the default property on the object represented by this type descriptor. The default is null. + + + Returns an editor of the specified type that is to be associated with the class represented by this type descriptor. + An editor of the given type that is to be associated with the class represented by this type descriptor. The default is null. + The base type of the editor to retrieve. + + + Returns a collection of event descriptors for the object represented by this type descriptor. + An containing the event descriptors for the object represented by this type descriptor. The default is . + + + Returns a filtered collection of event descriptors for the object represented by this type descriptor. + An containing the event descriptions for the object represented by this type descriptor. The default is . + An array of attributes to use as a filter. This can be null. + + + Returns a collection of property descriptors for the object represented by this type descriptor. + A containing the property descriptions for the object represented by this type descriptor. The default is . + + + Returns a filtered collection of property descriptors for the object represented by this type descriptor. + A containing the property descriptions for the object represented by this type descriptor. The default is . + An array of attributes to use as a filter. This can be null. + + + Returns an object that contains the property described by the specified property descriptor. + An that owns the given property specified by the type descriptor. The default is null. + The property descriptor for which to retrieve the owning object. + + + Provides data for the event. + + + Initializes a new instance of the class. + The name of the property that has an error. null or if the error is object-level. + + + Gets the name of the property that has an error. + The name of the property that has an error. null or if the error is object-level. + + + Identifies a type as an object suitable for binding to an object. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class and indicates whether an object is suitable for binding to an object. + true if the object is suitable for binding to an object; otherwise, false. + + + Indicates that the class is suitable for binding to an object at design time. This field is read-only. + + + Represents the default value of the class, which indicates that the class is suitable for binding to an object at design time. This field is read-only. + + + Determines whether this instance of fits the pattern of another object. + true if this instance is the same as the instance specified by the parameter; otherwise, false. + An object to compare with this instance of . + + + Returns the hash code for this instance. + A 32-bit signed integer hash code. + + + Gets a value indicating whether an object should be considered suitable for binding to an object at design time. + true if the object should be considered suitable for binding to an object; otherwise, false. + + + Gets a value indicating whether the current value of the attribute is the default value for the attribute. + true if the current value of the attribute is the default; otherwise, false. + + + Indicates that the class is not suitable for binding to an object at design time. This field is read-only. + + + Provides metadata for a property representing a data field. This class cannot be inherited. + + + Initializes a new instance of the class and indicates whether the field is the primary key for the data row. + true to indicate that the field is in the primary key of the data row; otherwise, false. + + + Initializes a new instance of the class and indicates whether the field is the primary key for the data row, and whether the field is a database identity field. + true to indicate that the field is in the primary key of the data row; otherwise, false. + true to indicate that the field is an identity field that uniquely identifies the data row; otherwise, false. + + + Initializes a new instance of the class and indicates whether the field is the primary key for the data row, whether the field is a database identity field, and whether the field can be null. + true to indicate that the field is in the primary key of the data row; otherwise, false. + true to indicate that the field is an identity field that uniquely identifies the data row; otherwise, false. + true to indicate that the field can be null in the data store; otherwise, false. + + + Initializes a new instance of the class and indicates whether the field is the primary key for the data row, whether it is a database identity field, and whether it can be null and sets the length of the field. + true to indicate that the field is in the primary key of the data row; otherwise, false. + true to indicate that the field is an identity field that uniquely identifies the data row; otherwise, false. + true to indicate that the field can be null in the data store; otherwise, false. + The length of the field in bytes. + + + Returns a value indicating whether this instance is equal to a specified object. + true if this instance is the same as the instance specified by the parameter; otherwise, false. + An object to compare with this instance of . + + + Returns the hash code for this instance. + A 32-bit signed integer hash code. + + + Gets a value indicating whether a property represents an identity field in the underlying data. + true if the property represents an identity field in the underlying data; otherwise, false. The default value is false. + + + Gets a value indicating whether a property represents a field that can be null in the underlying data store. + true if the property represents a field that can be null in the underlying data store; otherwise, false. + + + Gets the length of the property in bytes. + The length of the property in bytes, or -1 if not set. + + + Gets a value indicating whether a property is in the primary key in the underlying data. + true if the property is in the primary key of the data store; otherwise, false. + + + Identifies a data operation method exposed by a type, what type of operation the method performs, and whether the method is the default data method. This class cannot be inherited. + + + Initializes a new instance of the class and identifies the type of data operation the method performs. + One of the values that describes the data operation the method performs. + + + Initializes a new instance of the class, identifies the type of data operation the method performs, and identifies whether the method is the default data method that the data object exposes. + One of the values that describes the data operation the method performs. + true to indicate the method that the attribute is applied to is the default method of the data object for the specified ; otherwise, false. + + + Returns a value indicating whether this instance is equal to a specified object. + true if this instance is the same as the instance specified by the parameter; otherwise, false. + An object to compare with this instance of . + + + Returns the hash code for this instance. + A 32-bit signed integer hash code. + + + Gets a value indicating whether the method that the is applied to is the default data method exposed by the data object for a specific method type. + true if the method is the default method exposed by the object for a method type; otherwise, false. + + + Gets a value indicating whether this instance shares a common pattern with a specified attribute. + true if this instance is the same as the instance specified by the parameter; otherwise, false. + An object to compare with this instance of . + + + Gets a value indicating the type of data operation the method performs. + One of the values that identifies the type of data operation performed by the method to which the is applied. + + + Identifies the type of data operation performed by a method, as specified by the applied to the method. + + + Indicates that a method is used for a data operation that deletes data. + + + Indicates that a method is used for a data operation that fills a object. + + + Indicates that a method is used for a data operation that inserts data. + + + Indicates that a method is used for a data operation that retrieves data. + + + Indicates that a method is used for a data operation that updates data. + + + Provides a type converter to convert objects to and from various other representations. + + + Initializes a new instance of the class. + + + Gets a value indicating whether this converter can convert an object in the given source type to a using the specified context. + true if this object can perform the conversion; otherwise, false. + An that provides a format context. + A that represents the type you wish to convert from. + + + Gets a value indicating whether this converter can convert an object to the given destination type using the context. + true if this converter can perform the conversion; otherwise, false. + An that provides a format context. + A that represents the type you wish to convert to. + + + Converts the given value object to a . + An that represents the converted . + An that provides a format context. + An optional . If not supplied, the current culture is assumed. + The to convert. + + is not a valid value for the target type. + The conversion cannot be performed. + + + Converts the given value object to a using the arguments. + An that represents the converted . + An that provides a format context. + An optional . If not supplied, the current culture is assumed. + The to convert. + The to convert the value to. + The conversion cannot be performed. + + + Provides a type converter to convert structures to and from various other representations. + + + Initializes a new instance of the class. + + + Returns a value that indicates whether an object of the specified source type can be converted to a . + true if the specified type can be converted to a ; otherwise, false. + The date format context. + The source type to check. + + + Returns a value that indicates whether a can be converted to an object of the specified type. + true if a can be converted to the specified type; otherwise, false. + The date format context. + The destination type to check. + + + Converts the specified object to a . + A that represents the specified object. + The date format context. + The date culture. + The object to be converted. + The conversion cannot be performed. + + + Converts a to an object of the specified type. + An object of the specified type that represents the . + The date format context. + The date culture. + The to be converted. + The type to convert to. + The conversion cannot be performed. + + + Provides a type converter to convert objects to and from various other representations. + + + Initializes a new instance of the class. + + + Gets a value indicating whether this converter can convert an object to the given destination type using the context. + true if this converter can perform the conversion; otherwise, false. + An that provides a format context. + A that represents the type you wish to convert to. + + + Converts the given value object to a using the arguments. + An that represents the converted value. + An that provides a format context. + An optional . If not supplied, the current culture is assumed. + The to convert. + The to convert the value to. + The is null. + The conversion cannot be performed. + + + Specifies the default binding property for a component. This class cannot be inherited. + + + Initializes a new instance of the class using no parameters. + + + Initializes a new instance of the class using the specified property name. + The name of the default binding property. + + + Represents the default value for the class. + + + Determines whether the specified is equal to the current instance. + true if the object is equal to the current instance; otherwise, false, indicating they are not equal. + The to compare with the current instance + + + A 32-bit signed integer hash code. + + + Gets the name of the default binding property for the component to which the is bound. + The name of the default binding property for the component to which the is bound. + + + Specifies the default event for a component. + + + Initializes a new instance of the class. + The name of the default event for the component this attribute is bound to. + + + Specifies the default value for the , which is null. This static field is read-only. + + + Returns whether the value of the given object is equal to the current . + true if the value of the given object is equal to that of the current; otherwise, false. + The object to test the value equality of. + + + Returns the hash code for this instance. + A 32-bit signed integer hash code. + + + Gets the name of the default event for the component this attribute is bound to. + The name of the default event for the component this attribute is bound to. The default value is null. + + + Specifies the default property for a component. + + + Initializes a new instance of the class. + The name of the default property for the component this attribute is bound to. + + + Specifies the default value for the , which is null. This static field is read-only. + + + Returns whether the value of the given object is equal to the current . + true if the value of the given object is equal to that of the current; otherwise, false. + The object to test the value equality of. + + + Returns the hash code for this instance. + A 32-bit signed integer hash code. + + + Gets the name of the default property for the component this attribute is bound to. + The name of the default property for the component this attribute is bound to. The default value is null. + + + Specifies the default value for a property. + + + Initializes a new instance of the class using a value. + A that is the default value. + + + Initializes a new instance of the class using an 8-bit unsigned integer. + An 8-bit unsigned integer that is the default value. + + + Initializes a new instance of the class using a Unicode character. + A Unicode character that is the default value. + + + Initializes a new instance of the class using a double-precision floating point number. + A double-precision floating point number that is the default value. + + + Initializes a new instance of the class using a 16-bit signed integer. + A 16-bit signed integer that is the default value. + + + Initializes a new instance of the class using a 32-bit signed integer. + A 32-bit signed integer that is the default value. + + + Initializes a new instance of the class using a 64-bit signed integer. + A 64-bit signed integer that is the default value. + + + Initializes a new instance of the class. + An that represents the default value. + + + Initializes a new instance of the class using a single-precision floating point number. + A single-precision floating point number that is the default value. + + + Initializes a new instance of the class using a . + A that is the default value. + + + Initializes a new instance of the class, converting the specified value to the specified type, and using an invariant culture as the translation context. + A that represents the type to convert the value to. + A that can be converted to the type using the for the type and the U.S. English culture. + + + Returns whether the value of the given object is equal to the current . + true if the value of the given object is equal to that of the current; otherwise, false. + The object to test the value equality of. + + + + Sets the default value for the property to which this attribute is bound. + The default value. + + + Gets the default value of the property this attribute is bound to. + An that represents the default value of the property this attribute is bound to. + + + Specifies a description for a property or event. + + + Initializes a new instance of the class with no parameters. + + + Initializes a new instance of the class with a description. + The description text. + + + Specifies the default value for the , which is an empty string (""). This static field is read-only. + + + Gets the description stored in this attribute. + The description stored in this attribute. + + + Gets or sets the string stored as the description. + The string stored as the description. The default value is an empty string (""). + + + Returns whether the value of the given object is equal to the current . + true if the value of the given object is equal to that of the current; otherwise, false. + The object to test the value equality of. + + + + Returns a value indicating whether this is the default instance. + true, if this is the default instance; otherwise, false. + + + Specifies the class used to implement design-time services for a component. + + + Initializes a new instance of the class using the name of the type that provides design-time services. + The concatenation of the fully qualified name of the type that provides design-time services for the component this attribute is bound to, and the name of the assembly this type resides in. + + + Initializes a new instance of the class using the designer type and the base class for the designer. + The concatenation of the fully qualified name of the type that provides design-time services for the component this attribute is bound to, and the name of the assembly this type resides in. + The fully qualified name of the base class to associate with the designer class. + + + Initializes a new instance of the class, using the name of the designer class and the base class for the designer. + The concatenation of the fully qualified name of the type that provides design-time services for the component this attribute is bound to, and the name of the assembly this type resides in. + A that represents the base class to associate with the . + + + Initializes a new instance of the class using the type that provides design-time services. + A that represents the class that provides design-time services for the component this attribute is bound to. + + + Initializes a new instance of the class using the types of the designer and designer base class. + A that represents the class that provides design-time services for the component this attribute is bound to. + A that represents the base class to associate with the . + + + Gets the name of the base type of this designer. + The name of the base type of this designer. + + + Gets the name of the designer type associated with this designer attribute. + The name of the designer type associated with this designer attribute. + + + Returns whether the value of the given object is equal to the current . + true if the value of the given object is equal to that of the current; otherwise, false. + The object to test the value equality of. + + + + Gets a unique ID for this attribute type. + A unique ID for this attribute type. + + + Specifies that the designer for a class belongs to a certain category. + + + Initializes a new instance of the class with an empty string (""). + + + Initializes a new instance of the class with the given category name. + The name of the category. + + + Gets the name of the category. + The name of the category. + + + Specifies that a component marked with this category use a component designer. This field is read-only. + + + Specifies that a component marked with this category cannot use a visual designer. This static field is read-only. + + + Returns whether the value of the given object is equal to the current . + true if the value of the given object is equal to that of the current; otherwise, false. + The object to test the value equality of. + + + Specifies that a component marked with this category use a form designer. This static field is read-only. + + + Specifies that a component marked with this category use a generic designer. This static field is read-only. + + + Returns the hash code for this instance. + A 32-bit signed integer hash code. + + + Determines if this attribute is the default. + true if the attribute is the default value for this attribute class; otherwise, false. + + + Gets a unique identifier for this attribute. + An that is a unique identifier for the attribute. + + + Specifies the visibility a property has to the design-time serializer. + + + The code generator produces code for the contents of the object, rather than for the object itself. + + + The code generator does not produce code for the object. + + + The code generator produces code for the object. + + + Specifies the type of persistence to use when serializing a property on a component at design time. + + + Initializes a new instance of the class using the specified value. + One of the values. + + + Specifies that a serializer should serialize the contents of the property, rather than the property itself. This field is read-only. + + + Specifies the default value, which is , that is, a visual designer uses default rules to generate the value of a property. This static field is read-only. + + + Indicates whether this instance and a specified object are equal. + true if is equal to this instance; otherwise, false. + Another object to compare to. + + + Returns the hash code for this object. + A 32-bit signed integer hash code. + + + Specifies that a serializer should not serialize the value of the property. This static field is read-only. + + + Gets a value indicating whether the current value of the attribute is the default value for the attribute. + true if the attribute is set to the default value; otherwise, false. + + + Gets a value indicating the basic serialization mode a serializer should use when determining whether and how to persist the value of a property. + One of the values. The default is . + + + Specifies that a serializer should be allowed to serialize the value of the property. This static field is read-only. + + + Specifies whether a property can only be set at design time. + + + Initializes a new instance of the class. + true if a property can be set only at design time; false if the property can be set at design time and at run time. + + + Specifies the default value for the , which is . This static field is read-only. + + + Returns whether the value of the given object is equal to the current . + true if the value of the given object is equal to that of the current; otherwise, false. + The object to test the value equality of. + + + + Determines if this attribute is the default. + true if the attribute is the default value for this attribute class; otherwise, false. + + + Gets a value indicating whether a property can be set only at design time. + true if a property can be set only at design time; otherwise, false. + + + Specifies that a property can be set at design time or at run time. This static field is read-only. + + + Specifies that a property can be set only at design time. This static field is read-only. + + + + marks a component's visibility. If is present, a visual designer can show this component on a designer. + + + Creates a new set to the default value of false. + + + Creates a new with the property set to the given value in . + The value that the property will be set against. + + + The default visibility which is Yes. + + + The object to compare. + + + + Gets a value indicating if this instance is equal to the value. + true, if this instance is equal to the value; otherwise, false. + + + Marks a component as not visible in a visual designer. + + + Gets or sets whether the component should be shown at design time. + true if this component should be shown at design time, or false if it shouldn't. + + + Marks a component as visible in a visual designer. + + + Specifies the display name for a property, event, or public void method which takes no arguments. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the display name. + The display name. + + + Specifies the default value for the . This field is read-only. + + + Gets the display name for a property, event, or public void method that takes no arguments stored in this attribute. + The display name. + + + Gets or sets the display name. + The display name. + + + Determines whether two instances are equal. + true if the value of the given object is equal to that of the current object; otherwise, false. + The to test the value equality of. + + + Returns the hash code for this instance. + A hash code for the current . + + + Determines if this attribute is the default. + true if the attribute is the default value for this attribute class; otherwise, false. + + + Provides a type converter to convert double-precision, floating point number objects to and from various other representations. + + + Initializes a new instance of the class. + + + Provides data for the event handler. + + + Initializes a new instance of the class. + Specifies an argument for an asynchronous operation. + + + Gets a value that represents the argument of an asynchronous operation. + An representing the argument of an asynchronous operation. + + + Gets or sets a value that represents the result of an asynchronous operation. + An representing the result of an asynchronous operation. + + + Represents the method that will handle the event. This class cannot be inherited. + The source of the event. + A that contains the event data. + + + Specifies the editor to use to change a property. This class cannot be inherited. + + + Initializes a new instance of the class with the default editor, which is no editor. + + + Initializes a new instance of the class with the type name and base type name of the editor. + The fully qualified type name of the editor. + The fully qualified type name of the base class or interface to use as a lookup key for the editor. This class must be or derive from . + + + Initializes a new instance of the class with the type name and the base type. + The fully qualified type name of the editor. + The of the base class or interface to use as a lookup key for the editor. This class must be or derive from . + + + Initializes a new instance of the class with the type and the base type. + A that represents the type of the editor. + The of the base class or interface to use as a lookup key for the editor. This class must be or derive from . + + + Gets the name of the base class or interface serving as a lookup key for this editor. + The name of the base class or interface serving as a lookup key for this editor. + + + Gets the name of the editor class in the format. + The name of the editor class in the format. + + + Returns whether the value of the given object is equal to the current . + true if the value of the given object is equal to that of the current object; otherwise, false. + The object to test the value equality of. + + + + Gets a unique ID for this attribute type. + A unique ID for this attribute type. + + + Specifies that a property or method is viewable in an editor. This class cannot be inherited. + + + Initializes a new instance of the class with set to the default state. + + + Initializes a new instance of the class with an . + The to set to. + + + Returns whether the value of the given object is equal to the current . + true if the value of the given object is equal to that of the current; otherwise, false. + The object to test the value equality of. + + + + Gets the browsable state of the property or method. + An that is the browsable state of the property or method. + + + Specifies the browsable state of a property or method from within an editor. + + + The property or method is a feature that only advanced users should see. An editor can either show or hide such properties. + + + The property or method is always browsable from within an editor. + + + The property or method is never browsable from within an editor. + + + Provides a type converter to convert objects to and from various other representations. + + + Initializes a new instance of the class for the given type. + A that represents the type of enumeration to associate with this enumeration converter. + + + Gets a value indicating whether this converter can convert an object in the given source type to an enumeration object using the specified context. + true if this converter can perform the conversion; otherwise, false. + An that provides a format context. + A that represents the type you wish to convert from. + + + Gets a value indicating whether this converter can convert an object to the given destination type using the context. + true if this converter can perform the conversion; otherwise, false. + An that provides a format context. + A that represents the type you wish to convert to. + + + Gets an that can be used to sort the values of the enumeration. + An for sorting the enumeration values. + + + Converts the specified value object to an enumeration object. + An that represents the converted . + An that provides a format context. + An optional . If not supplied, the current culture is assumed. + The to convert. + + is not a valid value for the target type. + The conversion cannot be performed. + + + Converts the given value object to the specified destination type. + An that represents the converted . + An that provides a format context. + An optional . If not supplied, the current culture is assumed. + The to convert. + The to convert the value to. + + is null. + + is not a valid value for the enumeration. + The conversion cannot be performed. + + + Specifies the type of the enumerator this converter is associated with. + The type of the enumerator this converter is associated with. + + + Gets a collection of standard values for the data type this validator is designed for. + A that holds a standard set of valid values, or null if the data type does not support a standard set of values. + An that provides a format context. + + + Gets a value indicating whether the list of standard values returned from is an exclusive list using the specified context. + true if the returned from is an exhaustive list of possible values; false if other values are possible. + An that provides a format context. + + + Gets a value indicating whether this object supports a standard set of values that can be picked from a list using the specified context. + true because should be called to find a common set of values the object supports. This method never returns false. + An that provides a format context. + + + Gets a value indicating whether the given object value is valid for this type. + true if the specified value is valid for this object; otherwise, false. + An that provides a format context. + The to test. + + + Gets or sets a that specifies the possible values for the enumeration. + A that specifies the possible values for the enumeration. + + + Provides information about an event. + + + Initializes a new instance of the class with the name and attributes in the specified . + A that contains the name of the event and its attributes. + + + Initializes a new instance of the class with the name in the specified and the attributes in both the and the array. + A that has the name of the member and its attributes. + An array with the attributes you want to add to this event description. + + + Initializes a new instance of the class with the specified name and attribute array. + The name of the event. + An array of type that contains the event attributes. + + + When overridden in a derived class, binds the event to the component. + A component that provides events to the delegate. + A delegate that represents the method that handles the event. + + + When overridden in a derived class, gets the type of component this event is bound to. + A that represents the type of component the event is bound to. + + + When overridden in a derived class, gets the type of delegate for the event. + A that represents the type of delegate for the event. + + + When overridden in a derived class, gets a value indicating whether the event delegate is a multicast delegate. + true if the event delegate is multicast; otherwise, false. + + + When overridden in a derived class, unbinds the delegate from the component so that the delegate will no longer receive events from the component. + The component that the delegate is bound to. + The delegate to unbind from the component. + + + Represents a collection of objects. + + + Initializes a new instance of the class with the given array of objects. + An array of type that provides the events for this collection. + + + Initializes a new instance of the class with the given array of objects. The collection is optionally read-only. + An array of type that provides the events for this collection. + true to specify a read-only collection; otherwise, false. + + + Adds an to the end of the collection. + The position of the within the collection. + An to add to the collection. + The collection is read-only. + + + Removes all objects from the collection. + The collection is read-only. + + + Returns whether the collection contains the given . + true if the collection contains the parameter given; otherwise, false. + The to find within the collection. + + + Gets the number of event descriptors in the collection. + The number of event descriptors in the collection. + + + Specifies an empty collection to use, rather than creating a new one with no items. This static field is read-only. + + + Gets the description of the event with the specified name in the collection. + The with the specified name, or null if the event does not exist. + The name of the event to get from the collection. + true if you want to ignore the case of the event; otherwise, false. + + + Gets an enumerator for this . + An enumerator that implements . + + + Returns the index of the given . + The index of the given within the collection. + The to find within the collection. + + + Inserts an to the collection at a specified index. + The index within the collection in which to insert the parameter. + An to insert into the collection. + The collection is read-only. + + + Sorts the members of this , using the specified . + A comparer to use to sort the objects in this collection. + + + Sorts the members of this . The specified order is applied first, followed by the default sort for this collection, which is usually alphabetical. + An array of strings describing the order in which to sort the objects in this collection. + + + Gets or sets the event with the specified index number. + The with the specified index number. + The zero-based index number of the to get or set. + + is not a valid index for . + + + Gets or sets the event with the specified name. + The with the specified name, or null if the event does not exist. + The name of the to get or set. + + + Removes the specified from the collection. + The to remove from the collection. + The collection is read-only. + + + Removes the at the specified index from the collection. + The index of the to remove. + The collection is read-only. + + + Sorts the members of this , using the default sort for this collection, which is usually alphabetical. + The new . + + + Sorts the members of this , using the specified . + The new . + An to use to sort the objects in this collection. + + + Sorts the members of this , given a specified sort order. + The new . + An array of strings describing the order in which to sort the objects in the collection. + + + Sorts the members of this , given a specified sort order and an . + The new . + An array of strings describing the order in which to sort the objects in the collection. + An to use to sort the objects in this collection. + + + Copies the elements of the collection to an , starting at a particular index. + The one-dimensional that is the destination of the elements copied from collection. The must have zero-based indexing. + The zero-based index in at which copying begins. + + + Gets the number of elements contained in the collection. + The number of elements contained in the collection. + + + Gets a value indicating whether access to the collection is synchronized. + true if access to the collection is synchronized; otherwise, false. + + + Gets an object that can be used to synchronize access to the collection. + An object that can be used to synchronize access to the collection. + + + Returns an enumerator that iterates through a collection. + An that can be used to iterate through the collection. + + + Adds an item to the collection. + The position into which the new element was inserted. + The to add to the collection. + The collection is read-only. + + + Removes all the items from the collection. + The collection is read-only. + + + Determines whether the collection contains a specific value. + true if the is found in the collection; otherwise, false. + The to locate in the collection. + + + Determines the index of a specific item in the collection. + The index of if found in the list; otherwise, -1. + The to locate in the collection. + + + Inserts an item to the collection at the specified index. + The zero-based index at which should be inserted. + The to insert into the collection. + The collection is read-only. + + + Gets a value indicating whether the collection has a fixed size. + true if the collection has a fixed size; otherwise, false. + + + Gets a value indicating whether the collection is read-only. + true if the collection is read-only; otherwise, false. + + + Gets or sets the element at the specified index. + The element at the specified index. + The zero-based index of the element to get or set. + The collection is read-only. + + is less than 0. -or- is equal to or greater than . + + + Removes the first occurrence of a specific object from the collection. + The to remove from the collection. + The collection is read-only. + + + Removes the item at the specified index. + The zero-based index of the item to remove. + The collection is read-only. + + + Provides a simple list of delegates. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Adds a delegate to the list. + The object that owns the event. + The delegate to add to the list. + + + Adds a list of delegates to the current list. + The list to add. + + + Disposes the delegate list. + + + Gets or sets the delegate for the specified object. + The delegate for the specified key, or null if a delegate does not exist. + An object to find in the list. + + + Removes a delegate from the list. + The object that owns the event. + The delegate to remove from the list. + + + Provides a type converter to convert expandable objects to and from various other representations. + + + Initializes a new instance of the class. + + + Gets a collection of properties for the type of object specified by the value parameter. + A with the properties that are exposed for the component, or null if there are no properties. + An that provides a format context. + An that specifies the type of object to get the properties for. + An array of type that will be used as a filter. + + + Gets a value indicating whether this object supports properties using the specified context. + true because should be called to find the properties of this object. This method never returns false. + An that provides a format context. + + + Specifies a property that is offered by an extender provider. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Determines whether the specified is equal to the current . + true if the specified is equal to the current ; otherwise, false. + An to compare with this instance or null. + + + Gets the property that is being provided. + A encapsulating the property that is being provided. + + + Returns the hash code for this instance. + A 32-bit signed integer hash code. + + + Provides an indication whether the value of this instance is the default value for the derived class. + true if this instance is the default attribute for the class; otherwise, false. + + + Gets the extender provider that is providing the property. + The that is providing the property. + + + Gets the type of object that can receive the property. + A describing the type of object that can receive the property. + + + Provides a type converter to convert objects to and from various other representations. + + + Initializes a new instance of the class. + + + Gets a value indicating whether this converter can convert an object in the given source type to a GUID object using the context. + true if this converter can perform the conversion; otherwise, false. + An that provides a format context. + A that represents the type you wish to convert from. + + + Gets a value indicating whether this converter can convert an object to the given destination type using the context. + true if this converter can perform the conversion; otherwise, false. + An that provides a format context. + A that represents the type you wish to convert to. + + + Converts the given object to a GUID object. + An that represents the converted . + An that provides a format context. + An optional . If not supplied, the current culture is assumed. + The to convert. + The conversion cannot be performed. + + + Converts the given object to another type. + The converted object. + A formatter context. + The culture into which will be converted. + The object to convert. + The type to convert the object to. + + is null. + The conversion cannot be performed. + + + Provides data for events that can be handled completely in an event handler. + + + Initializes a new instance of the class with a default property value of false. + + + Initializes a new instance of the class with the specified default value for the property. + The default value for the property. + + + Gets or sets a value that indicates whether the event handler has completely handled the event or whether the system should continue its own processing. + true if the event has been completely handled; otherwise, false. + + + Represents a method that can handle events which may or may not require further processing after the event handler has returned. + The source of the event. + A that contains the event data. + + + Provides the features required to support both complex and simple scenarios when binding to a data source. + + + Adds the to the indexes used for searching. + The to add to the indexes used for searching. + + + Adds a new item to the list. + The item added to the list. + + is false. + + + Gets whether you can update items in the list. + true if you can update the items in the list; otherwise, false. + + + Gets whether you can add items to the list using . + true if you can add items to the list using ; otherwise, false. + + + Gets whether you can remove items from the list, using or . + true if you can remove items from the list; otherwise, false. + + + Sorts the list based on a and a . + The to sort by. + One of the values. + + is false. + + + Returns the index of the row that has the given . + The index of the row that has the given . + The to search on. + The value of the parameter to search for. + + is false. + + + Gets whether the items in the list are sorted. + true if has been called and has not been called; otherwise, false. + + is false. + + + Occurs when the list changes or an item in the list changes. + + + Removes the from the indexes used for searching. + The to remove from the indexes used for searching. + + + Removes any sort applied using . + + is false. + + + Gets the direction of the sort. + One of the values. + + is false. + + + Gets the that is being used for sorting. + The that is being used for sorting. + + is false. + + + Gets whether a event is raised when the list changes or an item in the list changes. + true if a event is raised when the list changes or when an item changes; otherwise, false. + + + Gets whether the list supports searching using the method. + true if the list supports searching using the method; otherwise, false. + + + Gets whether the list supports sorting. + true if the list supports sorting; otherwise, false. + + + Extends the interface by providing advanced sorting and filtering capabilities. + + + Sorts the data source based on the given . + The containing the sorts to apply to the data source. + + + Gets or sets the filter to be used to exclude items from the collection of items returned by the data source + The string used to filter items out in the item collection returned by the data source. + + + Removes the current filter applied to the data source. + + + Gets the collection of sort descriptions currently applied to the data source. + The currently applied to the data source. + + + Gets a value indicating whether the data source supports advanced sorting. + true if the data source supports advanced sorting; otherwise, false. + + + Gets a value indicating whether the data source supports filtering. + true if the data source supports filtering; otherwise, false. + + + Adds transactional capability when adding a new item to a collection. + + + Discards a pending new item from the collection. + The index of the item that was previously added to the collection. + + + Commits a pending new item to the collection. + The index of the item that was previously added to the collection. + + + Defines the mechanism for querying the object for changes and resetting of the changed status. + + + Resets the object’s state to unchanged by accepting the modifications. + + + Gets the object's changed status. + true if the object’s content has changed since the last call to ; otherwise, false. + + + Provides a top-level mapping layer between a COM object and a . + + + Gets the attributes for the specified component. + A collection of attributes for . + The component to get attributes for. + + + Gets the class name for the specified component. + The name of the class that corresponds with . + The component to get the class name for. + + + Gets the type converter for the specified component. + The for . + The component to get the for. + + + Gets the default event for the specified component. + An that represents 's default event. + The component to get the default event for. + + + Gets the default property for the specified component. + A that represents 's default property. + The component to get the default property for. + + + Gets the editor for the specified component. + The editor for . + The component to get the editor for. + The base type of the editor for . + + + Gets the events for the specified component. + A collection of event descriptors for . + The component to get events for. + + + Gets the events with the specified attributes for the specified component. + A collection of event descriptors for . + The component to get events for. + The attributes used to filter events. + + + Gets the name of the specified component. + The name of . + The component to get the name of. + + + Gets the properties with the specified attributes for the specified component. + A collection of property descriptors for . + The component to get events for. + The attributes used to filter properties. + + + Gets the value of the property that has the specified dispatch identifier. + The value of the property that has the specified dispatch identifier. + The object to which the property belongs. + The dispatch identifier. + A , passed by reference, that represents whether the property was retrieved. + + + Gets the value of the property that has the specified name. + The value of the property that has the specified name. + The object to which the property belongs. + The name of the property. + A , passed by reference, that represents whether the property was retrieved. + + + Provides functionality required by all components. + + + Represents the method that handles the event of a component. + + + Gets or sets the associated with the . + The object associated with the component; or null, if the component does not have a site. + + + Provides functionality for containers. Containers are objects that logically contain zero or more components. + + + Adds the specified to the at the end of the list. + The to add. + + + Adds the specified to the at the end of the list, and assigns a name to the component. + The to add. + The unique, case-insensitive name to assign to the component.-or- null that leaves the component unnamed. + + + Gets all the components in the . + A collection of objects that represents all the components in the . + + + Removes a component from the . + The to remove. + + + Provides an interface that supplies dynamic custom type information for an object. + + + Returns a collection of custom attributes for this instance of a component. + An containing the attributes for this object. + + + Returns the class name of this instance of a component. + The class name of the object, or null if the class does not have a name. + + + Returns the name of this instance of a component. + The name of the object, or null if the object does not have a name. + + + Returns a type converter for this instance of a component. + A that is the converter for this object, or null if there is no for this object. + + + Returns the default event for this instance of a component. + An that represents the default event for this object, or null if this object does not have events. + + + Returns the default property for this instance of a component. + A that represents the default property for this object, or null if this object does not have properties. + + + Returns an editor of the specified type for this instance of a component. + An of the specified type that is the editor for this object, or null if the editor cannot be found. + A that represents the editor for this object. + + + Returns the events for this instance of a component. + An that represents the events for this component instance. + + + Returns the events for this instance of a component using the specified attribute array as a filter. + An that represents the filtered events for this component instance. + An array of type that is used as a filter. + + + Returns the properties for this instance of a component. + A that represents the properties for this component instance. + + + Returns the properties for this instance of a component using the attribute array as a filter. + A that represents the filtered properties for this component instance. + An array of type that is used as a filter. + + + Returns an object that contains the property described by the specified property descriptor. + An that represents the owner of the specified property. + A that represents the property whose owner is to be found. + + + Provides the functionality to offer custom error information that a user interface can bind to. + + + Gets an error message indicating what is wrong with this object. + An error message indicating what is wrong with this object. The default is an empty string (""). + + + Gets the error message for the property with the given name. + The error message for the property. The default is an empty string (""). + The name of the property whose error message to get. + + + Provides functionality to commit or rollback changes to an object that is used as a data source. + + + Begins an edit on an object. + + + Discards changes since the last call. + + + Pushes changes since the last or call into the underlying object. + + + Defines the interface for extending properties to other components in a container. + + + Specifies whether this object can provide its extender properties to the specified object. + true if this object can provide extender properties to the specified object; otherwise, false. + The to receive the extender properties. + + + Provides an interface to facilitate the retrieval of the builder's name and to display the builder. + + + Gets a localized name. + A localized name. + + + Shows the builder. + true if the value should be replaced with ; otherwise, false (if the user cancels, for example). + The language service that is calling the builder. + The expression being edited. + The new value. + + + Provides functionality to an object to return a list that can be bound to a data source. + + + Gets a value indicating whether the collection is a collection of objects. + true if the collection is a collection of objects; otherwise, false. + + + Returns an that can be bound to a data source from an object that does not implement an itself. + An that can be bound to a data source from the object. + + + Specifies that an object has no subproperties capable of being edited. This class cannot be inherited. + + + Initializes a new instance of the class. + true if the object is immutable; otherwise, false. + + + Represents the default value for . + + + true if equals the type and value of this instance; otherwise, false. + An to compare with this instance or null. + + + Returns the hash code for this instance. + A hash code for the current . + + + Gets whether the object is immutable. + true if the object is immutable; otherwise, false. + + + Indicates whether the value of this instance is the default value. + true if this instance is the default attribute for the class; otherwise, false. + + + Specifies that an object has at least one editable subproperty. This static field is read-only. + + + Specifies that an object has no subproperties that can be edited. This static field is read-only. + + + Provides functionality for nested containers, which logically contain zero or more other components and are owned by a parent component. + + + Gets the owning component for the nested container. + The that owns the nested container. + + + Provides the ability to retrieve the full nested name of a component. + + + Gets the full name of the component in this site. + The full name of the component in this site. + + + Indicates whether the component associated with this attribute has been inherited from a base class. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with the specified inheritance level. + An that indicates the level of inheritance to set this attribute to. + + + Specifies that the default value for is . This field is read-only. + + + Override to test for equality. + true if the object is the same; otherwise, false. + The object to test. + + + Returns the hashcode for this object. + A hash code for the current . + + + Gets or sets the current inheritance level stored in this attribute. + The stored in this attribute. + + + Specifies that the component is inherited. This field is read-only. + + + Specifies that the component is inherited and is read-only. This field is read-only. + + + Gets a value indicating whether the current value of the attribute is the default value for the attribute. + true if the current value of the attribute is the default; otherwise, false. + + + Specifies that the component is not inherited. This field is read-only. + + + Converts this attribute to a string. + A string that represents this . + + + + + + Defines identifiers for types of inheritance levels. + + + The object is inherited. + + + The object is inherited, but has read-only access. + + + The object is not inherited. + + + Specifies which event is raised on initialization. This class cannot be inherited. + + + Initializes a new instance of the class. + The name of the initialization event. + + + Gets the name of the initialization event. + The name of the initialization event. + + + Defines members that data entity classes can implement to provide custom synchronous and asynchronous validation support. + + + Occurs when the validation errors have changed for a property or for the entire entity. + + + Gets the validation errors for a specified property or for the entire entity. + The validation errors for the property or entity. + The name of the property to retrieve validation errors for; or null or , to retrieve entity-level errors. + + + Gets a value that indicates whether the entity has validation errors. + true if the entity currently has validation errors; otherwise, false. + + + Notifies clients that a property value has changed. + + + Occurs when a property value changes. + + + Notifies clients that a property value is changing. + + + Occurs when a property value is changing. + + + Specifies the installer for a type that installs components. + + + Initializes a new instance of the class with the name of the component's installer type. + The name of a that represents the installer for the component this attribute is bound to. This class must implement . + + + Initializes a new instance of the class, when given a that represents the installer for a component. + A that represents the installer for the component this attribute is bound to. This class must implement . + + + Returns whether the value of the given object is equal to the current . + true if the value of the given object is equal to that of the current; otherwise, false. + The object to test the value equality of. + + + Returns the hashcode for this object. + A hash code for the current . + + + Gets the type of installer associated with this attribute. + A that represents the type of installer associated with this attribute, or null if an installer does not exist. + + + Creates an instance of a particular type of property from a drop-down box within the . + + + Initializes a new instance of the class. + + + When overridden in a derived class, returns an instance of the specified type. + An instance of the specified type or null. + The context information. + The specified type. + + + Gets the specified text. + The specified text. + + + + + + Provides a type converter to convert 16-bit signed integer objects to and from other representations. + + + Initializes a new instance of the class. + + + Provides a type converter to convert 32-bit signed integer objects to and from other representations. + + + Initializes a new instance of the class. + + + Provides a type converter to convert 64-bit signed integer objects to and from various other representations. + + + Initializes a new instance of the class. + + + Thrown when a thread on which an operation should execute no longer exists or has no message loop. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with the given and . + The to be used for deserialization. + The destination to be used for deserialization. + + + Initializes a new instance of the class with the specified detailed description. + A detailed description of the error. + + + Initializes a new instance of the class with the specified detailed description and the specified exception. + A detailed description of the error. + A reference to the inner exception that is the cause of this exception. + + + The exception thrown when using invalid arguments that are enumerators. + + + Initializes a new instance of the class without a message. + + + Initializes a new instance of the class using the specified serialization data and context. + The to be used for deserialization. + The destination to be used for deserialization. + + + Initializes a new instance of the class with the specified message. + The message to display with this exception. + + + Initializes a new instance of the class with the specified detailed description and the specified exception. + A detailed description of the error. + A reference to the inner exception that is the cause of this exception. + + + Initializes a new instance of the class with a message generated from the argument, the invalid value, and an enumeration class. + The name of the argument that caused the exception. + The value of the argument that failed. + A that represents the enumeration class with the valid values. + + + Indicates whether a class converts property change events to events. + + + Gets a value indicating whether the object raises events. + true if the object raises events when one of its property values changes; otherwise, false. + + + Provides support for rolling back the changes + + + Resets the object’s state to unchanged by rejecting the modifications. + + + Provides functionality required by sites. + + + Gets the component associated with the when implemented by a class. + The instance associated with the . + + + Gets the associated with the when implemented by a class. + The instance associated with the . + + + Determines whether the component is in design mode when implemented by a class. + true if the component is in design mode; otherwise, false. + + + Gets or sets the name of the component associated with the when implemented by a class. + The name of the component associated with the ; or null, if no name is assigned to the component. + + + Specifies that this object supports a simple, transacted notification for batch initialization. + + + Signals the object that initialization is starting. + + + Signals the object that initialization is complete. + + + Allows coordination of initialization for a component and its dependent properties. + + + Occurs when initialization of the component is completed. + + + Gets a value indicating whether the component is initialized. + true to indicate the component has completed initialization; otherwise, false. + + + Provides a way to synchronously or asynchronously execute a delegate. + + + Asynchronously executes the delegate on the thread that created this object. + An interface that represents the asynchronous operation started by calling this method. + A to a method that takes parameters of the same number and type that are contained in . + An array of type to pass as arguments to the given method. This can be null if no arguments are needed. + + + Waits until the process started by calling completes, and then returns the value generated by the process. + An that represents the return value generated by the asynchronous operation. + An interface that represents the asynchronous operation started by calling . + + + Synchronously executes the delegate on the thread that created this object and marshals the call to the creating thread. + An that represents the return value from the delegate being invoked, or null if the delegate has no return value. + A that contains a method to call, in the context of the thread for the control. + An array of type that represents the arguments to pass to the given method. This can be null if no arguments are needed. + + + Gets a value indicating whether the caller must call when calling an object that implements this interface. + true if the caller must call ; otherwise, false. + + + Provides contextual information about a component, such as its container and property descriptor. + + + Gets the container representing this request. + An with the set of objects for this ; otherwise, null if there is no container or if the does not use outside objects. + + + Gets the object that is connected with this type descriptor request. + The object that invokes the method on the ; otherwise, null if there is no object responsible for the call. + + + Raises the event. + + + Raises the event. + true if this object can be changed; otherwise, false. + + + Gets the that is associated with the given context item. + The that describes the given context item; otherwise, null if there is no responsible for the call. + + + Provides functionality to discover the schema for a bindable list, where the properties available for binding differ from the public properties of the object to bind to. + + + Returns the that represents the properties on each item used to bind data. + The that represents the properties on each item used to bind data. + An array of objects to find in the collection as bindable. This can be null. + + + Returns the name of the list. + The name of the list. + An array of objects, for which the list name is returned. This can be null. + + + Provides the abstract base class for all licenses. A license is granted to a specific instance of a component. + + + Initializes a new instance of the class. + + + When overridden in a derived class, disposes of the resources used by the license. + + + When overridden in a derived class, gets the license key granted to this component. + A license key granted to this component. + + + Specifies when you can use a licensed object and provides a way of obtaining additional services needed to support licenses running within its domain. + + + Initializes a new instance of the class. + + + When overridden in a derived class, returns a saved license key for the specified type, from the specified resource assembly. + The for the specified type. This method returns null unless you override it. + A that represents the type of component. + An with the license key. + + + Gets the requested service, if it is available. + An instance of the service, or null if the service cannot be found. + The type of service to retrieve. + + + When overridden in a derived class, sets a license key for the specified type. + A that represents the component associated with the license key. + The to save for the type of component. + + + When overridden in a derived class, gets a value that specifies when you can use a license. + One of the values that specifies when you can use a license. The default is . + + + Represents the exception thrown when a component cannot be granted a license. + + + Initializes a new instance of the class with the given and . + The to be used for deserialization. + The destination to be used for deserialization. + + + Initializes a new instance of the class for the type of component that was denied a license. + A that represents the type of component that was not granted a license. + + + Initializes a new instance of the class for the type and the instance of the component that was denied a license. + A that represents the type of component that was not granted a license. + The instance of the component that was not granted a license. + + + Initializes a new instance of the class for the type and the instance of the component that was denied a license, along with a message to display. + A that represents the type of component that was not granted a license. + The instance of the component that was not granted a license. + The exception message to display. + + + Initializes a new instance of the class for the type and the instance of the component that was denied a license, along with a message to display and the original exception thrown. + A that represents the type of component that was not granted a license. + The instance of the component that was not granted a license. + The exception message to display. + An that represents the original exception. + + + Sets the with information about the exception. + The to be used for deserialization. + The destination to be used for deserialization. + + is null. + + + Gets the type of the component that was not granted a license. + A that represents the type of component that was not granted a license. + + + Provides properties and methods to add a license to a component and to manage a . This class cannot be inherited. + + + Creates an instance of the specified type, given a context in which you can use the licensed instance. + An instance of the specified type. + A that represents the type to create. + A that specifies when you can use the licensed instance. + + + Creates an instance of the specified type with the specified arguments, given a context in which you can use the licensed instance. + An instance of the specified type with the given array of arguments. + A that represents the type to create. + A that specifies when you can use the licensed instance. + An array of type that represents the arguments for the type. + + + Gets or sets the current , which specifies when you can use the licensed object. + A that specifies when you can use the licensed object. + The property is currently locked and cannot be changed. + + + + + + Returns whether the given type has a valid license. + true if the given type is licensed; otherwise, false. + The to find a valid license for. + + + Determines whether a valid license can be granted for the specified type. + true if a valid license can be granted; otherwise, false. + A that represents the type of object that requests the . + + + Determines whether a valid license can be granted for the specified instance of the type. This method creates a valid . + true if a valid can be granted; otherwise, false. + A that represents the type of object that requests the license. + An object of the specified type or a type derived from the specified type. + A that is a valid license, or null if a valid license cannot be granted. + + + Prevents changes being made to the current of the given object. + The object whose current context you want to lock. + The context is already locked. + + + Allows changes to be made to the current of the given object. + The object whose current context you want to unlock. + + represents a different user than the one specified in a previous call to . + + + Gets the which specifies when you can use the licensed object for the . + One of the values, as specified in the property. + + + Determines whether a license can be granted for the specified type. + A that represents the type of object that requests the license. + A cannot be granted. + + + Determines whether a license can be granted for the instance of the specified type. + A valid . + A that represents the type of object that requests the license. + An of the specified type or a type derived from the specified type. + The type is licensed, but a cannot be granted. + + + Provides the abstract base class for implementing a license provider. + + + Initializes a new instance of the class. + + + When overridden in a derived class, gets a license for an instance or type of component, when given a context and whether the denial of a license throws an exception. + A valid . + A that specifies where you can use the licensed object. + A that represents the component requesting the license. + An object that is requesting the license. + true if a should be thrown when the component cannot be granted a license; otherwise, false. + + + Specifies the to use with a class. This class cannot be inherited. + + + Initializes a new instance of the class without a license provider. + + + Initializes a new instance of the class with the specified type. + The fully qualified name of the license provider class. + + + Initializes a new instance of the class with the specified type of license provider. + A that represents the type of the license provider class. + + + Specifies the default value, which is no provider. This static field is read-only. + + + Indicates whether this instance and a specified object are equal. + true if is equal to this instance; otherwise, false. + Another object to compare to. + + + Returns the hash code for this instance. + A hash code for the current . + + + Gets the license provider that must be used with the associated class. + A that represents the type of the license provider. The default value is null. + + + Indicates a unique ID for this attribute type. + A unique ID for this attribute type. + + + Specifies when the can be used. + + + Used during design time by a visual designer or the compiler. + + + Used during runtime. + + + Provides an implementation of a . The provider works in a similar fashion to the Microsoft .NET Framework standard licensing model. + + + Initializes a new instance of the class. + + + Returns a key for the specified type. + A confirmation that the parameter is licensed. + The object type to return the key. + + + Returns a license for the instance of the component, if one is available. + A valid . If this method cannot find a valid or a valid parameter, it returns null. + A that specifies where you can use the licensed object. + A that represents the component requesting the . + An object that requests the . + true if a should be thrown when a component cannot be granted a license; otherwise, false. + + + + + + Determines whether the key that the method retrieves is valid for the specified type. + true if the key is a valid for the specified type; otherwise, false. + The to check. + A that represents the component requesting the . + + + Specifies that a list can be used as a data source. A visual designer should use this attribute to determine whether to display a particular list in a data-binding picker. This class cannot be inherited. + + + Initializes a new instance of the class using a value to indicate whether the list is bindable. + true if the list is bindable; otherwise, false. + + + Initializes a new instance of the class using to indicate whether the list is bindable. + A that indicates whether the list is bindable. + + + Represents the default value for . + + + Returns whether the object passed is equal to this . + true if the object passed is equal to this ; otherwise, false. + The object to test equality with. + + + Returns the hash code for this instance. + A hash code for the current . + + + Returns whether is set to the default value. + true if is set to the default value; otherwise, false. + + + Gets whether the list is bindable. + true if the list is bindable; otherwise, false. + + + Specifies that the list is not bindable. This static field is read-only. + + + Specifies that the list is bindable. This static field is read-only. + + + Provides data for the event. + + + Initializes a new instance of the class given the type of change and the affected. + A value indicating the type of change. + The that was added, removed, or changed. + + + Initializes a new instance of the class given the type of change and the index of the affected item. + A value indicating the type of change. + The index of the item that was added, changed, or removed. + + + Initializes a new instance of the class given the type of change, the index of the affected item, and a describing the affected item. + A value indicating the type of change. + The index of the item that was added or changed. + The describing the item. + + + Initializes a new instance of the class given the type of change and the old and new index of the item that was moved. + A value indicating the type of change. + The new index of the item that was moved. + The old index of the item that was moved. + + + Gets the type of change. + A value indicating the type of change. + + + Gets the index of the item affected by the change. + The index of the affected by the change. + + + Gets the old index of an item that has been moved. + The old index of the moved item. + + + Gets the that was added, changed, or deleted. + The affected by the change. + + + Represents the method that will handle the event of the class. + The source of the event. + A that contains the event data. + + + Specifies how the list changed. + + + An item added to the list. contains the index of the item that was added. + + + An item changed in the list. contains the index of the item that was changed. + + + An item deleted from the list. contains the index of the item that was deleted. + + + An item moved within the list. contains the previous index for the item, whereas contains the new index for the item. + + + A was added, which changed the schema. + + + A was changed, which changed the schema. + + + A was deleted, which changed the schema. + + + Much of the list has changed. Any listening controls should refresh all their data from the list. + + + Provides a description of the sort operation applied to a data source. + + + Initializes a new instance of the class with the specified property description and direction. + The that describes the property by which the data source is sorted. + One of the values. + + + Gets or sets the abstract description of a class property associated with this + The associated with this . + + + Gets or sets the direction of the sort operation associated with this . + One of the values. + + + Represents a collection of objects. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with the specified array of objects. + The array of objects to be contained in the collection. + + + Determines if the contains a specific value. + true if the is found in the collection; otherwise, false. + The to locate in the collection. + + + Copies the contents of the collection to the specified array, starting at the specified destination array index. + The destination array for the items copied from the collection. + The index of the destination array at which copying begins. + + + Gets the number of items in the collection. + The number of items in the collection. + + + Returns the index of the specified item in the collection. + The index of if found in the list; otherwise, -1. + The to locate in the collection. + + + Gets or sets the specified . + The with the specified index. + The zero-based index of the to get or set in the collection. + An item is set in the , which is read-only. + + + Gets a value indicating whether access to the collection is thread safe. + true in all cases. + + + Gets the current instance that can be used to synchronize access to the collection. + The current instance of the . + + + Gets a that can be used to iterate through the collection. + An that can be used to iterate through the collection. + + + Adds an item to the collection. + The position into which the new element was inserted. + The item to add to the collection. + In all cases. + + + Removes all items from the collection. + In all cases. + + + Inserts an item into the collection at a specified index. + The zero-based index of the to get or set in the collection + The item to insert into the collection. + In all cases. + + + Gets a value indicating whether the collection has a fixed size. + true in all cases. + + + Gets a value indicating whether the collection is read-only. + true in all cases. + + + Gets the specified . + The with the specified index. + The zero-based index of the to get in the collection + + + Removes the first occurrence of an item from the collection. + The item to remove from the collection. + In all cases. + + + Removes an item from the collection at a specified index. + The zero-based index of the to remove from the collection + In all cases. + + + Specifies the direction of a sort operation. + + + Sorts in ascending order. + + + Sorts in descending order. + + + Specifies whether a property should be localized. This class cannot be inherited. + + + Initializes a new instance of the class. + true if a property should be localized; otherwise, false. + + + Specifies the default value, which is . This static field is read-only. + + + Returns whether the value of the given object is equal to the current . + true if the value of the given object is equal to that of the current; otherwise, false. + The object to test the value equality of. + + + Returns the hash code for this instance. + A hash code for the current . + + + Determines if this attribute is the default. + true if the attribute is the default value for this attribute class; otherwise, false. + + + Gets a value indicating whether a property should be localized. + true if a property should be localized; otherwise, false. + + + Specifies that a property should not be localized. This static field is read-only. + + + Specifies that a property should be localized. This static field is read-only. + + + Specifies the properties that support lookup-based binding. This class cannot be inherited. + + + Initializes a new instance of the class using no parameters. + + + Initializes a new instance of the class. + The name of the property to be used as the data source. + The name of the property to be used for the display name. + The name of the property to be used as the source for values. + The name of the property to be used for lookups. + + + Gets the name of the data source property for the component to which the is bound. + The data source property for the component to which the is bound. + + + Represents the default value for the class. + + + Gets the name of the display member property for the component to which the is bound. + The name of the display member property for the component to which the is bound. + + + Determines whether the specified is equal to the current instance. + true if the object is equal to the current instance; otherwise, false, indicating they are not equal. + The to compare with the current instance + + + Returns the hash code for this instance. + A hash code for the current . + + + Gets the name of the lookup member for the component to which this attribute is bound. + The name of the lookup member for the component to which the is bound. + + + Gets the name of the value member property for the component to which the is bound. + The name of the value member property for the component to which the is bound. + + + Implements and provides the base implementation for remotable components that are marshaled by value (a copy of the serialized object is passed). + + + Initializes a new instance of the class. + + + Gets the container for the component. + An object implementing the interface that represents the component's container, or null if the component does not have a site. + + + Gets a value indicating whether the component is currently in design mode. + true if the component is in design mode; otherwise, false. + + + Releases all resources used by the . + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Adds an event handler to listen to the event on the component. + + + Gets the list of event handlers that are attached to this component. + An that provides the delegates for this component. + + + + Gets the implementer of the . + An that represents the implementer of the . + A that represents the type of service you want. + + + Gets or sets the site of the component. + An object implementing the interface that represents the site of the component. + + + Returns a containing the name of the , if any. This method should not be overridden. + A containing the name of the , if any.null if the is unnamed. + + + Represents a mask-parsing service that can be used by any number of controls that support masking, such as the control. + + + Initializes a new instance of the class using the specified mask. + A that represents the input mask. + + + Initializes a new instance of the class using the specified mask and ASCII restriction value. + A that represents the input mask. + true to restrict input to ASCII-compatible characters; otherwise false to allow the entire Unicode set. + + + Initializes a new instance of the class using the specified mask, password character, and prompt usage value. + A that represents the input mask. + A that will be displayed for characters entered into a password string. + true to allow the prompt character as input; otherwise false. + + + Initializes a new instance of the class using the specified mask and culture. + A that represents the input mask. + A that is used to set region-sensitive separator characters. + + + Initializes a new instance of the class using the specified mask, culture, and ASCII restriction value. + A that represents the input mask. + A that is used to set region-sensitive separator characters. + true to restrict input to ASCII-compatible characters; otherwise false to allow the entire Unicode set. + + + Initializes a new instance of the class using the specified mask, culture, prompt usage value, prompt character, password character, and ASCII restriction value. + A that represents the input mask. + A that is used to set region-sensitive separator characters. + A value that specifies whether the prompt character should be allowed as a valid input character. + A that will be displayed as a placeholder for user input. + A that will be displayed for characters entered into a password string. + true to restrict input to ASCII-compatible characters; otherwise false to allow the entire Unicode set. + The mask parameter is null or .-or-The mask contains one or more non-printable characters. + + + Initializes a new instance of the class using the specified mask, culture, password character, and prompt usage value. + A that represents the input mask. + A that is used to set region-sensitive separator characters. + A that will be displayed for characters entered into a password string. + true to allow the prompt character as input; otherwise false. + + + Adds the specified input character to the end of the formatted string. + true if the input character was added successfully; otherwise false. + A value to be appended to the formatted string. + + + Adds the specified input character to the end of the formatted string, and then outputs position and descriptive information. + true if the input character was added successfully; otherwise false. + A value to be appended to the formatted string. + The zero-based position in the formatted string where the attempt was made to add the character. An output parameter. + A that succinctly describes the result of the operation. An output parameter. + + + Adds the characters in the specified input string to the end of the formatted string. + true if all the characters from the input string were added successfully; otherwise false to indicate that no characters were added. + A containing character values to be appended to the formatted string. + The parameter is null. + + + Adds the characters in the specified input string to the end of the formatted string, and then outputs position and descriptive information. + true if all the characters from the input string were added successfully; otherwise false to indicate that no characters were added. + A containing character values to be appended to the formatted string. + The zero-based position in the formatted string where the attempt was made to add the character. An output parameter. + A that succinctly describes the result of the operation. An output parameter. + + + Gets a value indicating whether the prompt character should be treated as a valid input character or not. + true if the user can enter into the control; otherwise, false. The default is true. + + + Gets a value indicating whether the mask accepts characters outside of the ASCII character set. + true if only ASCII is accepted; false if can accept any arbitrary Unicode character. The default is false. + + + Gets the number of editable character positions that have already been successfully assigned an input value. + An containing the number of editable character positions in the input mask that have already been assigned a character value in the formatted string. + + + Gets the number of editable character positions in the input mask that have not yet been assigned an input value. + An containing the number of editable character positions that not yet been assigned a character value. + + + Clears all the editable input characters from the formatted string, replacing them with prompt characters. + + + Clears all the editable input characters from the formatted string, replacing them with prompt characters, and then outputs descriptive information. + A that succinctly describes the result of the operation. An output parameter. + + + Creates a copy of the current . + The object this method creates, cast as an object. + + + Gets the culture that determines the value of the localizable separators and placeholders in the input mask. + A containing the culture information associated with the input mask. + + + Gets the default password character used obscure user input. + A that represents the default password character. + + + Gets the number of editable positions in the formatted string. + An containing the number of editable positions in the formatted string. + + + Gets a newly created enumerator for the editable positions in the formatted string. + An that supports enumeration over the editable positions in the formatted string. + + + Returns the position of the first assigned editable position after the specified position using the specified search direction. + If successful, an representing the zero-based position of the first assigned editable position encountered; otherwise . + The zero-based position in the formatted string to start the search. + A indicating the search direction; either true to search forward or false to search backward. + + + Returns the position of the first assigned editable position between the specified positions using the specified search direction. + If successful, an representing the zero-based position of the first assigned editable position encountered; otherwise . + The zero-based position in the formatted string where the search starts. + The zero-based position in the formatted string where the search ends. + A indicating the search direction; either true to search forward or false to search backward. + + + Returns the position of the first editable position after the specified position using the specified search direction. + If successful, an representing the zero-based position of the first editable position encountered; otherwise . + The zero-based position in the formatted string to start the search. + A indicating the search direction; either true to search forward or false to search backward. + + + Returns the position of the first editable position between the specified positions using the specified search direction. + If successful, an representing the zero-based position of the first editable position encountered; otherwise . + The zero-based position in the formatted string where the search starts. + The zero-based position in the formatted string where the search ends. + A indicating the search direction; either true to search forward or false to search backward. + + + Returns the position of the first non-editable position after the specified position using the specified search direction. + If successful, an representing the zero-based position of the first literal position encountered; otherwise . + The zero-based position in the formatted string to start the search. + A indicating the search direction; either true to search forward or false to search backward. + + + Returns the position of the first non-editable position between the specified positions using the specified search direction. + If successful, an representing the zero-based position of the first literal position encountered; otherwise . + The zero-based position in the formatted string where the search starts. + The zero-based position in the formatted string where the search ends. + A indicating the search direction; either true to search forward or false to search backward. + + + Returns the position of the first unassigned editable position after the specified position using the specified search direction. + If successful, an representing the zero-based position of the first unassigned editable position encountered; otherwise . + The zero-based position in the formatted string to start the search. + A indicating the search direction; either true to search forward or false to search backward. + + + Returns the position of the first unassigned editable position between the specified positions using the specified search direction. + If successful, an representing the zero-based position of the first unassigned editable position encountered; otherwise . + The zero-based position in the formatted string where the search starts. + The zero-based position in the formatted string where the search ends. + A indicating the search direction; either true to search forward or false to search backward. + + + Determines whether the specified denotes success or failure. + true if the specified value represents a success; otherwise, false if it represents failure. + A value typically obtained as an output parameter from a previous operation. + + + Gets or sets a value that indicates whether literal characters in the input mask should be included in the formatted string. + true if literals are included; otherwise, false. The default is true. + + + Gets or sets a value indicating whether is used to represent the absence of user input when displaying the formatted string. + true if the prompt character is used to represent the positions where no user input was provided; otherwise, false. The default is true. + + + Inserts the specified character at the specified position within the formatted string. + true if the insertion was successful; otherwise, false. + The to be inserted. + The zero-based position in the formatted string to insert the character. + + + Inserts the specified character at the specified position within the formatted string, returning the last insertion position and the status of the operation. + true if the insertion was successful; otherwise, false. + The to be inserted. + The zero-based position in the formatted string to insert the character. + If the method is successful, the last position where a character was inserted; otherwise, the first position where the insertion failed. An output parameter. + A that succinctly describes the result of the insertion operation. An output parameter. + + + Inserts the specified string at a specified position within the formatted string. + true if the insertion was successful; otherwise, false. + The to be inserted. + The zero-based position in the formatted string to insert the input string. + The parameter is null. + + + Inserts the specified string at a specified position within the formatted string, returning the last insertion position and the status of the operation. + true if the insertion was successful; otherwise, false. + The to be inserted. + The zero-based position in the formatted string to insert the input string. + If the method is successful, the last position where a character was inserted; otherwise, the first position where the insertion failed. An output parameter. + A that succinctly describes the result of the insertion operation. An output parameter. + The parameter is null. + + + Gets the upper bound of the range of invalid indexes. + A value representing the largest invalid index, as determined by the provider implementation. For example, if the lowest valid index is 0, this property will return -1. + + + Determines whether the specified position is available for assignment. + true if the specified position in the formatted string is editable and has not been assigned to yet; otherwise false. + The zero-based position in the mask to test. + + + Determines whether the specified position is editable. + true if the specified position in the formatted string is editable; otherwise false. + The zero-based position in the mask to test. + + + Gets or sets a value that determines whether password protection should be applied to the formatted string. + true if the input string is to be treated as a password string; otherwise, false. The default is false. + + + Determines whether the specified character is a valid input character. + true if the specified character contains a valid input value; otherwise false. + The value to test. + + + Determines whether the specified character is a valid mask character. + true if the specified character contains a valid mask value; otherwise false. + The value to test. + + + Determines whether the specified character is a valid password character. + true if the specified character contains a valid password value; otherwise false. + The value to test. + + + Gets the element at the specified position in the formatted string. + The at the specified position in the formatted string. + A zero-based index of the element to retrieve. + + is less than zero or greater than or equal to the of the mask. + + + Gets the index in the mask of the rightmost input character that has been assigned to the mask. + If at least one input character has been assigned to the mask, an containing the index of rightmost assigned position; otherwise, if no position has been assigned, . + + + Gets the length of the mask, absent any mask modifier characters. + An containing the number of positions in the mask, excluding characters that modify mask input. + + + Gets the input mask. + A containing the full mask. + + + Gets a value indicating whether all required inputs have been entered into the formatted string. + true if all required input has been entered into the mask; otherwise, false. + + + Gets a value indicating whether all required and optional inputs have been entered into the formatted string. + true if all required and optional inputs have been entered; otherwise, false. + + + Gets or sets the character to be substituted for the actual input characters. + The value used as the password character. + The password character specified when setting this property is the same as the current prompt character, . The two are required to be different. + The character specified when setting this property is not a valid password character, as determined by the method. + + + Gets or sets the character used to represent the absence of user input for all available edit positions. + The character used to prompt the user for input. The default is an underscore (_). + The prompt character specified when setting this property is the same as the current password character, . The two are required to be different. + The character specified when setting this property is not a valid password character, as determined by the method. + + + Removes the last assigned character from the formatted string. + true if the character was successfully removed; otherwise, false. + + + Removes the last assigned character from the formatted string, and then outputs the removal position and descriptive information. + true if the character was successfully removed; otherwise, false. + The zero-based position in the formatted string where the character was actually removed. An output parameter. + A that succinctly describes the result of the operation. An output parameter. + + + Removes the assigned character at the specified position from the formatted string. + true if the character was successfully removed; otherwise, false. + The zero-based position of the assigned character to remove. + + + Removes the assigned characters between the specified positions from the formatted string. + true if the character was successfully removed; otherwise, false. + The zero-based index of the first assigned character to remove. + The zero-based index of the last assigned character to remove. + + + Removes the assigned characters between the specified positions from the formatted string, and then outputs the removal position and descriptive information. + true if the character was successfully removed; otherwise, false. + The zero-based index of the first assigned character to remove. + The zero-based index of the last assigned character to remove. + If successful, the zero-based position in the formatted string of where the characters were actually removed; otherwise, the first position where the operation failed. An output parameter. + A that succinctly describes the result of the operation. An output parameter. + + + Replaces a single character at or beyond the specified position with the specified character value. + true if the character was successfully replaced; otherwise, false. + The value that replaces the existing value. + The zero-based position to search for the first editable character to replace. + + + Replaces a single character between the specified starting and ending positions with the specified character value, and then outputs the removal position and descriptive information. + true if the character was successfully replaced; otherwise, false. + The value that replaces the existing value. + The zero-based position in the formatted string where the replacement starts. + The zero-based position in the formatted string where the replacement ends. + If successful, the zero-based position in the formatted string where the last character was actually replaced; otherwise, the first position where the operation failed. An output parameter. + A that succinctly describes the result of the replacement operation. An output parameter. + + + Replaces a single character at or beyond the specified position with the specified character value, and then outputs the removal position and descriptive information. + true if the character was successfully replaced; otherwise, false. + The value that replaces the existing value. + The zero-based position to search for the first editable character to replace. + If successful, the zero-based position in the formatted string where the last character was actually replaced; otherwise, the first position where the operation failed. An output parameter. + A that succinctly describes the result of the replacement operation. An output parameter. + + + Replaces a range of editable characters starting at the specified position with the specified string. + true if all the characters were successfully replaced; otherwise, false. + The value used to replace the existing editable characters. + The zero-based position to search for the first editable character to replace. + The parameter is null. + + + Replaces a range of editable characters between the specified starting and ending positions with the specified string, and then outputs the removal position and descriptive information. + true if all the characters were successfully replaced; otherwise, false. + The value used to replace the existing editable characters. + The zero-based position in the formatted string where the replacement starts. + The zero-based position in the formatted string where the replacement ends. + If successful, the zero-based position in the formatted string where the last character was actually replaced; otherwise, the first position where the operation failed. An output parameter. + A that succinctly describes the result of the replacement operation. An output parameter. + + + Replaces a range of editable characters starting at the specified position with the specified string, and then outputs the removal position and descriptive information. + true if all the characters were successfully replaced; otherwise, false. + The value used to replace the existing editable characters. + The zero-based position to search for the first editable character to replace. + If successful, the zero-based position in the formatted string where the last character was actually replaced; otherwise, the first position where the operation failed. An output parameter. + A that succinctly describes the result of the replacement operation. An output parameter. + + + Gets or sets a value that determines how an input character that matches the prompt character should be handled. + true if the prompt character entered as input causes the current editable position in the mask to be reset; otherwise, false to indicate that the prompt character is to be processed as a normal input character. The default is true. + + + Gets or sets a value that determines how a space input character should be handled. + true if the space input character causes the current editable position in the mask to be reset; otherwise, false to indicate that it is to be processed as a normal input character. The default is true. + + + Sets the formatted string to the specified input string. + true if all the characters were successfully set; otherwise, false. + The value used to set the formatted string. + The parameter is null. + + + Sets the formatted string to the specified input string, and then outputs the removal position and descriptive information. + true if all the characters were successfully set; otherwise, false. + The value used to set the formatted string. + If successful, the zero-based position in the formatted string where the last character was actually set; otherwise, the first position where the operation failed. An output parameter. + A that succinctly describes the result of the set operation. An output parameter. + The parameter is null. + + + Gets or sets a value indicating whether literal character positions in the mask can be overwritten by their same values. + true to allow literals to be added back; otherwise, false to not allow the user to overwrite literal characters. The default is true. + + + Returns the formatted string in a displayable form. + The formatted that includes prompts and mask literals. + + + Returns the formatted string that includes all the assigned character values. + The formatted that includes all the assigned character values. + + + Returns the formatted string, optionally including password characters. + The formatted that includes literals, prompts, and optionally password characters. + true to return the actual editable characters; otherwise, false to indicate that the property is to be honored. + + + Returns the formatted string, optionally including prompt and literal characters. + The formatted that includes all the assigned character values and optionally includes literals and prompts. + true to include prompt characters in the return string; otherwise, false. + true to include literal characters in the return string; otherwise, false. + + + Returns a substring of the formatted string, optionally including prompt, literal, and password characters. + If successful, a substring of the formatted , which includes all the assigned character values and optionally includes literals, prompts, and password characters; otherwise the string. + true to return the actual editable characters; otherwise, false to indicate that the property is to be honored. + true to include prompt characters in the return string; otherwise, false. + true to return literal characters in the return string; otherwise, false. + The zero-based position in the formatted string where the output begins. + The number of characters to return. + + + Returns a substring of the formatted string, optionally including prompt and literal characters. + If successful, a substring of the formatted , which includes all the assigned character values and optionally includes literals and prompts; otherwise the string. + true to include prompt characters in the return string; otherwise, false. + true to include literal characters in the return string; otherwise, false. + The zero-based position in the formatted string where the output begins. + The number of characters to return. + + + Returns a substring of the formatted string, optionally including password characters. + If successful, a substring of the formatted , which includes literals, prompts, and optionally password characters; otherwise the string. + true to return the actual editable characters; otherwise, false to indicate that the property is to be honored. + The zero-based position in the formatted string where the output begins. + The number of characters to return. + + + Returns a substring of the formatted string. + If successful, a substring of the formatted , which includes all the assigned character values; otherwise the string. + The zero-based position in the formatted string where the output begins. + The number of characters to return. + + + Tests whether the specified character could be set successfully at the specified position. + true if the specified character is valid for the specified position; otherwise, false. + The value to test. + The position in the mask to test the input character against. + A that succinctly describes the result of the operation. An output parameter. + + + Tests whether the specified character would be escaped at the specified position. + true if the specified character would be escaped at the specified position; otherwise, false. + The value to test. + The position in the mask to test the input character against. + + + Tests whether the specified string could be set successfully. + true if the specified string represents valid input; otherwise, false. + The value to test. + + + Tests whether the specified string could be set successfully, and then outputs position and descriptive information. + true if the specified string represents valid input; otherwise, false. + The value to test. + If successful, the zero-based position of the last character actually tested; otherwise, the first position where the test failed. An output parameter. + A that succinctly describes the result of the test operation. An output parameter. + + + Specifies values that succinctly describe the results of a masked text parsing operation. + + + Operation did not succeed.An input character was encountered that was not alphanumeric. . + + + Operation did not succeed.An input character was encountered that was not a member of the ASCII character set. + + + Success. The operation succeeded because a literal, prompt or space character was an escaped character. For more information about escaped characters, see the method. + + + Operation did not succeed. An input character was encountered that was not a digit. + + + Operation did not succeed. The program encountered an input character that was not valid. For more information about characters that are not valid, see the method. + + + Operation did not succeed. An input character was encountered that was not a letter. + + + Success. The primary operation was not performed because it was not needed; therefore, no side effect was produced. + + + Operation did not succeed. The current position in the formatted string is a literal character. + + + Operation did not succeed. The specified position is not in the range of the target string; typically it is either less than zero or greater then the length of the target string. + + + Operation did not succeed. The prompt character is not valid at input, perhaps because the property is set to false. + + + Success. The primary operation was not performed because it was not needed, but the method produced a side effect. For example, the method can delete an unassigned edit position, which causes left-shifting of subsequent characters in the formatted string. + + + Operation did not succeed. An input character was encountered that was not a signed digit. + + + Success. The primary operation succeeded. + + + Operation did not succeed. There were not enough edit positions available to fulfill the request. + + + Unknown. The result of the operation could not be determined. + + + Represents a class member, such as a property or event. This is an abstract base class. + + + Initializes a new instance of the class with the specified . + A that contains the name of the member and its attributes. + + + Initializes a new instance of the class with the name in the specified and the attributes in both the old and the array. + A that has the name of the member and its attributes. + An array of objects with the attributes you want to add to the member. + + + Initializes a new instance of the class with the specified name of the member. + The name of the member. + The name is an empty string ("") or null. + + + Initializes a new instance of the class with the specified name of the member and an array of attributes. + The name of the member. + An array of type that contains the member attributes. + The name is an empty string ("") or null. + + + Gets or sets an array of attributes. + An array of type that contains the attributes of this member. + + + Gets the collection of attributes for this member. + An that provides the attributes for this member, or an empty collection if there are no attributes in the . + + + Gets the name of the category to which the member belongs, as specified in the . + The name of the category to which the member belongs. If there is no , the category name is set to the default category, Misc. + + + + + + Creates a collection of attributes using the array of attributes passed to the constructor. + A new that contains the attributes. + + + Gets the description of the member, as specified in the . + The description of the member. If there is no , the property value is set to the default, which is an empty string (""). + + + Gets whether this member should be set only at design time, as specified in the . + true if this member should be set only at design time; false if the member can be set during run time. + + + Gets the name that can be displayed in a window, such as a Properties window. + The name to display for the member. + + + Compares this instance to the given object to see if they are equivalent. + true if equivalent; otherwise, false. + The object to compare to the current instance. + + + When overridden in a derived class, adds the attributes of the inheriting class to the specified list of attributes in the parent class. + An that lists the attributes in the parent class. Initially, this is empty. + + + Finds the given method through reflection, searching only for public methods. + A that represents the method, or null if the method is not found. + The component that contains the method. + The name of the method to find. + An array of parameters for the method, used to choose between overloaded methods. + The type to return for the method. + + + Finds the given method through reflection, with an option to search only public methods. + A that represents the method, or null if the method is not found. + The component that contains the method. + The name of the method to find. + An array of parameters for the method, used to choose between overloaded methods. + The type to return for the method. + Whether to restrict search to public methods. + + + Returns the hash code for this instance. + A hash code for the current . + + + Retrieves the object that should be used during invocation of members. + The object to be used during member invocations. + The of the invocation target. + The potential invocation target. + + or is null. + + + Gets the component on which to invoke a method. + An instance of the component to invoke. This method returns a visual designer when the property is attached to a visual designer. + A representing the type of component this is bound to. For example, if this describes a property, this parameter should be the class that the property is declared on. + An instance of the object to call. + + or is null. + + + Gets a component site for the given component. + The site of the component, or null if a site does not exist. + The component for which you want to find a site. + + + Gets a value indicating whether the member is browsable, as specified in the . + true if the member is browsable; otherwise, false. If there is no , the property value is set to the default, which is true. + + + Gets the name of the member. + The name of the member. + + + Gets the hash code for the name of the member, as specified in . + The hash code for the name of the member. + + + Specifies that this property can be combined with properties belonging to other objects in a Properties window. + + + Initializes a new instance of the class. + true if this property can be combined with properties belonging to other objects in a Properties window; otherwise, false. + + + Gets a value indicating whether this property can be combined with properties belonging to other objects in a Properties window. + true if this property can be combined with properties belonging to other objects in a Properties window; otherwise, false. + + + Specifies the default value, which is , that is a property can be combined with properties belonging to other objects in a Properties window. This static field is read-only. + + + Indicates whether this instance and a specified object are equal. + true if is equal to this instance; otherwise, false. + Another object to compare to. + + + Returns the hash code for this instance. + A hash code for the current . + + + Determines if this attribute is the default. + true if the attribute is the default value for this attribute class; otherwise, false. + + + Specifies that a property cannot be combined with properties belonging to other objects in a Properties window. This static field is read-only. + + + Specifies that a property can be combined with properties belonging to other objects in a Properties window. This static field is read-only. + + + Provides a type converter to convert multiline strings to a simple string. + + + Initializes a new instance of the class. + + + Converts the given value object to the specified type, using the specified context and culture information. + An that represents the converted value. + An that provides a format context. + A . If null is passed, the current culture is assumed. + The to convert. + The to convert the value parameter to. + + is null. + The conversion cannot be performed. + + + Returns a collection of properties for the type of array specified by the parameter, using the specified context and attributes. + A with the properties that are exposed for this data type, or null if there are no properties. + An that provides a format context. + An that specifies the type of array for which to get properties. + An array of type that is used as a filter. + + + Returns whether this object supports properties, using the specified context. + true if should be called to find the properties of this object; otherwise, false. + An that provides a format context. + + + Provides the base implementation for the interface, which enables containers to have an owning component. + + + Initializes a new instance of the class. + The that owns this nested container. + + is null. + + + Creates a site for the component within the container. + The newly created . + The to create a site for. + The name to assign to , or null to skip the name assignment. + + is null. + + + Releases the resources used by the nested container. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Gets the service object of the specified type, if it is available. + An that implements the requested service, or null if the service cannot be resolved. + The of the service to retrieve. + + + Gets the owning component for this nested container. + The that owns this nested container. + + + Gets the name of the owning component. + The name of the owning component. + + + Indicates that the parent property is notified when the value of the property that this attribute is applied to is modified. This class cannot be inherited. + + + Initializes a new instance of the class, using the specified value to determine whether the parent property is notified of changes to the value of the property. + true if the parent should be notified of changes; otherwise, false. + + + Indicates the default attribute state, that the property should not notify the parent property of changes to its value. This field is read-only. + + + Gets a value indicating whether the specified object is the same as the current object. + true if the object is the same as this object; otherwise, false. + The object to test for equality. + + + Gets the hash code for this object. + The hash code for the object the attribute belongs to. + + + Gets a value indicating whether the current value of the attribute is the default value for the attribute. + true if the current value of the attribute is the default value of the attribute; otherwise, false. + + + Indicates that the parent property is not be notified of changes to the value of the property. This field is read-only. + + + Gets or sets a value indicating whether the parent property should be notified of changes to the value of the property. + true if the parent property should be notified of changes; otherwise, false. + + + Indicates that the parent property is notified of changes to the value of the property. This field is read-only. + + + Provides automatic conversion between a nullable type and its underlying primitive type. + + + Initializes a new instance of the class. + The specified nullable type. + + is not a nullable type. + + + Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context. + true if this converter can perform the conversion; otherwise, false. + An that provides a format context. + A that represents the type you want to convert from. + + + Returns whether this converter can convert the object to the specified type, using the specified context. + true if this converter can perform the conversion; otherwise, false. + An that provides a format context. + A that represents the type you want to convert to. + + + Converts the given object to the type of this converter, using the specified context and culture information. + An that represents the converted value. + An that provides a format context. + The to use as the current culture. + The to convert. + The conversion cannot be performed. + + + Converts the given value object to the specified type, using the specified context and culture information. + An that represents the converted value. + An that provides a format context. + The to use as the current culture. + The to convert. + The to convert the value parameter to. + + is null. + The conversion cannot be performed. + + + An representing the given , or null if the object cannot be created. This method always returns null. + An that provides a format context. + An of new property values. + + + true if changing a property on this object requires a call to to create a new value; otherwise, false. + An that provides a format context. + + + A with the properties that are exposed for this data type, or null if there are no properties. + An that provides a format context. + An that specifies the type of array for which to get properties. + An array of type that is used as a filter. + + + true if should be called to find the properties of this object; otherwise, false. + An that provides a format context. + + + A that holds a standard set of valid values, or null if the data type does not support a standard set of values. + An that provides a format context that can be used to extract additional information about the environment from which this converter is invoked. This parameter or properties of this parameter can be null. + + + true if the returned from is an exhaustive list of possible values; false if other values are possible. + An that provides a format context. + + + true if should be called to find a common set of values the object supports; otherwise, false. + An that provides a format context. + + + An that provides a format context. + The to test for validity. + + + Gets the nullable type. + A that represents the nullable type. + + + Gets the underlying type. + A that represents the underlying type. + + + Gets the underlying type converter. + A that represents the underlying type converter. + + + Indicates whether the name of the associated property is displayed with parentheses in the Properties window. This class cannot be inherited. + + + Initializes a new instance of the class that indicates that the associated property should not be shown with parentheses. + + + Initializes a new instance of the class, using the specified value to indicate whether the attribute is displayed with parentheses. + true if the name should be enclosed in parentheses; otherwise, false. + + + Initializes a new instance of the class with a default value that indicates that the associated property should not be shown with parentheses. This field is read-only. + + + Compares the specified object to this object and tests for equality. + true if equal; otherwise, false. + The object to be compared. + + + Gets the hash code for this object. + The hash code for the object the attribute belongs to. + + + Gets a value indicating whether the current value of the attribute is the default value for the attribute. + true if the current value of the attribute is the default value of the attribute; otherwise, false. + + + Gets a value indicating whether the Properties window displays the name of the property in parentheses in the Properties window. + true if the property is displayed with parentheses; otherwise, false. + + + Indicates that an object's text representation is obscured by characters such as asterisks. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class, optionally showing password text. + true to indicate that the property should be shown as password text; otherwise, false. The default is false. + + + Specifies the default value for the . + + + Determines whether two instances are equal. + true if the specified is equal to the current ; otherwise, false. + The to compare with the current . + + + Returns the hash code for this instance. + A hash code for the current . + + + Returns an indication whether the value of this instance is the default value. + true if this instance is the default attribute for the class; otherwise, false. + + + Specifies that a text property is not used as a password. This static (Shared in Visual Basic) field is read-only. + + + Gets a value indicating if the property for which the is defined should be shown as password text. + true if the property should be shown as password text; otherwise, false. + + + Specifies that a text property is used as a password. This static (Shared in Visual Basic) field is read-only. + + + Provides data for the event. + + + Initializes a new instance of the class. + The percentage of an asynchronous task that has been completed. + A unique user state. + + + Gets the asynchronous task progress percentage. + A percentage value indicating the asynchronous task progress. + + + Gets a unique user state. + A unique indicating the user state. + + + Represents the method that will handle the event of the class. This class cannot be inherited. + The source of the event. + A that contains the event data. + + + Provides data for the event. + + + Initializes a new instance of the class. + The name of the property that changed. + + + Gets the name of the property that changed. + The name of the property that changed. + + + Represents the method that will handle the event raised when a property is changed on a component. + The source of the event. + A that contains the event data. + + + Provides data for the event. + + + Initializes a new instance of the class. + The name of the property whose value is changing. + + + Gets the name of the property whose value is changing. + The name of the property whose value is changing. + + + Represents the method that will handle the event of an interface. + The source of the event. + A that contains the event data. + + + Provides an abstraction of a property on a class. + + + Initializes a new instance of the class with the name and attributes in the specified . + A that contains the name of the property and its attributes. + + + Initializes a new instance of the class with the name in the specified and the attributes in both the and the array. + A containing the name of the member and its attributes. + An array containing the attributes you want to associate with the property. + + + Initializes a new instance of the class with the specified name and attributes. + The name of the property. + An array of type that contains the property attributes. + + + Enables other objects to be notified when this property changes. + The component to add the handler for. + The delegate to add as a listener. + + or is null. + + + When overridden in a derived class, returns whether resetting an object changes its value. + true if resetting the component changes its value; otherwise, false. + The component to test for reset capability. + + + When overridden in a derived class, gets the type of the component this property is bound to. + A that represents the type of component this property is bound to. When the or methods are invoked, the object specified might be an instance of this type. + + + Gets the type converter for this property. + A that is used to convert the of this property. + + + + + + Creates an instance of the specified type. + A new instance of the type. + A that represents the type to create. + + + Compares this to another object to see if they are equivalent. + true if the values are equivalent; otherwise, false. + The object to compare to this . + + + Adds the attributes of the to the specified list of attributes in the parent class. + An that lists the attributes in the parent class. Initially, this is empty. + + + Returns the default . + A collection of property descriptor. + + + + + + Returns a using a specified array of attributes as a filter. + A with the properties that match the specified attributes. + An array of type to use as a filter. + + + Returns a for a given object. + A with the properties for the specified component. + A component to get the properties for. + + + Returns a for a given object using a specified array of attributes as a filter. + A with the properties that match the specified attributes for the specified component. + A component to get the properties for. + An array of type to use as a filter. + + + Gets an editor of the specified type. + An instance of the requested editor type, or null if an editor cannot be found. + The base type of editor, which is used to differentiate between multiple editors that a property supports. + + + Returns the hash code for this object. + The hash code for this object. + + + This method returns the object that should be used during invocation of members. + The that should be used during invocation of members. + The of the invocation target. + The potential invocation target. + + + Returns a type using its name. + A that matches the given type name, or null if a match cannot be found. + The assembly-qualified name of the type to retrieve. + + + When overridden in a derived class, gets the current value of the property on a component. + The value of a property for a given component. + The component with the property for which to retrieve the value. + + + Retrieves the current set of ValueChanged event handlers for a specific component + A combined multicast event handler, or null if no event handlers are currently assigned to . + The component for which to retrieve event handlers. + + + Gets a value indicating whether this property should be localized, as specified in the . + true if the member is marked with the set to true; otherwise, false. + + + When overridden in a derived class, gets a value indicating whether this property is read-only. + true if the property is read-only; otherwise, false. + + + Raises the ValueChanged event that you implemented. + The object that raises the event. + An that contains the event data. + + + When overridden in a derived class, gets the type of the property. + A that represents the type of the property. + + + Enables other objects to be notified when this property changes. + The component to remove the handler for. + The delegate to remove as a listener. + + or is null. + + + When overridden in a derived class, resets the value for this property of the component to the default value. + The component with the property value that is to be reset to the default value. + + + Gets a value indicating whether this property should be serialized, as specified in the . + One of the enumeration values that specifies whether this property should be serialized. + + + When overridden in a derived class, sets the value of the component to a different value. + The component with the property value that is to be set. + The new value. + + + When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. + true if the property should be persisted; otherwise, false. + The component with the property to be examined for persistence. + + + Gets a value indicating whether value change notifications for this property may originate from outside the property descriptor. + true if value change notifications may originate from outside the property descriptor; otherwise, false. + + + Represents a collection of objects. + + + Initializes a new instance of the class. + An array of type that provides the properties for this collection. + + + Initializes a new instance of the class, which is optionally read-only. + An array of type that provides the properties for this collection. + If true, specifies that the collection cannot be modified. + + + Adds the specified to the collection. + The index of the that was added to the collection. + The to add to the collection. + The collection is read-only. + + + Removes all objects from the collection. + The collection is read-only. + + + Returns whether the collection contains the given . + true if the collection contains the given ; otherwise, false. + The to find in the collection. + + + Copies the entire collection to an array, starting at the specified index number. + An array of objects to copy elements of the collection to. + The index of the parameter at which copying begins. + + + Gets the number of property descriptors in the collection. + The number of property descriptors in the collection. + + + Specifies an empty collection that you can use instead of creating a new one with no items. This static field is read-only. + + + Returns the with the specified name, using a Boolean to indicate whether to ignore case. + A with the specified name, or null if the property does not exist. + The name of the to return from the collection. + true if you want to ignore the case of the property name; otherwise, false. + + + Returns an enumerator for this class. + An enumerator of type . + + + Returns the index of the given . + The index of the given . + The to return the index of. + + + Adds the to the collection at the specified index number. + The index at which to add the parameter to the collection. + The to add to the collection. + The collection is read-only. + + + Sorts the members of this collection, using the specified . + A comparer to use to sort the objects in this collection. + + + Sorts the members of this collection. The specified order is applied first, followed by the default sort for this collection, which is usually alphabetical. + An array of strings describing the order in which to sort the objects in this collection. + + + Gets or sets the at the specified index number. + The with the specified index number. + The zero-based index of the to get or set. + The parameter is not a valid index for . + + + Gets or sets the with the specified name. + The with the specified name, or null if the property does not exist. + The name of the to get from the collection. + + + Removes the specified from the collection. + The to remove from the collection. + The collection is read-only. + + + Removes the at the specified index from the collection. + The index of the to remove from the collection. + The collection is read-only. + + + Sorts the members of this collection, using the default sort for this collection, which is usually alphabetical. + A new that contains the sorted objects. + + + Sorts the members of this collection, using the specified . + A new that contains the sorted objects. + A comparer to use to sort the objects in this collection. + + + Sorts the members of this collection. The specified order is applied first, followed by the default sort for this collection, which is usually alphabetical. + A new that contains the sorted objects. + An array of strings describing the order in which to sort the objects in this collection. + + + Sorts the members of this collection. The specified order is applied first, followed by the sort using the specified . + A new that contains the sorted objects. + An array of strings describing the order in which to sort the objects in this collection. + A comparer to use to sort the objects in this collection. + + + Gets the number of elements contained in the collection. + The number of elements contained in the collection. + + + Gets a value indicating whether access to the collection is synchronized (thread safe). + true if access to the collection is synchronized (thread safe); otherwise, false. + + + Gets an object that can be used to synchronize access to the collection. + An object that can be used to synchronize access to the collection. + + + Adds an element with the provided key and value to the . + The to use as the key of the element to add. + The to use as the value of the element to add. + The collection is read-only. + + is null. + + + Removes all elements from the . + + + Determines whether the contains an element with the specified key. + true if the contains an element with the key; otherwise, false. + The key to locate in the . + + + Returns an enumerator for this class. + An enumerator of type . + + + Gets a value indicating whether the has a fixed size. + true if the has a fixed size; otherwise, false. + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. + + + Gets or sets the element with the specified key. + The element with the specified key. + The key of the element to get or set. + + + Gets an containing the keys of the . + An containing the keys of the . + + + Removes the element with the specified key from the . + The key of the element to remove. + + + Gets an containing the values in the . + An containing the values in the . + + + Returns an for the . + An for the . + + + Adds an item to the . + The position into which the new element was inserted. + The item to add to the collection. + + + Removes all items from the collection. + The collection is read-only. + + + Determines whether the collection contains a specific value. + true if the item is found in the collection; otherwise, false. + The item to locate in the collection. + + + Determines the index of a specified item in the collection. + The index of if found in the list, otherwise -1. + The item to locate in the collection. + + + Inserts an item into the collection at a specified index. + The zero-based index at which should be inserted. + The item to insert into the collection. + The collection is read-only. + + + Gets a value indicating whether the collection has a fixed size. + true if the collection has a fixed size; otherwise, false. + + + Gets a value indicating whether the collection is read-only. + true if the collection is read-only; otherwise, false. + + + Gets or sets an item from the collection at a specified index. + The element at the specified index. + The zero-based index of the item to get or set. + The collection is read-only. + + is not a . + + is less than 0. -or- is equal to or greater than . + + + Removes the first occurrence of a specified value from the collection. + The item to remove from the collection. + The collection is read-only. + + + Removes the item at the specified index. + The zero-based index of the item to remove. + The collection is read-only. + + + Identifies the property tab or tabs to display for the specified class or classes. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified tab class name. + The assembly qualified name of the type of tab to create. For an example of this format convention, see . + + + Initializes a new instance of the class using the specified tab class name and tab scope. + The assembly qualified name of the type of tab to create. For an example of this format convention, see . + A that indicates the scope of this tab. If the scope is , it is shown only for components with the corresponding . If it is , it is shown for all components on the document. + + is not or . + + + Initializes a new instance of the class using the specified type of tab. + The type of tab to create. + + + Initializes a new instance of the class using the specified type of tab and tab scope. + The type of tab to create. + A that indicates the scope of this tab. If the scope is , it is shown only for components with the corresponding . If it is , it is shown for all components on the document. + + is not or . + + + Returns a value indicating whether this instance is equal to a specified attribute. + true if the instances are equal; otherwise, false. + A to compare to this instance, or null. + The types specified by the property of the parameter cannot be found. + + + + + + + Returns a value indicating whether this instance is equal to a specified object. + true if refers to the same instance; otherwise, false. + An object to compare to this instance, or null. + The types specified by the property of the parameter could not be found. + + + + + + + Gets the hash code for this object. + The hash code for the object the attribute belongs to. + + + Initializes the attribute using the specified names of tab classes and array of tab scopes. + An array of fully qualified type names of the types to create for tabs on the Properties window. + The scope of each tab. If the scope is , it is shown only for components with the corresponding . If it is , it is shown for all components on the document. + One or more of the values in is not or .-or-The length of the and arrays do not match.-or- or is null. + + + Initializes the attribute using the specified names of tab classes and array of tab scopes. + The types of tabs to create. + The scope of each tab. If the scope is , it is shown only for components with the corresponding . If it is , it is shown for all components on the document. + One or more of the values in is not or .-or-The length of the and arrays do not match.-or- or is null. + + + Gets the types of tabs that this attribute uses. + An array of types indicating the types of tabs that this attribute uses. + The types specified by the property could not be found. + + + + + + + Gets the names of the tab classes that this attribute uses. + The names of the tab classes that this attribute uses. + + + Gets an array of tab scopes of each tab of this . + An array of objects that indicate the scopes of the tabs. + + + Defines identifiers that indicate the persistence scope of a tab in the Properties window. + + + This tab is specific to the current component. This tab is added to the Properties window for the current component only and is removed when the component is no longer selected. + + + This tab is specific to the current document. This tab is added to the Properties window and is removed when the currently selected document changes. + + + This tab is added to the Properties window and can only be removed explicitly by a parent component. + + + This tab is added to the Properties window and cannot be removed. + + + Specifies the name of the property that an implementer of offers to other components. This class cannot be inherited + + + Initializes a new instance of the class with the name of the property and the type of its receiver. + The name of the property extending to an object of the specified type. + The name of the data type this property can extend. + + + Initializes a new instance of the class with the name of the property and its . + The name of the property extending to an object of the specified type. + The of the data type of the object that can receive the property. + + + Returns whether the value of the given object is equal to the current . + true if the value of the given object is equal to that of the current; otherwise, false. + The object to test the value equality of. + + + Returns the hash code for this instance. + A hash code for the current . + + + Gets the name of a property that this class provides. + The name of a property that this class provides. + + + Gets the name of the data type this property can extend. + The name of the data type this property can extend. + + + Gets a unique identifier for this attribute. + An that is a unique identifier for the attribute. + + + Specifies whether the property this attribute is bound to is read-only or read/write. This class cannot be inherited + + + Initializes a new instance of the class. + true to show that the property this attribute is bound to is read-only; false to show that the property is read/write. + + + Specifies the default value for the , which is (that is, the property this attribute is bound to is read/write). This static field is read-only. + + + Indicates whether this instance and a specified object are equal. + true if is equal to this instance; otherwise, false. + Another object to compare to. + + + Returns the hash code for this instance. + A hash code for the current . + + + Determines if this attribute is the default. + true if the attribute is the default value for this attribute class; otherwise, false. + + + Gets a value indicating whether the property this attribute is bound to is read-only. + true if the property this attribute is bound to is read-only; false if the property is read/write. + + + Specifies that the property this attribute is bound to is read/write and can be modified. This static field is read-only. + + + Specifies that the property this attribute is bound to is read-only and cannot be modified in the server explorer. This static field is read-only. + + + Specifies that the property can be used as an application setting. + + + Initializes a new instance of the class. + true if the property this attribute is bound to can be used as an application setting; otherwise, false. + + + Specifies the default value for the , which is . This static field is read-only. + + + Indicates whether this instance and a specified object are equal. + true if is equal to this instance; otherwise, false. + Another object to compare to. + + + Returns the hash code for this instance. + A hash code for the current . + + + Indicates whether the value of this instance is the default value for the class. + true if this instance is the default attribute for the class; otherwise, false. + + + Specifies that a property cannot be used as an application setting. This static field is read-only. + + + Gets a value indicating whether the property this attribute is bound to can be used as an application setting. + true if the property this attribute is bound to can be used as an application setting; otherwise, false. + + + Specifies that a property can be used as an application setting. This static field is read-only. + + + Provides a type converter to convert object references to and from other representations. + + + Initializes a new instance of the class. + A that represents the type to associate with this reference converter. + + + Gets a value indicating whether this converter can convert an object in the given source type to a reference object using the specified context. + true if this object can perform the conversion; otherwise, false. + An that provides a format context. + A that represents the type you wish to convert from. + + + Converts the given object to the reference type. + An that represents the converted . + An that provides a format context. + A that specifies the culture used to represent the font. + The to convert. + The conversion cannot be performed. + + + Converts the given value object to the reference type using the specified context and arguments. + The converted object. + An that provides a format context. + A that specifies the culture used to represent the font. + The to convert. + The type to convert the object to. + + is null. + The conversion cannot be performed. + + + Gets a collection of standard values for the reference data type. + A that holds a standard set of valid values, or null if the data type does not support a standard set of values. + An that provides a format context. + + + Gets a value indicating whether the list of standard values returned from is an exclusive list. + true because the returned from is an exhaustive list of possible values. This method never returns false. + An that provides a format context. + + + Gets a value indicating whether this object supports a standard set of values that can be picked from a list. + true because can be called to find a common set of values the object supports. This method never returns false. + An that provides a format context. + + + Returns a value indicating whether a particular value can be added to the standard values collection. + true if the value is allowed and can be added to the standard values collection; false if the value cannot be added to the standard values collection. + An that provides an additional context. + The value to check. + + + Provides data for the event. + + + Initializes a new instance of the class with the component that has changed. + The component that changed. + + + Initializes a new instance of the class with the type of component that has changed. + The that changed. + + + Gets the component that changed its properties, events, or extenders. + The component that changed its properties, events, or extenders, or null if all components of the same type have changed. + + + Gets the that changed its properties or events. + The that changed its properties or events. + + + Represents the method that handles the event raised when a or component is changed during design time. + A that contains the component or that changed. + + + Defines identifiers that indicate the type of a refresh of the Properties window. + + + The properties should be requeried and the view should be refreshed. + + + No refresh is necessary. + + + The view should be refreshed. + + + Indicates that the property grid should refresh when the associated property value changes. This class cannot be inherited. + + + Initializes a new instance of the class. + A value indicating the nature of the refresh. + + + Indicates that all properties are queried again and refreshed if the property value is changed. This field is read-only. + + + Indicates that no other properties are refreshed if the property value is changed. This field is read-only. + + + Overrides the object's method. + true if the specified object is the same; otherwise, false. + The object to test for equality. + + + Returns the hash code for this object. + The hash code for the object that the attribute belongs to. + + + Gets a value indicating whether the current value of the attribute is the default value for the attribute. + true if the current value of the attribute is the default; otherwise, false. + + + Gets the refresh properties for the member. + A that indicates the current refresh properties for the member. + + + Indicates that all properties are repainted if the property value is changed. This field is read-only. + + + Specifies whether the Visual Studio Custom Action Installer or the Installutil.exe (Installer Tool) should be invoked when the assembly is installed. + + + Initializes a new instance of the class. + true if an installer should be invoked during installation of an assembly; otherwise, false. + + + Specifies the default visiblity, which is . This static field is read-only. + + + Determines whether the value of the specified is equivalent to the current . + true if the specified is equal to the current ; otherwise, false. + The object to compare. + + + Generates a hash code for the current . + A hash code for the current . + + + Determines if this attribute is the default. + true if the attribute is the default value for this attribute class; otherwise, false. + + + Specifies that the Visual Studio Custom Action Installer or the Installutil.exe (Installer Tool) should not be invoked when the assembly is installed. This static field is read-only. + + + Gets a value indicating whether an installer should be invoked during installation of an assembly. + true if an installer should be invoked during installation of an assembly; otherwise, false. + + + Specifies that the Visual Studio Custom Action Installer or the Installutil.exe (Installer Tool) should be invoked when the assembly is installed. This static field is read-only. + + + Provides data for the MethodNameCompleted event. + + + Initializes a new instance of the class. + The result of an asynchronous operation. + Any error that occurred during the asynchronous operation. + A value indicating whether the asynchronous operation was canceled. + + + Gets a value that represents the result of an asynchronous operation. + An representing the result of an asynchronous operation. + + is not null. The property holds a reference to . + + is true. + + + + + + Gets a value that represents the user state. + An representing the user state. + + + Represents the method that will handle the event of a class. + The source of the event. + A that contains the event data. + + + Provides a type converter to convert 8-bit unsigned integer objects to and from a string. + + + Initializes a new instance of the class. + + + Specifies when a component property can be bound to an application setting. + + + Initializes a new instance of the class. + true to specify that a property is appropriate to bind settings to; otherwise, false. + + + Gets a value indicating whether a property is appropriate to bind settings to. + true if the property is appropriate to bind settings to; otherwise, false. + + + Determines whether two objects are equal. + true if equals the type and value of this instance; otherwise, false. + The value to compare to. + + + A 32-bit signed integer hash code. + + + Specifies that a property is not appropriate to bind settings to. + + + Specifies that a property is appropriate to bind settings to. + + + Provides a type converter to convert single-precision, floating point number objects to and from various other representations. + + + Initializes a new instance of the class. + + + Provides a type converter to convert string objects to and from other representations. + + + Initializes a new instance of the class. + + + Gets a value indicating whether this converter can convert an object in the given source type to a string using the specified context. + true if this converter can perform the conversion; otherwise, false. + An that provides a format context. + A that represents the type you wish to convert from. + + + Converts the specified value object to a object. + An that represents the converted value. + An that provides a format context. + The to use. + The to convert. + The conversion could not be performed. + + + Provides methods to verify the machine name and path conform to a specific syntax. This class cannot be inherited. + + + Checks the syntax of the machine name to confirm that it does not contain "\". + true if matches the proper machine name format; otherwise, false. + A string containing the machine name to check. + + + Checks the syntax of the path to see whether it starts with "\\". + true if matches the proper path format; otherwise, false. + A string containing the path to check. + + + Checks the syntax of the path to see if it starts with "\" or drive letter "C:". + true if matches the proper path format; otherwise, false. + A string containing the path to check. + + + Provides a type converter to convert objects to and from other representations. + + + Initializes a new instance of the class. + + + Gets a value indicating whether this converter can convert an object in the given source type to a using the specified context. + true if this converter can perform the conversion; otherwise, false. + An that provides a format context. + A that represents the type you wish to convert from. + + + Gets a value indicating whether this converter can convert an object to the given destination type using the context. + true if this converter can perform the conversion; otherwise, false. + An that provides a format context. + A that represents the type you wish to convert to. + + is null. + + is not a valid value for the target type. + + + Converts the given object to a . + An that represents the converted value. + An that provides a format context. + An optional . If not supplied, the current culture is assumed. + The to convert. + The conversion cannot be performed. + + is not a valid value for the target type. + + + Converts the given object to another type. + The converted object. + A formatter context. + The culture into which will be converted. + The object to convert. + The type to convert the object to. + + + Represents an attribute of a toolbox item. + + + Initializes a new instance of the class and specifies whether to use default initialization values. + true to create a toolbox item attribute for a default type; false to associate no default toolbox item support for this attribute. + + + Initializes a new instance of the class using the specified name of the type. + The names of the type of the toolbox item and of the assembly that contains the type. + + + Initializes a new instance of the class using the specified type of the toolbox item. + The type of the toolbox item. + + + Initializes a new instance of the class and sets the type to the default, . This field is read-only. + + + The object to compare. + + + + Gets a value indicating whether the current value of the attribute is the default value for the attribute. + true if the current value of the attribute is the default; otherwise, false. + + + Initializes a new instance of the class and sets the type to null. This field is read-only. + + + Gets or sets the type of the toolbox item. + The type of the toolbox item. + The type cannot be found. + + + + + + Gets or sets the name of the type of the current . + The fully qualified type name of the current toolbox item. + + + Specifies the filter string and filter type to use for a toolbox item. + + + Initializes a new instance of the class using the specified filter string. + The filter string for the toolbox item. + + + Initializes a new instance of the class using the specified filter string and type. + The filter string for the toolbox item. + A indicating the type of the filter. + + + The object to compare. + + + Gets the filter string for the toolbox item. + The filter string for the toolbox item. + + + Gets the type of the filter. + A that indicates the type of the filter. + + + + Indicates whether the specified object has a matching filter string. + true if the specified object has a matching filter string; otherwise, false. + The object to test for a matching filter string. + + + + Gets the type ID for the attribute. + The type ID for this attribute. All objects with the same filter string return the same type ID. + + + Defines identifiers used to indicate the type of filter that a uses. + + + Indicates that a toolbox item filter string is allowed, but not required. + + + Indicates that custom processing is required to determine whether to use a toolbox item filter string. + + + Indicates that a toolbox item filter string is not allowed. + + + Indicates that a toolbox item filter string must be present for a toolbox item to be enabled. + + + Provides a unified way of converting types of values to other types, as well as for accessing standard values and subproperties. + + + Initializes a new instance of the class. + + + Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context. + true if this converter can perform the conversion; otherwise, false. + An that provides a format context. + A that represents the type you want to convert from. + + + Returns whether this converter can convert an object of the given type to the type of this converter. + true if this converter can perform the conversion; otherwise, false. + A that represents the type you want to convert from. + + + Returns whether this converter can convert the object to the specified type, using the specified context. + true if this converter can perform the conversion; otherwise, false. + An that provides a format context. + A that represents the type you want to convert to. + + + Returns whether this converter can convert the object to the specified type. + true if this converter can perform the conversion; otherwise, false. + A that represents the type you want to convert to. + + + Converts the given object to the type of this converter, using the specified context and culture information. + An that represents the converted value. + An that provides a format context. + The to use as the current culture. + The to convert. + The conversion cannot be performed. + + + Converts the given value to the type of this converter. + An that represents the converted value. + The to convert. + The conversion cannot be performed. + + + Converts the given string to the type of this converter, using the invariant culture and the specified context. + An that represents the converted text. + An that provides a format context. + The to convert. + The conversion cannot be performed. + + + Converts the given string to the type of this converter, using the invariant culture. + An that represents the converted text. + The to convert. + The conversion cannot be performed. + + + Converts the given text to an object, using the specified context and culture information. + An that represents the converted text. + An that provides a format context. + A . If null is passed, the current culture is assumed. + The to convert. + The conversion cannot be performed. + + + Converts the given text to an object, using the specified context. + An that represents the converted text. + An that provides a format context. + The to convert. + The conversion cannot be performed. + + + Converts the specified text to an object. + An that represents the converted text. + The text representation of the object to convert. + The string cannot be converted into the appropriate object. + + + Converts the given value object to the specified type, using the specified context and culture information. + An that represents the converted value. + An that provides a format context. + A . If null is passed, the current culture is assumed. + The to convert. + The to convert the parameter to. + The parameter is null. + The conversion cannot be performed. + + + Converts the given value object to the specified type, using the arguments. + An that represents the converted value. + The to convert. + The to convert the parameter to. + The parameter is null. + The conversion cannot be performed. + + + Converts the specified value to a culture-invariant string representation, using the specified context. + A that represents the converted value. + An that provides a format context. + The to convert. + The conversion cannot be performed. + + + Converts the specified value to a culture-invariant string representation. + A that represents the converted value. + The to convert. + The conversion cannot be performed. + + + Converts the given value to a string representation, using the specified context and culture information. + An that represents the converted value. + An that provides a format context. + A . If null is passed, the current culture is assumed. + The to convert. + The conversion cannot be performed. + + + Converts the given value to a string representation, using the given context. + An that represents the converted value. + An that provides a format context. + The to convert. + The conversion cannot be performed. + + + Converts the specified value to a string representation. + An that represents the converted value. + The to convert. + The conversion cannot be performed. + + + Re-creates an given a set of property values for the object. + An representing the given , or null if the object cannot be created. This method always returns null. + An that represents a dictionary of new property values. + + + Creates an instance of the type that this is associated with, using the specified context, given a set of property values for the object. + An representing the given , or null if the object cannot be created. This method always returns null. + An that provides a format context. + An of new property values. + + + Returns an exception to throw when a conversion cannot be performed. + An that represents the exception to throw when a conversion cannot be performed. + The to convert, or null if the object is not available. + Automatically thrown by this method. + + + Returns an exception to throw when a conversion cannot be performed. + An that represents the exception to throw when a conversion cannot be performed. + The to convert, or null if the object is not available. + A that represents the type the conversion was trying to convert to. + Automatically thrown by this method. + + + Returns whether changing a value on this object requires a call to the method to create a new value. + true if changing a property on this object requires a call to to create a new value; otherwise, false. + + + Returns whether changing a value on this object requires a call to to create a new value, using the specified context. + true if changing a property on this object requires a call to to create a new value; otherwise, false. + An that provides a format context. + + + Returns a collection of properties for the type of array specified by the value parameter, using the specified context. + A with the properties that are exposed for this data type, or null if there are no properties. + An that provides a format context. + An that specifies the type of array for which to get properties. + + + Returns a collection of properties for the type of array specified by the value parameter, using the specified context and attributes. + A with the properties that are exposed for this data type, or null if there are no properties. + An that provides a format context. + An that specifies the type of array for which to get properties. + An array of type that is used as a filter. + + + Returns a collection of properties for the type of array specified by the value parameter. + A with the properties that are exposed for this data type, or null if there are no properties. + An that specifies the type of array for which to get properties. + + + Returns whether this object supports properties. + true if should be called to find the properties of this object; otherwise, false. + + + Returns whether this object supports properties, using the specified context. + true if should be called to find the properties of this object; otherwise, false. + An that provides a format context. + + + Returns a collection of standard values from the default context for the data type this type converter is designed for. + A containing a standard set of valid values, or null if the data type does not support a standard set of values. + + + Returns a collection of standard values for the data type this type converter is designed for when provided with a format context. + A that holds a standard set of valid values, or null if the data type does not support a standard set of values. + An that provides a format context that can be used to extract additional information about the environment from which this converter is invoked. This parameter or properties of this parameter can be null. + + + Returns whether the collection of standard values returned from is an exclusive list. + true if the returned from is an exhaustive list of possible values; false if other values are possible. + + + Returns whether the collection of standard values returned from is an exclusive list of possible values, using the specified context. + true if the returned from is an exhaustive list of possible values; false if other values are possible. + An that provides a format context. + + + Returns whether this object supports a standard set of values that can be picked from a list. + true if should be called to find a common set of values the object supports; otherwise, false. + + + Returns whether this object supports a standard set of values that can be picked from a list, using the specified context. + true if should be called to find a common set of values the object supports; otherwise, false. + An that provides a format context. + + + Returns whether the given value object is valid for this type and for the specified context. + true if the specified value is valid for this object; otherwise, false. + An that provides a format context. + The to test for validity. + + + Returns whether the given value object is valid for this type. + true if the specified value is valid for this object; otherwise, false. + The object to test for validity. + + + Sorts a collection of properties. + A that contains the sorted properties. + A that has the properties to sort. + An array of names in the order you want the properties to appear in the collection. + + + Represents an abstract class that provides properties for objects that do not have properties. + + + Initializes a new instance of the class. + A that represents the type of component to which this property descriptor binds. + The name of the property. + A that represents the data type for this property. + + + Initializes a new instance of the class. + A that represents the type of component to which this property descriptor binds. + The name of the property. + A that represents the data type for this property. + An array with the attributes to associate with the property. + + + Returns whether resetting the component changes the value of the component. + true if resetting the component changes the value of the component; otherwise, false. + The component to test for reset capability. + + + Gets the type of component to which this property description binds. + A that represents the type of component to which this property binds. + + + Gets a value indicating whether this property is read-only. + true if the property is read-only; false if the property is read/write. + + + Gets the type of the property. + A that represents the type of the property. + + + Resets the value for this property of the component. + The component with the property value to be reset. + + + Returns whether the value of this property can persist. + true if the value of the property can persist; otherwise, false. + The component with the property that is to be examined for persistence. + + + Represents a collection of values. + + + Initializes a new instance of the class. + An that represents the objects to put into the collection. + + + Copies the contents of this collection to an array. + An that represents the array to copy to. + The index to start from. + + + Gets the number of objects in the collection. + The number of objects in the collection. + + + Returns an enumerator for this collection. + An enumerator of type . + + + Gets the object at the specified index number. + The with the specified index. + The zero-based index of the to get from the collection. + + + Copies the contents of this collection to an array. + The array to copy to. + The index in the array where copying should begin. + + + For a description of this member, see . + The number of elements contained in the . + + + For a description of this member, see . + false in all cases. + + + For a description of this member, see . + null in all cases. + + + For a description of this member, see . + An that can be used to iterate through the collection. + + + Specifies what type to use as a converter for the object this attribute is bound to. + + + Initializes a new instance of the class with the default type converter, which is an empty string (""). + + + Initializes a new instance of the class, using the specified type name as the data converter for the object this attribute is bound to. + The fully qualified name of the class to use for data conversion for the object this attribute is bound to. + + + Initializes a new instance of the class, using the specified type as the data converter for the object this attribute is bound to. + A that represents the type of the converter class to use for data conversion for the object this attribute is bound to. + + + Gets the fully qualified type name of the to use as a converter for the object this attribute is bound to. + The fully qualified type name of the to use as a converter for the object this attribute is bound to, or an empty string ("") if none exists. The default value is an empty string (""). + + + Specifies the type to use as a converter for the object this attribute is bound to. + + + Returns whether the value of the given object is equal to the current . + true if the value of the given object is equal to that of the current ; otherwise, false. + The object to test the value equality of. + + + Returns the hash code for this instance. + A hash code for the current . + + + Provides supplemental metadata to the . + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using a parent type description provider. + The parent type description provider. + + + Creates an object that can substitute for another data type. + The substitute . + An optional service provider. + The type of object to create. This parameter is never null. + An optional array of types that represent the parameter types to be passed to the object's constructor. This array can be null or of zero length. + An optional array of parameter values to pass to the object's constructor. + + + Gets a per-object cache, accessed as an of key/value pairs. + An if the provided object supports caching; otherwise, null. + The object for which to get the cache. + + + Gets an extended custom type descriptor for the given object. + An that can provide extended metadata for the object. + The object for which to get the extended type descriptor. + + + Gets the extender providers for the specified object. + An array of extender providers for . + The object to get extender providers for. + + is null. + + + Gets the name of the specified component, or null if the component has no name. + The name of the specified component. + The specified component. + + is null. + + + Performs normal reflection against the given object. + The type of reflection for this . + An instance of the type (should not be null). + + is null. + + + Performs normal reflection against a type. + The type of reflection for this . + The type of object for which to retrieve the . + + is null. + + + Performs normal reflection against the given object with the given type. + The type of reflection for this . + The type of object for which to retrieve the . + An instance of the type. Can be null. + + + Converts a reflection type into a runtime type. + A that represents the runtime equivalent of . + The type to convert to its runtime equivalent. + + is null. + + + Gets a custom type descriptor for the given object. + An that can provide metadata for the type. + An instance of the type. Can be null if no instance was passed to the . + + is null. + + + Gets a custom type descriptor for the given type. + An that can provide metadata for the type. + The type of object for which to retrieve the type descriptor. + + + Gets a custom type descriptor for the given type and object. + An that can provide metadata for the type. + The type of object for which to retrieve the type descriptor. + An instance of the type. Can be null if no instance was passed to the . + + + Gets a value that indicates whether the specified type is compatible with the type description and its chain of type description providers. + true if is compatible with the type description and its chain of type description providers; otherwise, false. + The type to test for compatibility. + + is null. + + + Specifies the custom type description provider for a class. This class cannot be inherited. + + + Initializes a new instance of the class using the specified type name. + The qualified name of the type. + + is null. + + + Initializes a new instance of the class using the specified type. + The type to store in the attribute. + + is null. + + + Gets the type name for the type description provider. + A containing the qualified type name for the . + + + Provides information about the characteristics for a component, such as its attributes, properties, and events. This class cannot be inherited. + + + Adds class-level attributes to the target component instance. + The newly created that was used to add the specified attributes. + An instance of the target component. + An array of objects to add to the component's class. + One or both of the parameters is null. + + + Adds class-level attributes to the target component type. + The newly created that was used to add the specified attributes. + The of the target component. + An array of objects to add to the component's class. + One or both of the parameters is null. + + + Adds an editor table for the given editor base type. + The editor base type to add the editor table for. If a table already exists for this type, this method will do nothing. + The to add. + + + Adds a type description provider for a single instance of a component. + The to add. + An instance of the target component. + One or both of the parameters are null. + + + Adds a type description provider for a component class. + The to add. + The of the target component. + One or both of the parameters are null. + + + Adds a type description provider for a single instance of a component. + The to add. + An instance of the target component. + One or both of the parameters are null. + + + Adds a type description provider for a component class. + The to add. + The of the target component. + One or both of the parameters are null. + + + Gets or sets the provider for the Component Object Model (COM) type information for the target component. + An instance representing the COM type information provider. + + + Gets the type of the Component Object Model (COM) object represented by the target component. + The of the COM object represented by this component, or null for non-COM objects. + + + Creates a primary-secondary association between two objects. + The primary . + The secondary . + One or both of the parameters are null. + + is equal to . + + + Creates an instance of the designer associated with the specified component and of the specified type of designer. + An that is an instance of the designer for the component, or null if no designer can be found. + An that specifies the component to associate with the designer. + A that represents the type of designer to create. + + + Creates a new event descriptor that is identical to an existing event descriptor, when passed the existing . + A new that has merged the specified metadata attributes with the existing metadata attributes. + The type of the component for which to create the new event. + The existing event information. + The new attributes. + + + + + + Creates a new event descriptor that is identical to an existing event descriptor by dynamically generating descriptor information from a specified event on a type. + An that is bound to a type. + The type of the component the event lives on. + The name of the event. + The type of the delegate that handles the event. + The attributes for this event. + + + + + + Creates an object that can substitute for another data type. + An instance of the substitute data type if an associated is found; otherwise, null. + The service provider that provides a service. This parameter can be null. + The of object to create. + An optional array of parameter types to be passed to the object's constructor. This parameter can be null or an array of zero length. + An optional array of parameter values to pass to the object's constructor. If not null, the number of elements must be the same as . + + is null, or is null when is not null. + + and have different number of elements. + + + Creates a new property descriptor from an existing property descriptor, using the specified existing and attribute array. + A new that has the specified metadata attributes merged with the existing metadata attributes. + The of the component that the property is a member of. + The existing property descriptor. + The new attributes for this property. + + + + + + Creates and dynamically binds a property descriptor to a type, using the specified property name, type, and attribute array. + A that is bound to the specified type and that has the specified metadata attributes merged with the existing metadata attributes. + The of the component that the property is a member of. + The name of the property. + The of the property. + The new attributes for this property. + + + + + + Returns an instance of the type associated with the specified primary object. + An instance of the secondary type that has been associated with the primary object if an association exists; otherwise, if no specified association exists. + The of the target component. + The primary object of the association. + One or both of the parameters are null. + + + Returns the collection of attributes for the specified component. + An containing the attributes for the component. If is null, this method returns an empty collection. + The component for which you want to get attributes. + + + Returns a collection of attributes for the specified component and a Boolean indicating that a custom type descriptor has been created. + An with the attributes for the component. If the component is null, this method returns an empty collection. + The component for which you want to get attributes. + true to use a baseline set of attributes from the custom type descriptor if is of type ; otherwise, false. + + + Returns a collection of attributes for the specified type of component. + An with the attributes for the type of the component. If the component is null, this method returns an empty collection. + The of the target component. + + + Returns the name of the class for the specified component using the default type descriptor. + A containing the name of the class for the specified component. + The for which you want the class name. + + is null. + + + Returns the name of the class for the specified component using a custom type descriptor. + A containing the name of the class for the specified component. + The for which you want the class name. + true to consider custom type description information; otherwise, false. + + is null. + + is a cross-process remoted object. + + + Returns the name of the class for the specified type. + A containing the name of the class for the specified component type. + The of the target component. + + is null. + + + Returns the name of the specified component using the default type descriptor. + A containing the name of the specified component, or null if there is no component name. + The for which you want the class name. + + is null. + + is a cross-process remoted object. + + + Returns the name of the specified component using a custom type descriptor. + The name of the class for the specified component, or null if there is no component name. + The for which you want the class name. + true to consider custom type description information; otherwise, false. + + is null. + + is a cross-process remoted object. + + + Returns a type converter for the type of the specified component. + A for the specified component. + A component to get the converter for. + + is null. + + is a cross-process remoted object. + + + Returns a type converter for the type of the specified component with a custom type descriptor. + A for the specified component. + A component to get the converter for. + true to consider custom type description information; otherwise, false. + + is null. + + is a cross-process remoted object. + + + Returns a type converter for the specified type. + A for the specified type. + The of the target component. + + is null. + + + Returns the default event for the specified component. + An with the default event, or null if there are no events. + The component to get the event for. + + is null. + + is a cross-process remoted object. + + + Returns the default event for a component with a custom type descriptor. + An with the default event, or null if there are no events. + The component to get the event for. + true to consider custom type description information; otherwise, false. + + is null. + + is a cross-process remoted object. + + + Returns the default event for the specified type of component. + An with the default event, or null if there are no events. + The of the target component. + + is null. + + + Returns the default property for the specified component. + A with the default property, or null if there are no properties. + The component to get the default property for. + + is a cross-process remoted object. + + + Returns the default property for the specified component with a custom type descriptor. + A with the default property, or null if there are no properties. + The component to get the default property for. + true to consider custom type description information; otherwise, false. + + is a cross-process remoted object. + + + Returns the default property for the specified type of component. + A with the default property, or null if there are no properties. + A that represents the class to get the property for. + + + Gets an editor with the specified base type for the specified component. + An instance of the editor that can be cast to the specified editor type, or null if no editor of the requested type can be found. + The component to get the editor for. + A that represents the base type of the editor you want to find. + + or is null. + + is a cross-process remoted object. + + + Returns an editor with the specified base type and with a custom type descriptor for the specified component. + An instance of the editor that can be cast to the specified editor type, or null if no editor of the requested type can be found. + The component to get the editor for. + A that represents the base type of the editor you want to find. + A flag indicating whether custom type description information should be considered. + + or is null. + + is a cross-process remoted object. + + + Returns an editor with the specified base type for the specified type. + An instance of the editor object that can be cast to the given base type, or null if no editor of the requested type can be found. + The of the target component. + A that represents the base type of the editor you are trying to find. + + or is null. + + + Returns the collection of events for the specified component. + An with the events for this component. + A component to get the events for. + + is a cross-process remoted object. + + + Returns the collection of events for a specified component using a specified array of attributes as a filter. + An with the events that match the specified attributes for this component. + A component to get the events for. + An array of type that you can use as a filter. + + is a cross-process remoted object. + + + Returns the collection of events for a specified component using a specified array of attributes as a filter and using a custom type descriptor. + An with the events that match the specified attributes for this component. + A component to get the events for. + An array of type to use as a filter. + true to consider custom type description information; otherwise, false. + + is a cross-process remoted object. + + + Returns the collection of events for a specified component with a custom type descriptor. + An with the events for this component. + A component to get the events for. + true to consider custom type description information; otherwise, false. + + is a cross-process remoted object. + + + Returns the collection of events for a specified type of component. + An with the events for this component. + The of the target component. + + + Returns the collection of events for a specified type of component using a specified array of attributes as a filter. + An with the events that match the specified attributes for this component. + The of the target component. + An array of type that you can use as a filter. + + + Returns the fully qualified name of the component. + The fully qualified name of the specified component, or null if the component has no name. + The to find the name for. + + is null. + + + Returns the collection of properties for a specified component. + A with the properties for the specified component. + A component to get the properties for. + + is a cross-process remoted object. + + + Returns the collection of properties for a specified component using a specified array of attributes as a filter. + A with the properties that match the specified attributes for the specified component. + A component to get the properties for. + An array of type to use as a filter. + + is a cross-process remoted object. + + + Returns the collection of properties for a specified component using a specified array of attributes as a filter and using a custom type descriptor. + A with the events that match the specified attributes for the specified component. + A component to get the properties for. + An array of type to use as a filter. + true to consider custom type description information; otherwise, false. + + is a cross-process remoted object. + + + Returns the collection of properties for a specified component using the default type descriptor. + A with the properties for a specified component. + A component to get the properties for. + true to not consider custom type description information; otherwise, false. + + is a cross-process remoted object. + + + Returns the collection of properties for a specified type of component. + A with the properties for a specified type of component. + A that represents the component to get properties for. + + + Returns the collection of properties for a specified type of component using a specified array of attributes as a filter. + A with the properties that match the specified attributes for this type of component. + The of the target component. + An array of type to use as a filter. + + + Returns the type description provider for the specified component. + A associated with the specified component. + An instance of the target component. + + is null. + + + Returns the type description provider for the specified type. + A associated with the specified type. + The of the target component. + + is null. + + + Returns a that can be used to perform reflection, given an object. + A for the specified object. + An instance of the target component. + + is null. + + + Returns a that can be used to perform reflection, given a class type. + A of the specified class. + The of the target component. + + is null. + + + Gets a type that represents a type description provider for all interface types. + A that represents a custom type description provider for all interface types. + + + Clears the properties and events for the specified component from the cache. + A component for which the properties or events have changed. + + + Clears the properties and events for the specified assembly from the cache. + The that represents the assembly to refresh. Each in this assembly will be refreshed. + + + Clears the properties and events for the specified module from the cache. + The that represents the module to refresh. Each in this module will be refreshed. + + + Clears the properties and events for the specified type of component from the cache. + The of the target component. + + + Occurs when the cache for a component is cleared. + + + Removes an association between two objects. + The primary . + The secondary . + One or both of the parameters are null. + + + Removes all associations for a primary object. + The primary in an association. + + is null. + + + Removes a previously added type description provider that is associated with the specified object. + The to remove. + An instance of the target component. + One or both of the parameters are null. + + + Removes a previously added type description provider that is associated with the specified type. + The to remove. + The of the target component. + One or both of the parameters are null. + + + Removes a previously added type description provider that is associated with the specified object. + The to remove. + An instance of the target component. + One or both of the parameters are null. + + + Removes a previously added type description provider that is associated with the specified type. + The to remove. + The of the target component. + One or both of the parameters are null. + + + Sorts descriptors using the name of the descriptor. + An that contains the descriptors to sort. + + is null. + + + Provides a type converter that can be used to populate a list box with available types. + + + Initializes a new instance of the class using the type array as the available types. + The array of type to use as the available types. + + + Gets a value indicating whether this converter can convert the specified of the source object using the given context. + true if this converter can perform the conversion; otherwise, false. + An that provides a format context. + The of the source object. + + + Gets a value indicating whether this converter can convert an object to the given destination type using the context. + true if this converter can perform the conversion; otherwise, false. + An that provides a format context. + A that represents the type you wish to convert to. + + + Converts the specified object to the native type of the converter. + An that represents the converted value. + An that provides a format context. + A that specifies the culture used to represent the font. + The to convert. + + + Converts the given value object to the specified destination type. + An that represents the converted . + An that provides a format context. + An optional . If not supplied, the current culture is assumed. + The to convert. + The to convert the value to. + + is null. + The conversion cannot be performed. + + + Gets a collection of standard values for the data type this validator is designed for. + A that holds a standard set of valid values, or null if the data type does not support a standard set of values. + An that provides a format context. + + + Gets a value indicating whether the list of standard values returned from the method is an exclusive list. + true because the returned from is an exhaustive list of possible values. This method never returns false. + An that provides a format context. + + + Gets a value indicating whether this object supports a standard set of values that can be picked from a list using the specified context. + true because should be called to find a common set of values the object supports. This method never returns false. + An that provides a format context. + + + Provides a type converter to convert 16-bit unsigned integer objects to and from other representations. + + + Initializes a new instance of the class. + + + Provides a type converter to convert 32-bit unsigned integer objects to and from various other representations. + + + Initializes a new instance of the class. + + + Provides a type converter to convert 64-bit unsigned integer objects to and from other representations. + + + Initializes a new instance of the class. + + + Specifies an exception that is handled as a warning instead of an error. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified serialization data and context. + The to be used for deserialization. + The destination to be used for deserialization. + + + Initializes a new instance of the class with the specified message and no Help file. + The message to display to the end user. + + + Initializes a new instance of the class with the specified detailed description and the specified exception. + A detailed description of the error. + A reference to the inner exception that is the cause of this exception. + + + Initializes a new instance of the class with the specified message, and with access to the specified Help file. + The message to display to the end user. + The Help file to display if the user requests help. + + + Initializes a new instance of the class with the specified message, and with access to the specified Help file and topic. + The message to display to the end user. + The Help file to display if the user requests help. + The Help topic to display if the user requests help. + + + Sets the with the parameter name and additional exception information. + Stores the data that was being used to serialize or deserialize the object that the was serializing or deserializing. + Describes the source and destination of the stream that generated the exception, as well as a means for serialization to retain that context and an additional caller-defined context. + + is null. + + + Gets the Help topic associated with the warning. + The Help topic associated with the warning. + + + Gets the Help file associated with the warning. + The Help file associated with the warning. + + + Throws an exception for a Win32 error code. + + + Initializes a new instance of the class with the last Win32 error that occurred. + + + Initializes a new instance of the class with the specified error. + The Win32 error code associated with this exception. + + + Initializes a new instance of the class with the specified error and the specified detailed description. + The Win32 error code associated with this exception. + A detailed description of the error. + + + Initializes a new instance of the class with the specified context and the serialization information. + The associated with this exception. + A that represents the context of this exception. + + + Initializes a new instance of the class with the specified detailed description. + A detailed description of the error. + + + Initializes a new instance of the class with the specified detailed description and the specified exception. + A detailed description of the error. + A reference to the inner exception that is the cause of this exception. + + + Sets the object with the file name and line number at which this occurred. + A . + The contextual information about the source or destination. + + is null. + + + Gets the Win32 error code associated with this exception. + The Win32 error code associated with this exception. + + + Provides data for the event. + + + Initializes a new instance of the class. + The document that is losing activation. + The document that is gaining activation. + + + Gets the document that is gaining activation. + An that represents the document gaining activation. + + + Gets the document that is losing activation. + An that represents the document losing activation. + + + Represents the method that will handle the event. + The source of the event. + An that contains the event data. + + + The exception that is thrown when an attempt to check out a file that is checked into a source code management program is canceled or fails. + + + Initializes a new instance of the class with no associated message or error code. + + + Initializes a new instance of the class using the specified serialization data and context. + The to be used for deserialization. + The destination to be used for deserialization. + + + Initializes a new instance of the class with the specified message. + A message describing the exception. + + + Initializes a new instance of the class with the specified detailed description and the specified exception. + A detailed description of the error. + A reference to the inner exception that is the cause of this exception. + + + Initializes a new instance of the class with the specified message and error code. + A message describing the exception. + The error code to pass. + + + Initializes a new instance of the class that specifies that the check out was canceled. This field is read-only. + + + Represents a unique command identifier that consists of a numeric command ID and a GUID menu group identifier. + + + Initializes a new instance of the class using the specified menu group GUID and command ID number. + The GUID of the group that this menu command belongs to. + The numeric identifier of this menu command. + + + Determines whether two instances are equal. + true if the specified object is equivalent to this one; otherwise, false. + The object to compare. + + + A hash code for the current object. + + + Gets the GUID of the menu group that the menu command identified by this belongs to. + The GUID of the command group for this command. + + + Gets the numeric command ID. + The command ID number. + + + Returns a that represents the current object. + A string that contains the command ID information, both the GUID and integer identifier. + + + Provides data for the event. This class cannot be inherited. + + + Initializes a new instance of the class. + The component that was changed. + A that represents the member that was changed. + The old value of the changed member. + The new value of the changed member. + + + Gets the component that was modified. + An that represents the component that was modified. + + + Gets the member that has been changed. + A that indicates the member that has been changed. + + + Gets the new value of the changed member. + The new value of the changed member. This property can be null. + + + Gets the old value of the changed member. + The old value of the changed member. This property can be null. + + + Represents the method that will handle a event. + The source of the event. + A that contains the event data. + + + Provides data for the event. This class cannot be inherited. + + + Initializes a new instance of the class. + The component that is about to be changed. + A indicating the member of the component that is about to be changed. + + + Gets the component that is about to be changed or the component that is the parent container of the member that is about to be changed. + The component that is about to have a member changed. + + + Gets the member that is about to be changed. + A indicating the member that is about to be changed, if known, or null otherwise. + + + Represents the method that will handle a event. + The source of the event. + A event that contains the event data. + + + Provides data for the , , , and events. + + + Initializes a new instance of the class. + The component that is the source of the event. + + + Gets the component associated with the event. + The component associated with the event. + + + Represents the method that will handle the , , , and events raised for component-level events. + The source of the event. + A that contains the event data. + + + Provides data for the event. + + + Initializes a new instance of the class. + The component to be renamed. + The old name of the component. + The new name of the component. + + + Gets the component that is being renamed. + The component that is being renamed. + + + Gets the name of the component after the rename event. + The name of the component after the rename event. + + + Gets the name of the component before the rename event. + The previous name of the component. + + + Represents the method that will handle a event. + The source of the event. + A that contains the event data. + + + Represents a collection of designers. + + + Initializes a new instance of the class that contains the specified set of designers. + A list that contains the collection of designers to add. + + + Initializes a new instance of the class that contains the specified designers. + An array of objects to store. + + + Gets the number of designers in the collection. + The number of designers in the collection. + + + Gets a new enumerator for this collection. + An that enumerates the collection. + + + Gets the designer at the specified index. + The designer at the specified index. + The index of the designer to return. + + + Copies the elements of the collection to an , starting at a particular index. + The one-dimensional that is the destination of the elements copied from collection. The must have zero-based indexing. + The zero-based index in at which copying begins. + + + Gets the number of elements contained in the collection. + The number of elements contained in the collection. + + + Gets a value indicating whether access to the is synchronized (thread safe). + true if access to the is synchronized (thread safe); otherwise, false. + + + Gets an object that can be used to synchronize access to the collection. + An object that can be used to synchronize access to the collection. + + + Gets a new enumerator for this collection. + An that enumerates the collection. + + + Provides data for the and events. + + + Initializes a new instance of the class. + The of the document. + + + Gets the host of the document. + The of the document. + + + Represents the method that will handle the and events that are raised when a document is created or disposed of. + The source of the event. + A that contains the event data. + + + Provides a base class for getting and setting option values for a designer. + + + Initializes a new instance of the class. + + + Creates a new with the given name and adds it to the given parent. + A new with the given name. + The parent designer option collection. All collections have a parent except the root object collection. + The name of this collection. + The object providing properties for this collection. Can be null if the collection should not provide any properties. + + or is null. + + is an empty string. + + + Gets the options collection for this service. + A populated with available designer options. + + + Populates a . + The collection to populate. + + + Shows the options dialog box for the given object. + true if the dialog box is shown; otherwise, false. + The options collection containing the object to be invoked. + The actual options object. + + + Gets the value of an option defined in this package. + The value of the option named . + The page to which the option is bound. + The name of the option value. + + or is null. + + + Sets the value of an option defined in this package. + The page to which the option is bound + The name of the option value. + The value of the option. + + or is null. + + + Contains a collection of designer options. This class cannot be inherited. + + + Copies the entire collection to a compatible one-dimensional , starting at the specified index of the target array. + The one-dimensional that is the destination of the elements copied from the collection. The must have zero-based indexing. + The zero-based index in at which copying begins. + + + Gets the number of child option collections this contains. + The number of child option collections this contains. + + + Returns an that can be used to iterate this collection. + An that can be used to iterate this collection. + + + Returns the index of the first occurrence of a given value in a range of this collection. + The index of the first occurrence of value within the entire collection, if found; otherwise, the lower bound of the collection minus 1. + The object to locate in the collection. + + + Gets the child collection at the given index. + The child collection at the specified index. + The zero-based index of the child collection to get. + + + Gets the child collection at the given name. + The child collection with the name specified by the parameter, or null if the name is not found. + The name of the child collection. + + + Gets the name of this . + The name of this . + + + Gets the parent collection object. + The parent collection object, or null if there is no parent. + + + Gets the collection of properties offered by this , along with all of its children. + The collection of properties offered by this , along with all of its children. + + + Displays a dialog box user interface (UI) with which the user can configure the options in this . + true if the dialog box can be displayed; otherwise, false. + + + Gets a value indicating whether access to the collection is synchronized and, therefore, thread safe. + true if the access to the collection is synchronized; otherwise, false. + + + Gets an object that can be used to synchronize access to the collection. + An object that can be used to synchronize access to the collection. + + + Adds an item to the . + The position into which the new element was inserted. + The to add to the . + + + Removes all items from the collection. + + + Determines whether the collection contains a specific value. + true if the is found in the collection; otherwise, false. + The to locate in the collection + + + Determines the index of a specific item in the collection. + The index of if found in the list; otherwise, -1. + The to locate in the collection. + + + Inserts an item into the collection at the specified index. + The zero-based index at which should be inserted. + The to insert into the collection. + + + Gets a value indicating whether the collection has a fixed size. + true if the collection has a fixed size; otherwise, false. + + + Gets a value indicating whether the collection is read-only. + true if the collection is read-only; otherwise, false. + + + Gets or sets the element at the specified index. + The element at the specified index. + The zero-based index of the element to get or set. + + + Removes the first occurrence of a specific object from the collection. + The to remove from the collection. + + + Removes the collection item at the specified index. + The zero-based index of the item to remove. + + + Provides a way to group a series of design-time actions to improve performance and enable most types of changes to be undone. + + + Initializes a new instance of the class with no description. + + + Initializes a new instance of the class using the specified transaction description. + A description for this transaction. + + + Cancels the transaction and attempts to roll back the changes made by the events of the transaction. + + + Gets a value indicating whether the transaction was canceled. + true if the transaction was canceled; otherwise, false. + + + Commits this transaction. + + + Gets a value indicating whether the transaction was committed. + true if the transaction was committed; otherwise, false. + + + Gets a description for the transaction. + A description for the transaction. + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Releases the resources associated with this object. This override commits this transaction if it was not already committed. + + + Raises the Cancel event. + + + Performs the actual work of committing a transaction. + + + Releases all resources used by the . + + + Provides data for the and events. + + + Initializes a new instance of the class, using the specified value that indicates whether the designer called on the transaction. + A value indicating whether the transaction was committed. + + + Initializes a new instance of the class. + A value indicating whether the transaction was committed. + true if this is the last transaction to close; otherwise, false. + + + Gets a value indicating whether this is the last transaction to close. + true, if this is the last transaction to close; otherwise, false. + + + Indicates whether the designer called on the transaction. + true if the designer called on the transaction; otherwise, false. + + + Represents the method that handles the and events of a designer. + The source of the event. + A that contains the event data. + + + Represents a verb that can be invoked from a designer. + + + Initializes a new instance of the class. + The text of the menu command that is shown to the user. + The event handler that performs the actions of the verb. + + + Initializes a new instance of the class. + The text of the menu command that is shown to the user. + The event handler that performs the actions of the verb. + The starting command ID for this verb. By default, the designer architecture sets aside a range of command IDs for verbs. You can override this by providing a custom command ID. + + + Gets or sets the description of the menu item for the verb. + A string describing the menu item. + + + Gets the text description for the verb command on the menu. + A description for the verb command. + + + Overrides . + The verb's text, or an empty string ("") if the text field is empty. + + + Represents a collection of objects. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified array of objects. + A array that indicates the verbs to contain within the collection. + + is null. + + + Adds the specified to the collection. + The index in the collection at which the verb was added. + The to add to the collection. + + + Adds the specified set of designer verbs to the collection. + An array of objects to add to the collection. + + is null. + + + Adds the specified collection of designer verbs to the collection. + A to add to the collection. + + is null. + + + Gets a value indicating whether the specified exists in the collection. + true if the specified object exists in the collection; otherwise, false. + The to search for in the collection. + + + Copies the collection members to the specified array beginning at the specified destination index. + The array to copy collection members to. + The destination index to begin copying to. + + + Gets the index of the specified . + The index of the specified object if it is found in the list; otherwise, -1. + The whose index to get in the collection. + + + Inserts the specified at the specified index. + The index in the collection at which to insert the verb. + The to insert in the collection. + + + Gets or sets the at the specified index. + A at each valid index in the collection. + The index at which to get or set the . + + + Raises the Clear event. + + + Raises the Insert event. + The index at which to insert an item. + The object to insert. + + + Raises the Remove event. + The index at which to remove the item. + The object to remove. + + + Raises the Set event. + The index at which to set the item. + The old object. + The new object. + + + Raises the Validate event. + The object to validate. + + + Removes the specified from the collection. + The to remove from the collection. + + + Represents a design-time license context that can support a license provider at design time. + + + Initializes a new instance of the class. + + + Gets a saved license key. + The saved license key that matches the specified type. + The type of the license key. + The assembly to get the key from. + + + Sets a saved license key. + The type of the license key. + The license key. + + + Gets the license usage mode. + A indicating the licensing mode for the context. + + + Provides support for design-time license context serialization. + + + Serializes the licenses within the specified design-time license context using the specified key and output stream. + The stream to output to. + The key to use for encryption. + A indicating the license context. + + + Defines identifiers that indicate information about the context in which a request for Help information originated. + + + A general context. + + + A selection. + + + A tool window selection. + + + A window. + + + Specifies the context keyword for a class or member. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + The Help keyword value. + + is null. + + + Initializes a new instance of the class from the given type. + The type from which the Help keyword will be taken. + + is null. + + + Represents the default value for . This field is read-only. + + + Determines whether two instances are equal. + true if the specified is equal to the current ; otherwise, false. + The to compare with the current . + + + Returns the hash code for this instance. + A hash code for the current . + + + Gets the Help keyword supplied by this attribute. + The Help keyword supplied by this attribute. + + + Determines whether the Help keyword is null. + true if the Help keyword is null; otherwise, false. + + + Defines identifiers that indicate the type of a Help keyword. + + + A keyword that F1 was pressed to request help about. + + + A filter keyword. + + + A general keyword. + + + Provides an interface to add and remove the event handlers for events that add, change, remove or rename components, and provides methods to raise a or event. + + + Occurs when a component has been added. + + + Occurs when a component is in the process of being added. + + + Occurs when a component has been changed. + + + Occurs when a component is in the process of being changed. + + + Occurs when a component has been removed. + + + Occurs when a component is in the process of being removed. + + + Occurs when a component is renamed. + + + Announces to the component change service that a particular component has changed. + The component that has changed. + The member that has changed. This is null if this change is not related to a single member. + The old value of the member. This is valid only if the member is not null. + The new value of the member. This is valid only if the member is not null. + + + Announces to the component change service that a particular component is changing. + The component that is about to change. + The member that is changing. This is null if this change is not related to a single member. + + + Enables enumeration of components at design time. + + + Gets the list of available component types. + The list of available component types. + The designer host providing design-time services. Can be null. + The base type specifying the components to retrieve. Can be null. + + + Provides a set of recommended default values during component creation. + + + Restores an instance of a component to its default state. + A dictionary of default property values, which are name/value pairs, with which to reset the component's state. + + + Initializes a new component using a set of recommended values. + A dictionary of default property values, which are name/value pairs, with which to initialize the component's state. + + + Provides the basic framework for building a custom designer. + + + Gets the base component that this designer is designing. + An indicating the base component that this designer is designing. + + + Performs the default action for this designer. + + + Initializes the designer with the specified component. + The component to associate with this designer. + + + Gets a collection of the design-time verbs supported by the designer. + A that contains the verbs supported by the designer, or null if the component has no verbs. + + + Provides event notifications when root designers are added and removed, when a selected component changes, and when the current root designer changes. + + + Gets the root designer for the currently active document. + The currently active document, or null if there is no active document. + + + Occurs when the current root designer changes. + + + Occurs when a root designer is created. + + + Occurs when a root designer for a document is disposed. + + + Gets a collection of root designers for design documents that are currently active in the development environment. + A containing the root designers that have been created and not yet disposed. + + + Occurs when the current design-view selection changes. + + + Provides an interface that enables a designer to access and filter the dictionaries of a that stores the property, attribute, and event descriptors that a component designer can expose to the design-time environment. + + + When overridden in a derived class, allows a designer to change or remove items from the set of attributes that it exposes through a . + The objects for the class of the component. The keys in the dictionary of attributes are the values of the attributes. + + + When overridden in a derived class, allows a designer to change or remove items from the set of events that it exposes through a . + The objects that represent the events of the class of the component. The keys in the dictionary of events are event names. + + + When overridden in a derived class, allows a designer to change or remove items from the set of properties that it exposes through a . + The objects that represent the properties of the class of the component. The keys in the dictionary of properties are property names. + + + When overridden in a derived class, allows a designer to add items to the set of attributes that it exposes through a . + The objects for the class of the component. The keys in the dictionary of attributes are the values of the attributes. + + + When overridden in a derived class, allows a designer to add items to the set of events that it exposes through a . + The objects that represent the events of the class of the component. The keys in the dictionary of events are event names. + + + When overridden in a derived class, allows a designer to add items to the set of properties that it exposes through a . + The objects that represent the properties of the class of the component. The keys in the dictionary of properties are property names. + + + Provides an interface for managing designer transactions and components. + + + Activates the designer that this host is hosting. + + + Occurs when this designer is activated. + + + Gets the container for this designer host. + The for this host. + + + Creates a component of the specified type and adds it to the design document. + The newly created component. + The type of the component to create. + + + Creates a component of the specified type and name, and adds it to the design document. + The newly created component. + The type of the component to create. + The name for the component. + + + Creates a that can encapsulate event sequences to improve performance and enable undo and redo support functionality. + A new instance of . When you complete the steps in your transaction, you should call on this object. + + + Creates a that can encapsulate event sequences to improve performance and enable undo and redo support functionality, using the specified transaction description. + A new . When you have completed the steps in your transaction, you should call on this object. + A title or description for the newly created transaction. + + + Occurs when this designer is deactivated. + + + Destroys the specified component and removes it from the designer container. + The component to destroy. + + + Gets the designer instance that contains the specified component. + An , or null if there is no designer for the specified component. + The to retrieve the designer for. + + + Gets an instance of the specified, fully qualified type name. + The type object for the specified type name, or null if the type cannot be found. + The name of the type to load. + + + Gets a value indicating whether the designer host is currently in a transaction. + true if a transaction is in progress; otherwise, false. + + + Occurs when this designer completes loading its document. + + + Gets a value indicating whether the designer host is currently loading the document. + true if the designer host is currently loading the document; otherwise, false. + + + Gets the instance of the base class used as the root component for the current design. + The instance of the root component class. + + + Gets the fully qualified name of the class being designed. + The fully qualified name of the base component class. + + + Adds an event handler for the event. + + + Adds an event handler for the event. + + + Gets the description of the current transaction. + A description of the current transaction. + + + Adds an event handler for the event. + + + Adds an event handler for the event. + + + Specifies methods for the designer host to report on the state of transactions. + + + Gets a value indicating whether the designer host is closing a transaction. + true if the designer is closing a transaction; otherwise, false. + + + Provides access to the designer options located on the Tools menu under the Options command in the Visual Studio development environment. + + + Gets the value of the specified Windows Forms Designer option. + The value of the specified option. + The name of the page that defines the option. + The name of the option property. + + + Sets the value of the specified Windows Forms Designer option. + The name of the page that defines the option. + The name of the option property. + The new value. + + + Provides a basic, component site-specific, key-value pair dictionary through a service that a designer can use to store user-defined data. + + + Gets the key corresponding to the specified value. + The associated key, or null if no key exists. + The value to look up in the dictionary. + + + Gets the value corresponding to the specified key. + The associated value, or null if no value exists. + The key to look up the value for. + + + Sets the specified key-value pair. + An object to use as the key to associate the value with. + The value to store. + + + Provides a service for registering event handlers for component events. + + + Creates a unique name for an event-handler method for the specified component and event. + The recommended name for the event-handler method for this event. + The component instance the event is connected to. + The event to create a name for. + + + Gets a collection of event-handler methods that have a method signature compatible with the specified event. + A collection of strings. + The event to get the compatible event-handler methods for. + + + Gets an for the event that the specified property descriptor represents, if it represents an event. + An for the event that the property represents, or null if the property does not represent an event. + The property that represents an event. + + + Converts a set of event descriptors to a set of property descriptors. + An array of objects that describe the event set. + The events to convert to properties. + + + Converts a single event descriptor to a property descriptor. + A that describes the event. + The event to convert. + + + Displays the user code for the designer. + true if the code is displayed; otherwise, false. + + + Displays the user code for the specified event. + true if the code is displayed; otherwise, false. + The component that the event is connected to. + The event to display. + + + Displays the user code for the designer at the specified line. + true if the code is displayed; otherwise, false. + The line number to place the caret on. + + + Provides an interface that can list extender providers. + + + Gets the set of extender providers for the component. + An array of type that lists the active extender providers. If there are no providers, an empty array is returned. + + + Provides an interface for adding and removing extender providers at design time. + + + Adds the specified extender provider. + The extender provider to add. + + + Removes the specified extender provider. + The extender provider to remove. + + + Provides methods for showing Help topics and adding and removing Help keywords at design time. + + + Adds a context attribute to the document. + The name of the attribute to add. + The value of the attribute. + The type of the keyword, from the enumeration . + + + Removes all existing context attributes from the document. + + + Creates a local to manage subcontexts. + The newly created . + The priority type of the subcontext to add. + + + Removes a previously added context attribute. + The name of the attribute to remove. + The value of the attribute to remove. + + + Removes a context created with . + The local context to remove. + + + Shows the Help topic that corresponds to the specified keyword. + The keyword of the Help topic to display. + + + Shows the Help topic that corresponds to the specified URL. + The URL of the Help topic to display. + + + Provides methods for identifying the components of a component. + + + Searches the specified component for fields that implement the interface and adds each to the specified container, storing the inheritance level of each which can be retrieved using the method. + The to search. Searching begins with this component. + The to add components to. + + + Gets the inheritance attribute for the specified component. + An instance of that describes the level of inheritance of the specified component. + The for which to retrieve the inheritance attribute. + + + Provides methods to manage the global designer verbs and menu commands available in design mode, and to show some types of shortcut menus. + + + Adds the specified standard menu command to the menu. + The to add. + The of the specified is already present on a menu. + + + Adds the specified designer verb to the set of global designer verbs. + The to add. + + + Searches for the specified command ID and returns the menu command associated with it. + The associated with the command ID, or null if no command is found. + The to search for. + + + Invokes a menu or designer verb command matching the specified command ID. + true if the command was found and invoked successfully; otherwise, false. + The of the command to search for and execute. + + + Removes the specified standard menu command from the menu. + The to remove. + + + Removes the specified designer verb from the collection of global designer verbs. + The to remove. + + + Shows the specified shortcut menu at the specified location. + The for the shortcut menu to show. + The x-coordinate at which to display the menu, in screen coordinates. + The y-coordinate at which to display the menu, in screen coordinates. + + + Gets a collection of the designer verbs that are currently available. + A that contains the designer verbs that are currently available. + + + Provides an interface for obtaining references to objects within a project by name or type, obtaining the name of a specified object, and for locating the parent of a specified object within a designer project. + + + Gets the component that contains the specified component. + The base that contains the specified object, or null if no parent component exists. + The object to retrieve the parent component for. + + + Gets the name of the specified component. + The name of the object referenced, or null if the object reference is not valid. + The object to return the name of. + + + Gets a reference to the component whose name matches the specified name. + An object the specified name refers to, or null if no reference is found. + The name of the component to return a reference to. + + + Gets all available references to project components. + An array of all objects with references available to the . + + + Gets all available references to components of the specified type. + An array of all available objects of the specified type. + The type of object to return references to instances of. + + + Provides an interface for designers to access resource readers and writers for specific resource types. + + + Locates the resource reader for the specified culture and returns it. + An interface that contains the resources for the culture, or null if no resources for the culture exist. + The of the resource for which to retrieve a resource reader. + + + Locates the resource writer for the specified culture and returns it. + An interface for the specified culture. + The of the resource for which to create a resource writer. + + + Provides support for root-level designer view technologies. + + + Gets a view object for the specified view technology. + An object that represents the view for this designer. + A that indicates a particular view technology. + The specified view technology is not supported or does not exist. + + + Gets the set of technologies that this designer can support for its display. + An array of supported values. + + + Provides an interface for a designer to select components. + + + Gets a value indicating whether the specified component is currently selected. + true if the component is part of the user's current selection; otherwise, false. + The component to test. + + + Gets a collection of components that are currently selected. + A collection that represents the current set of components that are selected. + + + Gets the object that is currently the primary selected object. + The object that is currently the primary selected object. + + + Occurs when the current selection changes. + + + Occurs when the current selection is about to change. + + + Gets the count of selected objects. + The number of selected objects. + + + Selects the specified collection of components. + The collection of components to select. + + + Selects the components from within the specified collection of components that match the specified selection type. + The collection of components to select. + A value from the enumeration. The default is . + + + Provides a container for services. + + + Adds the specified service to the service container. + The type of service to add. + A callback object that is used to create the service. This allows a service to be declared as available, but delays the creation of the object until the service is requested. + + + Adds the specified service to the service container, and optionally promotes the service to parent service containers. + The type of service to add. + A callback object that is used to create the service. This allows a service to be declared as available, but delays the creation of the object until the service is requested. + true to promote this request to any parent service containers; otherwise, false. + + + Adds the specified service to the service container. + The type of service to add. + An instance of the service type to add. This object must implement or inherit from the type indicated by the parameter. + + + Adds the specified service to the service container, and optionally promotes the service to any parent service containers. + The type of service to add. + An instance of the service type to add. This object must implement or inherit from the type indicated by the parameter. + true to promote this request to any parent service containers; otherwise, false. + + + Removes the specified service type from the service container. + The type of service to remove. + + + Removes the specified service type from the service container, and optionally promotes the service to parent service containers. + The type of service to remove. + true to promote this request to any parent service containers; otherwise, false. + + + Provides support for building a set of related custom designers. + + + Gets a collection of child designers. + An , containing the collection of child objects of the current designer. + + + Gets the parent designer. + An representing the parent designer, or null if there is no parent. + + + Provides an interface to modify the set of member descriptors for a component in design mode. + + + Filters the attributes that a component exposes through a . + true if the set of filtered attributes is to be cached; false if the filter service must query again. + The component to filter the attributes of. + A dictionary of attributes that can be modified. + + + Filters the events that a component exposes through a . + true if the set of filtered events is to be cached; false if the filter service must query again. + The component to filter events for. + A dictionary of events that can be modified. + + + Filters the properties that a component exposes through a . + true if the set of filtered properties is to be cached; false if the filter service must query again. + The component to filter properties for. + A dictionary of properties that can be modified. + + + Discovers available types at design time. + + + Retrieves the list of available types. + A collection of types that match the criteria specified by and . + The base type to match. Can be null. + Indicates whether types from all referenced assemblies should be checked. + + + Provides an interface to retrieve an assembly or type by name. + + + Gets the requested assembly. + An instance of the requested assembly, or null if no assembly can be located. + The name of the assembly to retrieve. + + + Gets the requested assembly. + An instance of the requested assembly, or null if no assembly can be located. + The name of the assembly to retrieve. + true if this method should throw an exception if the assembly cannot be located; otherwise, false, and this method returns null if the assembly cannot be located. + + + Gets the path to the file from which the assembly was loaded. + The path to the file from which the assembly was loaded. + The name of the assembly. + + + Loads a type with the specified name. + An instance of that corresponds to the specified name, or null if no type can be found. + The name of the type. If the type name is not a fully qualified name that indicates an assembly, this service will search its internal set of referenced assemblies. + + + Loads a type with the specified name. + An instance of that corresponds to the specified name, or null if no type can be found. + The name of the type. If the type name is not a fully qualified name that indicates an assembly, this service will search its internal set of referenced assemblies. + true if this method should throw an exception if the assembly cannot be located; otherwise, false, and this method returns null if the assembly cannot be located. + + + Loads a type with the specified name. + An instance of that corresponds to the specified name, or null if no type can be found. + The name of the type. If the type name is not a fully qualified name that indicates an assembly, this service will search its internal set of referenced assemblies. + true if this method should throw an exception if the assembly cannot be located; otherwise, false, and this method returns null if the assembly cannot be located. + true to ignore case when searching for types; otherwise, false. + + + Adds a reference to the specified assembly. + An that indicates the assembly to reference. + + + Represents a Windows menu or toolbar command item. + + + Initializes a new instance of the class. + The event to raise when the user selects the menu item or toolbar button. + The unique command ID that links this menu command to the environment's menu. + + + Gets or sets a value indicating whether this menu item is checked. + true if the item is checked; otherwise, false. + + + Occurs when the menu command changes. + + + Gets the associated with this menu command. + The associated with the menu command. + + + Gets a value indicating whether this menu item is available. + true if the item is enabled; otherwise, false. + + + Invokes the command. + + + Invokes the command with the given parameter. + An optional argument for use by the command. + + + Gets the OLE command status code for this menu item. + An integer containing a mixture of status flags that reflect the state of this menu item. + + + Raises the event. + An that contains the event data. + + + Gets the public properties associated with the . + An containing the public properties of the . + + + Gets or sets a value indicating whether this menu item is supported. + true if the item is supported, which is the default; otherwise, false. + + + Returns a string representation of this menu command. + A string containing the value of the property appended with the names of any flags that are set, separated by pipe bars (|). These flag properties include , , , and . + + + Gets or sets a value indicating whether this menu item is visible. + true if the item is visible; otherwise, false. + + + Defines identifiers that indicate the type of a selection. + + + Represents an add selection that adds the selected components to the current selection, maintaining the current set of selected components. + + + Represents a regular selection. The selection service responds to the CTRL and SHIFT keys to support adding or removing components to or from the selection. + + + Represents a selection that occurs when a user clicks a component. If the newly selected component is already selected, it is promoted to be the primary selected component rather than being canceled. + + + Represents a selection that occurs when the user presses on the mouse button while the mouse pointer is over a component. If the component under the pointer is already selected, it is promoted to become the primary selected component rather than being canceled. + + + Represents a selection that occurs when the user releases the mouse button immediately after a component has been selected. If the newly selected component is already selected, it is promoted to be the primary selected component rather than being canceled. + + + Represents a regular selection. The selection service responds to the CTRL and SHIFT keys to support adding or removing components to or from the selection. + + + Represents a primary selection that occurs when a user clicks on a component. If a component in the selection list is already selected, the component is promoted to be the primary selection. + + + Represents a remove selection that removes the selected components from the current selection, maintaining the current set of selected components. + + + Represents a selection that occurs when the content of a selection is replaced. The selection service replaces the current selection with the replacement. + + + Represents a toggle selection that switches between the current selection and the provided selection. If a component is already selected and is passed into with a selection type of , the component selection will be canceled. + + + Identifies the valid selection types as , , , , or . + + + Provides a simple implementation of the interface. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified parent service provider. + A parent service provider. + + + Adds the specified service to the service container. + The type of service to add. + A callback object that can create the service. This allows a service to be declared as available, but delays creation of the object until the service is requested. + + or is null. + A service of type already exists in the container. + + + Adds the specified service to the service container. + The type of service to add. + A callback object that can create the service. This allows a service to be declared as available, but delays creation of the object until the service is requested. + true if this service should be added to any parent service containers; otherwise, false. + + or is null. + A service of type already exists in the container. + + + Adds the specified service to the service container. + The type of service to add. + An instance of the service to add. This object must implement or inherit from the type indicated by the parameter. + + or is null. + A service of type already exists in the container. + + + Adds the specified service to the service container. + The type of service to add. + An instance of the service type to add. This object must implement or inherit from the type indicated by the parameter. + true if this service should be added to any parent service containers; otherwise, false. + + or is null. + A service of type already exists in the container. + + + Gets the default services implemented directly by . + The default services. + + + Disposes this service container. + + + Disposes this service container. + true if the is in the process of being disposed of; otherwise, false. + + + Gets the requested service. + An instance of the service if it could be found, or null if it could not be found. + The type of service to retrieve. + + + Removes the specified service type from the service container. + The type of service to remove. + + is null. + + + Removes the specified service type from the service container. + The type of service to remove. + true if this service should be removed from any parent service containers; otherwise, false. + + is null. + + + Provides a callback mechanism that can create an instance of a service on demand. + The service specified by , or null if the service could not be created. + The service container that requested the creation of the service. + The type of service to create. + + + Defines identifiers for the standard set of commands that are available to most applications. + + + Initializes a new instance of the class. + + + Gets the for the AlignBottom command. This field is read-only. + + + Gets the for the AlignHorizontalCenters command. This field is read-only. + + + Gets the for the AlignLeft command. This field is read-only. + + + Gets the for the AlignRight command. This field is read-only. + + + Gets the for the AlignToGrid command. This field is read-only. + + + Gets the for the AlignTop command. This field is read-only. + + + Gets the for the AlignVerticalCenters command. This field is read-only. + + + Gets the for the ArrangeBottom command. This field is read-only. + + + Gets the for the ArrangeIcons command. This field is read-only. + + + Gets the for the ArrangeRight command. This field is read-only. + + + Gets the for the BringForward command. This field is read-only. + + + Gets the for the BringToFront command. This field is read-only. + + + Gets the for the CenterHorizontally command. This field is read-only. + + + Gets the for the CenterVertically command. This field is read-only. + + + Gets the for the Copy command. This field is read-only. + + + Gets the for the Cut command. This field is read-only. + + + Gets the for the Delete command. This field is read-only. + + + Gets the for the Document Outline command. This field is read-only. + + + Gets the for the F1Help command. This field is read-only. + + + Gets the for the Group command. This field is read-only. + + + Gets the for the HorizSpaceConcatenate command. This field is read-only. + + + Gets the for the HorizSpaceDecrease command. This field is read-only. + + + Gets the for the HorizSpaceIncrease command. This field is read-only. + + + Gets the for the HorizSpaceMakeEqual command. This field is read-only. + + + Gets the for the LineupIcons command. This field is read-only. + + + Gets the for the LockControls command. This field is read-only. + + + Gets the for the MultiLevelRedo command. This field is read-only. + + + Gets the for the MultiLevelUndo command. This field is read-only. + + + Gets the for the Paste command. This field is read-only. + + + Gets the for the Properties command. This field is read-only. + + + Gets the for the PropertiesWindow command. This field is read-only. + + + Gets the for the Redo command. This field is read-only. + + + Gets the for the Replace command. This field is read-only. + + + Gets the for the SelectAll command. This field is read-only. + + + Gets the for the SendBackward command. This field is read-only. + + + Gets the for the SendToBack command. This field is read-only. + + + Gets the for the ShowGrid command. This field is read-only. + + + Gets the for the ShowLargeIcons command. This field is read-only. + + + Gets the for the SizeToControl command. This field is read-only. + + + Gets the for the SizeToControlHeight command. This field is read-only. + + + Gets the for the SizeToControlWidth command. This field is read-only. + + + Gets the for the SizeToFit command. This field is read-only. + + + Gets the for the SizeToGrid command. This field is read-only. + + + Gets the for the SnapToGrid command. This field is read-only. + + + Gets the for the TabOrder command. This field is read-only. + + + Gets the for the Undo command. This field is read-only. + + + Gets the for the Ungroup command. This field is read-only. + + + Gets the first of a set of verbs. This field is read-only. + + + Gets the last of a set of verbs. This field is read-only. + + + Gets the for the VertSpaceConcatenate command. This field is read-only. + + + Gets the for the VertSpaceDecrease command. This field is read-only. + + + Gets the for the VertSpaceIncrease command. This field is read-only. + + + Gets the for the VertSpaceMakeEqual command. This field is read-only. + + + Gets the for the ViewCode command. This field is read-only. + + + Gets the for the ViewGrid command. This field is read-only. + + + Defines GUID identifiers that correspond to the standard set of tool windows that are available in the design environment. + + + Initializes a new instance of the class. + + + Gets the GUID for the object browser. This field is read-only. + + + Gets the GUID for the output window. This field is read-only. + + + Gets the GUID for the solution explorer. This field is read-only. + + + Gets the GUID for the Properties window. This field is read-only. + + + Gets the GUID for the related links frame. This field is read-only. + + + Gets the GUID for the server explorer. This field is read-only. + + + Gets the GUID for the task list. This field is read-only. + + + Gets the GUID for the Toolbox. This field is read-only. + + + Provides a type description provider for a specified type. + + + Initializes a new instance of the class. + + + Gets a type description provider for the specified object. + A that corresponds with . + The object to get a type description provider for. + + + Gets a type description provider for the specified type. + A that corresponds with . + The type to get a type description provider for. + + + Defines identifiers for a set of technologies that designer hosts support. + + + Specifies the default view technology support. + + + Represents a mode in which the view object is passed directly to the development environment. + + + Represents a mode in which a Windows Forms control object provides the display for the root designer. + + + Provides the base class for serializing a set of components or serializable objects into a serialization store. + + + Initializes a new instance of the class. + + + Creates a new . + A new created serialization store. + + + Deserializes the given store to produce a collection of objects. + A collection of objects created according to the stored state. + The to deserialize. + + is null. + + does not contain data in a format the serialization container can process. + + + Deserializes the given store and populates the given with deserialized objects. + A collection of objects created according to the stored state. + The to deserialize. + The to which objects will be added. + + or is null. + + does not contain data in a format the serialization container can process. + + + Deserializes the given to the given container. + The to deserialize. + The container to which objects will be added. + + or is null. + + does not contain data in a format the serialization container can process. + + + Deserializes the given to the given container, optionally validating recycled types. + The to deserialize. + The container to which objects will be added. + true to guarantee that the deserialization will only work if applied to an object of the same type. + + or is null. + + does not contain data in a format the serialization container can process. + + + Deserializes the given to the given container, optionally applying default property values. + The to deserialize. + The container to which objects will be added. + true to guarantee that the deserialization will only work if applied to an object of the same type. + true to indicate that the default property values should be applied. + + or is null. + + does not contain data in a format the serialization container can process. + + + Loads a from a stream. + A new instance. + The from which the store will be loaded. + + is null. + + does not contain data saved by a previous call to . + + + Serializes the given object to the given . + The to which the state of will be written. + The object to serialize. + + or is null. + + is closed, or is not a supported type of serialization store. Use a store returned by . + + + Serializes the given object, accounting for default property values. + The to which the state of will be serialized. + The object to serialize. + + or is null. + + is closed, or is not a supported type of serialization store. Use a store returned by . + + + Serializes the given member on the given object. + The to which the state of will be serialized. + The object to which is attached. + A specifying the member to serialize. + + or is null. + + is closed, or is not a supported type of serialization store. Use a store returned by . + + + Serializes the given member on the given object, accounting for the default property value. + The to which the state of will be serialized. + The object to which is attached. + The member to serialize. + + or is null. + + is closed, or is not a supported type of serialization store. Use a store returned by . + + + Provides a stack object that can be used by a serializer to make information available to nested serializers. + + + Initializes a new instance of the class. + + + Appends an object to the end of the stack, rather than pushing it onto the top of the stack. + A context object to append to the stack. + + is null. + + + Gets the current object on the stack. + The current object on the stack, or null if no objects were pushed. + + + Gets the object on the stack at the specified level. + The object on the stack at the specified level, or null if no object exists at that level. + The level of the object to retrieve on the stack. Level 0 is the top of the stack, level 1 is the next down, and so on. This level must be 0 or greater. If level is greater than the number of levels on the stack, it returns null. + + is less than 0. + + + Gets the first object on the stack that inherits from or implements the specified type. + The first object on the stack that inherits from or implements the specified type, or null if no object on the stack implements the type. + A type to retrieve from the context stack. + + is null. + + + Removes the current object off of the stack, returning its value. + The object removed from the stack; null if no objects are on the stack. + + + Pushes, or places, the specified object onto the stack. + The context object to push onto the stack. + + is null. + + + The attribute is placed on a serializer to indicate the class to use as a default provider of that type of serializer. + + + Initializes a new instance of the class with the named provider type. + The name of the serialization provider type. + + is null. + + + Initializes a new instance of the class with the given provider type. + The of the serialization provider. + + is null. + + + Gets the type name of the serialization provider. + A string containing the name of the provider. + + + Provides a basic designer loader interface that can be used to implement a custom designer loader. + + + Initializes a new instance of the class. + + + Begins loading a designer. + The loader host through which this loader loads components. + + + Releases all resources used by the . + + + Writes cached changes to the location that the designer was loaded from. + + + Gets a value indicating whether the loader is currently loading a document. + true if the loader is currently loading a document; otherwise, false. + + + Indicates a serializer for the serialization manager to use to serialize the values of the type this attribute is applied to. This class cannot be inherited. + + + Initializes a new instance of the class. + The fully qualified name of the data type of the serializer. + The fully qualified name of the base data type of the serializer. Multiple serializers can be supplied for a class as long as the serializers have different base types. + + + Initializes a new instance of the class. + The fully qualified name of the data type of the serializer. + The base data type of the serializer. Multiple serializers can be supplied for a class as long as the serializers have different base types. + + + Initializes a new instance of the class. + The data type of the serializer. + The base data type of the serializer. Multiple serializers can be supplied for a class as long as the serializers have different base types. + + + Gets the fully qualified type name of the serializer base type. + The fully qualified type name of the serializer base type. + + + Gets the fully qualified type name of the serializer. + The fully qualified type name of the serializer. + + + Indicates a unique ID for this attribute type. + A unique ID for this attribute type. + + + Provides an interface that can extend a designer host to support loading from a serialized state. + + + Ends the designer loading operation. + The fully qualified name of the base class of the document that this designer is designing. + true if the designer is successfully loaded; otherwise, false. + A collection containing the errors encountered during load, if any. If no errors were encountered, pass either an empty collection or null. + + + Reloads the design document. + + + Provides an interface that extends to specify whether errors are tolerated while loading a design document. + + + Gets or sets a value indicating whether it is possible to reload with errors. + true if the designer loader can reload the design document when errors are detected; otherwise, false. The default is false. + + + Gets or sets a value indicating whether errors should be ignored when is called. + true if the designer loader will ignore errors when it reloads; otherwise, false. The default is false. + + + Provides an interface that can extend a designer loader to support asynchronous loading of external components. + + + Registers an external component as part of the load process managed by this interface. + + + Signals that a dependent load has finished. + true if the load of the designer is successful; false if errors prevented the load from finishing. + A collection of errors that occurred during the load, if any. If no errors occurred, pass either an empty collection or null. + + + Reloads the design document. + true if the reload request is accepted, or false if the loader does not allow the reload. + + + Provides an interface that can manage design-time serialization. + + + Adds the specified serialization provider to the serialization manager. + The serialization provider to add. + + + Gets a stack-based, user-defined storage area that is useful for communication between serializers. + A that stores data. + + + Creates an instance of the specified type and adds it to a collection of named instances. + The newly created object instance. + The data type to create. + The arguments to pass to the constructor for this type. + The name of the object. This name can be used to access the object later through . If null is passed, the object is still created but cannot be accessed by name. + If true, this object is added to the design container. The object must implement for this to have any effect. + + + Gets an instance of a created object of the specified name, or null if that object does not exist. + An instance of the object with the given name, or null if no object by that name can be found. + The name of the object to retrieve. + + + Gets the name of the specified object, or null if the object has no name. + The name of the object, or null if the object is unnamed. + The object to retrieve the name for. + + + Gets a serializer of the requested type for the specified object type. + An instance of the requested serializer, or null if no appropriate serializer can be located. + The type of the object to get the serializer for. + The type of the serializer to retrieve. + + + Gets a type of the specified name. + An instance of the type, or null if the type cannot be loaded. + The fully qualified name of the type to load. + + + Indicates custom properties that can be serializable with available serializers. + A containing the properties to be serialized. + + + Removes a custom serialization provider from the serialization manager. + The provider to remove. This object must have been added using . + + + Reports an error in serialization. + The error to report. This information object can be of any object type. If it is an exception, the message of the exception is extracted and reported to the user. If it is any other type, is called to display the information to the user. + + + Occurs when cannot locate the specified name in the serialization manager's name table. + + + Occurs when serialization is complete. + + + Sets the name of the specified existing object. + The object instance to name. + The name to give the instance. + + + Provides an interface that enables access to a serializer. + + + Gets a serializer using the specified attributes. + An instance of a serializer of the type requested, or null if the request cannot be satisfied. + The serialization manager requesting the serializer. + An instance of the current serializer of the specified type. This can be null if no serializer of the specified type exists. + The data type of the object to serialize. + The data type of the serializer to create. + + + Provides an interface that can invoke serialization and deserialization. + + + Deserializes the specified serialization data object and returns a collection of objects represented by that data. + An of objects rebuilt from the specified serialization data object. + An object consisting of serialized data. + + + Serializes the specified collection of objects and stores them in a serialization data object. + An object that contains the serialized state of the specified collection of objects. + A collection of objects to serialize. + + + Provides a service that can generate unique names for objects. + + + Creates a new name that is unique to all components in the specified container. + A unique name for the data type. + The container where the new object is added. + The data type of the object that receives the name. + + + Gets a value indicating whether the specified name is valid. + true if the name is valid; otherwise, false. + The name to validate. + + + Gets a value indicating whether the specified name is valid. + The name to validate. + + + Provides the information necessary to create an instance of an object. This class cannot be inherited. + + + Initializes a new instance of the class using the specified member information and arguments. + The member information for the descriptor. This can be a , , , or . If this is a , , or , it must represent a static member. + The collection of arguments to pass to the member. This parameter can be null or an empty collection if there are no arguments. The collection can also consist of other instances of . + + is of type , , or , and it does not represent a static member. is of type and is not readable. is of type or , and the number of arguments in does not match the signature of is of type and represents a static member. is of type , and the number of arguments in is not zero. + + + Initializes a new instance of the class using the specified member information, arguments, and value indicating whether the specified information completely describes the instance. + The member information for the descriptor. This can be a , , , or . If this is a , , or , it must represent a static member. + The collection of arguments to pass to the member. This parameter can be null or an empty collection if there are no arguments. The collection can also consist of other instances of . + true if the specified information completely describes the instance; otherwise, false. + + is of type , , or , and it does not represent a static member is of type and is not readable. is of type or and the number of arguments in does not match the signature of . is of type and represents a static member is of type , and the number of arguments in is not zero. + + + Gets the collection of arguments that can be used to reconstruct an instance of the object that this instance descriptor represents. + An of arguments that can be used to create the object. + + + Invokes this instance descriptor and returns the object the descriptor describes. + The object this instance descriptor describes. + + + Gets a value indicating whether the contents of this completely identify the instance. + true if the instance is completely described; otherwise, false. + + + Gets the member information that describes the instance this descriptor is associated with. + A that describes the instance that this object is associated with. + + + Represents a single relationship between an object and a member. + + + Initializes a new instance of the class. + The object that owns . + The member which is to be related to . + + or is null. + + + Represents the empty member relationship. This field is read-only. + + + Determines whether two instances are equal. + true if the specified is equal to the current ; otherwise, false. + The to compare with the current . + + + Returns the hash code for this instance. + A hash code for the current . + + + Gets a value indicating whether this relationship is equal to the relationship. + true if this relationship is equal to the relationship; otherwise, false. + + + Gets the related member. + The member that is passed in to the . + + + Tests whether two specified structures are equivalent. + This operator returns true if the two structures are equal; otherwise, false. + The structure that is to the left of the equality operator. + The structure that is to the right of the equality operator. + + + Tests whether two specified structures are different. + This operator returns true if the two structures are different; otherwise, false. + The structure that is to the left of the inequality operator. + The structure that is to the right of the inequality operator. + + + Gets the owning object. + The owning object that is passed in to the . + + + Provides the base class for relating one member to another. + + + Initializes a new instance of the class. + + + Gets a relationship to the given source relationship. + A relationship to , or if no relationship exists. + The source relationship. + + + Establishes a relationship between a source and target object. + The current relationship associated with , or if there is no relationship. + The source relationship. This is the left-hand side of a relationship assignment. + + is null. + + is empty, or the relationship is not supported by the service. + + + Establishes a relationship between a source and target object. + A structure encapsulating the relationship between a source and target object, or null if there is no relationship. + The owner of a source relationship. + The member of a source relationship. + + or is null. + + or is empty, or the relationship is not supported by the service. + + + Creates a relationship between the source object and target relationship. + The source relationship. + The relationship to set into the source. + The relationship is not supported by the service. + + + Gets a value indicating whether the given relationship is supported. + true if a relationship between the given two objects is supported; otherwise, false. + The source relationship. + The relationship to set into the source. + + + Provides data for the event. + + + Initializes a new instance of the class. + The name to resolve. + + + Gets the name of the object to resolve. + The name of the object to resolve. + + + Gets or sets the object that matches the name. + The object that the name is associated with. + + + Represents the method that handles the event of a serialization manager. + The source of the event. + A that contains the event data. + + + Indicates the base serializer to use for a root designer object. This class cannot be inherited. + + + Initializes a new instance of the class using the specified attributes. + The fully qualified name of the data type of the serializer. + The name of the base type of the serializer. A class can include multiple serializers as they all have different base types. + true if this serializer supports dynamic reloading of the document; otherwise, false. + + + Initializes a new instance of the class using the specified attributes. + The fully qualified name of the data type of the serializer. + The name of the base type of the serializer. A class can include multiple serializers, as they all have different base types. + true if this serializer supports dynamic reloading of the document; otherwise, false. + + + Initializes a new instance of the class using the specified attributes. + The data type of the serializer. + The base type of the serializer. A class can include multiple serializers as they all have different base types. + true if this serializer supports dynamic reloading of the document; otherwise, false. + + + Gets a value indicating whether the root serializer supports reloading of the design document without first disposing the designer host. + true if the root serializer supports reloading; otherwise, false. + + + Gets the fully qualified type name of the base type of the serializer. + The name of the base type of the serializer. + + + Gets the fully qualified type name of the serializer. + The name of the type of the serializer. + + + Gets a unique ID for this attribute type. + An object containing a unique ID for this attribute type. + + + Provides the base class for storing serialization data for the . + + + Initializes a new instance of the class. + + + Closes the serialization store. + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Gets a collection of errors that occurred during serialization or deserialization. + An that contains errors that occurred during serialization or deserialization. + + + Saves the store to the given stream. + The stream to which the store will be serialized. + + + Releases all resources used by the . + + + Specifies that an application settings property has a common value for all users of an application. This class cannot be inherited. + 1 + + + Initializes a new instance of the class. + + + Acts as a base class for deriving concrete wrapper classes to implement the application settings feature in Window Forms applications. + 1 + + + Initializes an instance of the class to its default state. + + + Initializes an instance of the class using the supplied owner component. + The component that will act as the owner of the application settings object. + + is null. + + + Initializes an instance of the class using the supplied owner component and settings key. + The component that will act as the owner of the application settings object. + A that uniquely identifies separate instances of the wrapper class. + + is null. + + + Initializes an instance of the class using the supplied settings key. + A that uniquely identifies separate instances of the wrapper class. + + + Gets the application settings context associated with the settings group. + A associated with the settings group. + 2 + + + Returns the value of the named settings property for the previous version of the same application. + An containing the value of the specified if found; otherwise, null. + A containing the name of the settings property whose value is to be returned. + The property does not exist. The property count is zero or the property cannot be found in the data store. + 2 + + + + + + + + Gets or sets the value of the specified application settings property. + If found, the value of the named settings property; otherwise, null. + A containing the name of the property to access. + There are no properties associated with the current wrapper or the specified property could not be found. + An attempt was made to set a read-only property. + The value supplied is of a type incompatible with the settings property, during a set operation. + The configuration file could not be parsed. + 2 + + + Raises the event. + The source of the event. + A that contains the event data. + + + Raises the event. + The source of the event. + A that contains the event data. + + + Raises the event. + The source of the event. + A that contains the event data. + + + Raises the event. + The source of the event. + A that contains the event data. + + + Gets the collection of settings properties in the wrapper. + A containing all the objects used in the current wrapper. + The associated settings provider could not be found or its instantiation failed. + 2 + + + + + + + Occurs after the value of an application settings property is changed. + 2 + + + Gets a collection of property values. + A of property values. + 2 + + + Gets the collection of application settings providers used by the wrapper. + A containing all the objects used by the settings properties of the current settings wrapper. + 2 + + + + + + Refreshes the application settings property values from persistent storage. + 1 + + + Restores the persisted application settings values to their corresponding default properties. + The configuration file could not be parsed. + 2 + + + + + + + Stores the current values of the application settings properties. + 1 + + + Occurs before the value of an application settings property is changed. + 2 + + + Gets or sets the settings key for the application settings group. + A containing the settings key for the current settings group. + 2 + + + Occurs after the application settings are retrieved from storage. + + + Occurs before values are saved to the data store. + 2 + + + Updates application settings to reflect a more recent installation of the application. + The configuration file could not be parsed. + 2 + + + + + + + Represents a grouping of related application settings sections within a configuration file. This class cannot be inherited. + 2 + + + Initializes a new instance of the class. + + + Provides a method for reading values of a particular type from the configuration. + 2 + + + Initializes a new instance of the class. + + + Gets the value for a specified key from the property and returns an object of the specified type containing the value from the configuration. + The value of the specified key. + The key for which to get the value. + The type of the object to return. + + is null.- or - is null. + + does not exist in the <appSettings> configuration section.- or -The value in the <appSettings> configuration section for is not of type . + 2 + + + Represents a group of user-scoped application settings in a configuration file. + 2 + + + Initializes a new instance of the class. + + + Gets the collection of client settings for the section. + A containing all the client settings found in the current configuration section. + 2 + + + The exception that is thrown when a configuration system error has occurred. + 2 + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + The object that holds the information to deserialize. + Contextual information about the source or destination. + + + Initializes a new instance of the class. + A message describing why this exception was thrown. + + + Initializes a new instance of the class. + A message describing why this exception was thrown. + The inner exception that caused this to be thrown, if any. + + + Initializes a new instance of the class. + A message describing why this exception was thrown. + The inner exception that caused this to be thrown, if any. + The path to the configuration file that caused this to be thrown. + The line number within the configuration file at which this was thrown. + + + Initializes a new instance of the class. + A message describing why this exception was thrown. + The inner exception that caused this to be thrown, if any. + The that caused this to be thrown. + + + Initializes a new instance of the class. + A message describing why this exception was thrown. + The path to the configuration file that caused this to be thrown. + The line number within the configuration file at which this was thrown. + + + Initializes a new instance of the class. + A message describing why this exception was thrown. + The that caused this to be thrown. + + + Gets a description of why this configuration exception was thrown. + A description of why this exception was thrown. + 2 + + + + + + Gets the path to the configuration file that caused this configuration exception to be thrown. + The path to the configuration file that caused this exception to be thrown. + 2 + + + + + + Sets the object with the file name and line number at which this configuration exception occurred. + The object that holds the information to be serialized. + The contextual information about the source or destination. + 2 + + + Gets the path to the configuration file from which the internal object was loaded when this configuration exception was thrown. + A string representing the node file name. + The that caused this exception to be thrown. + 1 + + + + + + Gets the line number within the configuration file that the internal object represented when this configuration exception was thrown. + An int representing the node line number. + The that caused this exception to be thrown. + 1 + + + Gets the line number within the configuration file at which this configuration exception was thrown. + The line number within the configuration file at which this exception was thrown. + 2 + + + Gets an extended description of why this configuration exception was thrown. + An extended description of why this exception was thrown. + 2 + + + + + + Provides runtime versions 1.0 and 1.1 support for reading configuration sections and common configuration settings. + 2 + + + Gets a read-only of the application settings section of the configuration file. + A read-only of the application settings section from the configuration file. + 1 + + + + + + + Returns the object for the passed configuration section name and path. + The object for the passed configuration section name and path.NoteThe class provides backward compatibility only. You should use the class or class instead. + A configuration name and path, such as "system.net/settings". + Unable to retrieve the requested section. + 1 + + + + + + + Wraps the corresponding type and also carries the necessary information for reporting file-name and line numbers. + 2 + + + Initializes a new instance of the class. + + + Creates a configuration element attribute. + The attribute. + The prefix definition. + The name that is used locally. + The URL that is assigned to the namespace. + 2 + + + Creates an XML CData section. + The value. + The data to use. + 2 + + + Create an XML comment. + The value. + The comment data. + 2 + + + Creates a configuration element. + The value. + The prefix definition. + The name used locally. + The namespace for the URL. + 2 + + + Creates white spaces. + The value. + The data to use. + 2 + + + Create a text node. + The value. + The text to use. + 2 + + + Creates white space. + The value. + The data to use. + 2 + + + Gets the configuration file name. + The configuration file name. + 2 + + + Gets the current node line number. + The line number for the current node. + 2 + + + Loads the configuration file. + The name of the file. + 2 + + + Loads a single configuration element. + The name of the file. + The source for the reader. + 2 + + + Gets the configuration file name. + The file name. + + + Gets the configuration line number. + The line number. + + + Specifies the default value for an application settings property. + 1 + + + Initializes an instance of the class. + A that represents the default value for the property. + + + Gets the default value for the application settings property. + A that represents the default value for the property. + 2 + + + Provides key/value pair configuration information from a configuration section. + 2 + + + Initializes a new instance of the class. + + + Creates a new configuration handler and adds it to the section-handler collection based on the specified parameters. + A configuration object. + Parent object. + Configuration context object. + Section XML node. + 2 + + + Gets the XML attribute name to use as the key in a key/value pair. + A string value containing the name of the key attribute. + + + Gets the XML attribute name to use as the value in a key/value pair. + A string value containing the name of the value attribute. + + + Defines extended capabilities for client-based application settings providers. + 2 + + + Returns the value of the specified settings property for the previous version of the same application. + A containing the value of the specified property setting as it was last set in the previous version of the application; or null if the setting cannot be found. + A describing the current application usage. + The whose value is to be returned. + 2 + + + Resets the application settings associated with the specified application to their default values. + A describing the current application usage. + 2 + + + Indicates to the provider that the application has been upgraded. This offers the provider an opportunity to upgrade its stored settings as appropriate. + A describing the current application usage. + A containing the settings property group whose values are to be retrieved. + 2 + + + Handles the access to certain configuration sections. + 2 + + + Creates a configuration section handler. + The created section handler object. + Parent object. + Configuration context object. + Section XML node. + 2 + + + Provides standard configuration methods. + 2 + + + Gets the specified configuration. + The object representing the configuration. + The configuration key. + 2 + + + Used for initialization. + 2 + + + Provides the configuration setting for International Domain Name (IDN) processing in the class. + + + Initializes a new instance of the class. + + + Gets or sets the value of the configuration setting. + A that contains the current configuration setting for IDN processing. + + + Provides a legacy section-handler definition for configuration sections that are not handled by the types. + 2 + + + Initializes a new instance of the class. + + + Creates a new configuration handler and adds the specified configuration object to the section-handler collection. + The created configuration handler object. + The configuration settings in a corresponding parent configuration section. + The virtual path for which the configuration section handler computes configuration values. Normally this parameter is reserved and is null. + An that contains the configuration information to be handled. Provides direct access to the XML contents of the configuration section. + 2 + + + Defines standard functionality for controls or libraries that store and retrieve application settings. + 2 + + + Reads the control's application settings into their corresponding properties and updates the control's state. + 2 + + + Resets the control's application settings properties to their default values. + 1 + + + Persists the control's application settings properties. + 2 + + + Gets or sets a value indicating whether the control should automatically persist its application settings properties. + true if the control should automatically persist its state; otherwise, false. + 2 + + + Gets or sets the value of the application settings key for the current instance of the control. + A containing the settings key for the current instance of the control. + 2 + + + Provides the configuration setting for International Resource Identifier (IRI) processing in the class. + + + Initializes a new instance of the class. + + + Gets or sets the value of the configuration setting. + A Boolean that indicates if International Resource Identifier (IRI) processing is enabled. + + + Provides an interface for defining an alternate application settings provider. + 2 + + + Returns the settings provider compatible with the specified settings property. + If found, the that can persist the specified settings property; otherwise, null. + The that requires serialization. + 2 + + + Provides persistence for application settings classes. + 2 + + + Initializes a new instance of the class. + + + Gets or sets the name of the currently running application. + A string that contains the application's display name. + 2 + + + Returns the value of the named settings property for the previous version of the same application. + A representing the application setting if found; otherwise, null. + A that describes where the application settings property is used. + The whose value is to be returned. + 2 + + + + + + + + Returns the collection of setting property values for the specified application instance and settings property group. + A containing the values for the specified settings property group. + A describing the current application usage. + A containing the settings property group whose values are to be retrieved. + A user-scoped setting was encountered but the current configuration only supports application-scoped settings. + 2 + + + + + + + + The name of the provider. + The values for initialization. + 2 + + + Resets all application settings properties associated with the specified application to their default values. + A describing the current application usage. + A user-scoped setting was encountered but the current configuration only supports application-scoped settings. + 2 + + + + + + + Sets the values of the specified group of property settings. + A describing the current application usage. + A representing the group of property settings to set. + A user-scoped setting was encountered but the current configuration only supports application-scoped settings.-or-There was a general failure saving the settings to the configuration file. + 2 + + + + + + + + Attempts to migrate previous user-scoped settings from a previous version of the same application. + A describing the current application usage. + A containing the settings property group whose values are to be retrieved. + A user-scoped setting was encountered but the current configuration only supports application-scoped settings.-or-The previous version of the configuration file could not be accessed. + 2 + + + + + + + + Provides access to a configuration file. This type supports the .NET Framework configuration infrastructure and is not intended to be used directly from your code. + 2 + + + Initializes a new instance of the class. + + + Creates a new configuration handler and adds it to the section-handler collection based on the specified parameters. + A configuration object. + The parent object. + The configuration context object. + The section XML node. + The file specified in the file attribute of exists but cannot be loaded.- or -The name attribute of does not match the root element of the file specified in the file attribute. + 2 + + + + + + Provides name/value-pair configuration information from a configuration section. + 2 + + + Initializes a new instance of the class. + + + Creates a new configuration handler and adds it to the section-handler collection based on the specified parameters. + A configuration object. + Parent object. + Configuration context object. + Section XML node. + 2 + + + Gets the XML attribute name to use as the key in a key/value pair. + A value containing the name of the key attribute. + + + Gets the XML attribute name to use as the value in a key/value pair. + A value containing the name of the value attribute. + + + Specifies that a settings provider should disable any logic that gets invoked when an application upgrade is detected. This class cannot be inherited. + 1 + + + Initializes a new instance of the class. + + + Represents an element in a class. + + + Initializes a new instance of the class. + + + Gets the value of the GenericUriParserOptions entry from a instance. + The value of GenericUriParserOptions entry. + + + Gets the value of the Name entry from a instance. + The protocol used by this schema setting. + + + Represents a collection of objects. + + + Initializes a new instance of the class. + + + Gets the default collection type of . + The default collection type of . + + + The index of the specified . + The index of the specified ; otherwise, -1. + The for the specified index location. + + + Gets an item at the specified index in the collection. + The specified . + The index of the to return. + The parameter is less than zero.-or- The item specified by the parameter is null or has been removed. + + + Gets an item from the collection. + A object contained in the collection. + A string reference to the object within the collection. + + + Represents a custom settings attribute used to associate settings information with a settings property. + + + Initializes a new instance of the class. + + + Provides data for the event. + 2 + + + Initializes an instance of the class. + A containing the name of the application setting. + A containing a category description of the setting. Often this parameter is set to the application settings group name. + A containing the application settings key. + An that contains the new value to be assigned to the application settings property. + true to cancel the event; otherwise, false. + + + Gets the new value being assigned to the application settings property. + An that contains the new value to be assigned to the application settings property. + 1 + + + Gets the application settings property category. + A containing a category description of the setting. Typically, this parameter is set to the application settings group name. + 2 + + + Gets the application settings key associated with the property. + A containing the application settings key. + 2 + + + Gets the name of the application setting associated with the application settings property. + A containing the name of the application setting. + 2 + + + Represents the method that will handle the event. + The source of the event, typically an application settings wrapper class derived from the class. + A containing the data for the event. + 2 + + + Represents a simplified configuration element used for updating elements in the configuration. This class cannot be inherited. + 2 + + + Initializes a new instance of the class. + + + Initializes a new instance of the class based on supplied parameters. + The name of the object. + A object. This object is an enumeration used as the serialization scheme to store configuration settings. + + + Compares the current instance to the specified object. + true if the instance is equal to the specified object; otherwise, false. + The object to compare with. + 2 + + + Gets a unique value representing the current instance. + A unique value representing the current instance. + 2 + + + + + + Gets or sets the name of the object. + The name of the object. + 2 + + + + + + Gets or sets the serialization mechanism used to persist the values of the object. + A object. + 2 + + + + + + Gets or sets the value of a object by using a object. + A object containing the value of the object. + 2 + + + + + + Contains a collection of objects. This class cannot be inherited. + 2 + + + Initializes a new instance of the class. + + + Adds a object to the collection. + The object to add to the collection. + 2 + + + + + + Removes all objects from the collection. + + + Gets the type of the configuration collection. + The object of the collection. + + + Gets a object from the collection. + A object. + A string value representing the object in the collection. + 2 + + + Removes a object from the collection. + A object. + 2 + + + + + + Represents a collection of key/value pairs used to describe a configuration object as well as a object. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + A collection of key/value pairs that are related to configuration settings. + + + Provides the base class used to support user property settings. + 2 + + + Initializes a new instance of the class. + + + Gets the associated settings context. + A associated with the settings instance. + 2 + + + Initializes internal properties used by object. + The settings context related to the settings properties. + The settings properties that will be accessible from the instance. + The initialized providers that should be used when loading and saving property values. + 2 + + + Gets a value indicating whether access to the object is synchronized (thread safe). + true if access to the is synchronized; otherwise, false. + 2 + + + Gets or sets the value of the specified settings property. + If found, the value of the named settings property. + A containing the name of the property to access. + There are no properties associated with the current object, or the specified property could not be found. + An attempt was made to set a read-only property. + The value supplied is of a type incompatible with the settings property, during a set operation. + 2 + + + + + + + + Gets the collection of settings properties. + A collection containing all the objects. + 2 + + + Gets a collection of settings property values. + A collection of objects representing the actual data values for the properties managed by the instance. + 2 + + + Gets a collection of settings providers. + A containing objects. + 2 + + + Stores the current values of the settings properties. + 1 + + + + + + Provides a class that is synchronized (thread safe). + A class that is synchronized. + The class used to support user property settings. + + + Provides contextual information that the provider can use when persisting settings. + 2 + + + Initializes a new instance of the class. + + + Provides a string that describes an individual configuration property. This class cannot be inherited. + 1 + + + Initializes an instance of the class. + The used as descriptive text. + + + Gets the descriptive text for the associated configuration property. + A containing the descriptive text for the associated configuration property. + 2 + + + Provides a string that describes an application settings property group. This class cannot be inherited. + 1 + + + Initializes a new instance of the class. + A containing the descriptive text for the application settings group. + + + The descriptive text for the application settings properties group. + A containing the descriptive text for the application settings group. + 2 + + + Specifies a name for application settings property group. This class cannot be inherited. + 1 + + + Initializes a new instance of the class. + A containing the name of the application settings property group. + + + Gets the name of the application settings property group. + A containing the name of the application settings property group. + 2 + + + Provides data for the event. + + + Initializes a new instance of the class. + A object from which settings are loaded. + + + Gets the settings provider used to store configuration settings. + A settings provider. + + + Represents the method that will handle the event. + The source of the event, typically the settings class. + A object that contains the event data. + + + Provides values to indicate which services should be made available to application settings. + 2 + + + Enables application settings to be stored in roaming user profiles. For more information about roaming user profiles, see Isolated Storage and Roaming. + + + Specifies special services for application settings properties. This class cannot be inherited. + 1 + + + Initializes a new instance of the class. + A value that enumerates the services being requested. + + + Gets the set of special services that have been requested. + A value that results from using the logical OR operator to combine all the enumeration values corresponding to the requested services. + 2 + + + Used internally as the class that represents metadata about an individual configuration property. + 2 + + + Initializes a new instance of the class, based on the supplied parameter. + Specifies a copy of an existing object. + + + Initializes a new instance of the class. based on the supplied parameter. + Specifies the name of an existing object. + + + Creates a new instance of the class based on the supplied parameters. + The name of the object. + The type of object. + A object to use for persistence. + A value specifying whether the object is read-only. + The default value of the object. + A object. This object is an enumeration used to set the serialization scheme for storing application settings. + A object. + A Boolean value specifying whether an error will be thrown when the property is unsuccessfully deserialized. + A Boolean value specifying whether an error will be thrown when the property is unsuccessfully serialized. + + + Gets a object containing the attributes of the object. + A object. + 2 + + + Gets or sets the default value of the object. + An object containing the default value of the object. + 2 + + + Gets or sets a value specifying whether a object is read-only. + true if the is read-only; otherwise, false. + 2 + + + Gets or sets the name of the . + The name of the . + 2 + + + Gets or sets the type for the . + The type for the . + 2 + + + Gets or sets the provider for the . + A object. + 2 + + + Gets or sets a object for the . + A object. + 2 + + + Gets or sets a value specifying whether an error will be thrown when the property is unsuccessfully deserialized. + true if the error will be thrown when the property is unsuccessfully deserialized; otherwise, false. + + + Gets or sets a value specifying whether an error will be thrown when the property is unsuccessfully serialized. + true if the error will be thrown when the property is unsuccessfully serialized; otherwise, false. + + + Contains a collection of objects. + 2 + + + Initializes a new instance of the class. + + + Adds a object to the collection. + A object. + The collection is read-only. + 2 + + + Removes all objects from the collection. + The collection is read-only. + 2 + + + Creates a copy of the existing collection. + A class. + 2 + + + Copies this object to an array. + The array to copy the object to. + The index at which to begin copying. + 2 + + + Gets a value that specifies the number of objects in the collection. + The number of objects in the collection. + 2 + + + Gets the object as it applies to the collection. + The object as it applies to the collection. + 2 + + + Gets a value that indicates whether access to the collection is synchronized (thread safe). + true if access to the is synchronized; otherwise, false. + 2 + + + Gets the collection item with the specified name. + The object with the specified . + The name of the object. + 2 + + + Performs additional, custom processing when adding to the contents of the instance. + A object. + + + Performs additional, custom processing after adding to the contents of the instance. + A object. + + + Performs additional, custom processing when clearing the contents of the instance. + + + Performs additional, custom processing after clearing the contents of the instance. + + + Performs additional, custom processing when removing the contents of the instance. + A object. + + + Performs additional, custom processing after removing the contents of the instance. + A object. + + + Removes a object from the collection. + The name of the object. + The collection is read-only. + 2 + + + Sets the collection to be read-only. + 2 + + + Gets the object to synchronize access to the collection. + The object to synchronize access to the collection. + 2 + + + Provides an exception for read-only objects. + 2 + + + Initializes a new instance of the class. + + + Initializes a new instance of the class based on the supplied parameters. + The object that holds the serialized object data about the exception being thrown. + The object that contains contextual information about the source or destination of the serialized stream. + + + Initializes a new instance of the class based on a supplied parameter. + A string containing an exception message. + + + Initializes a new instance of the class based on supplied parameters. + A string containing an exception message. + The exception that is the cause of the current exception. + + + Provides an exception for objects that are not found. + 2 + + + Initializes a new instance of the class. + + + Initializes a new instance of the class, based on supplied parameters. + The object that holds the serialized object data about the exception being thrown. + The object that contains contextual information about the source or destination of the serialized stream. + + + Initializes a new instance of the class, based on a supplied parameter. + A string containing an exception message. + + + Initializes a new instance of the class, based on supplied parameters. + A string containing an exception message. + The exception that is the cause of the current exception. + + + Contains the value of a settings property that can be loaded and stored by an instance of . + 2 + + + Initializes a new instance of the class, based on supplied parameters. + Specifies a object. + + + Gets or sets whether the value of a object has been deserialized. + true if the value of a object has been deserialized; otherwise, false. + 2 + + + Gets or sets whether the value of a object has changed. + true if the value of a object has changed; otherwise, false. + 2 + + + Gets the name of the property from the associated object. + The name of the object. + 2 + + + Gets the object. + The object that describes the object. + 2 + + + Gets or sets the value of the object. + The value of the object. When this value is set, the property is set to true and is set to false.When a value is first accessed from the property, and if the value was initially stored into the object as a serialized representation using the property, the property will trigger deserialization of the underlying value. As a side effect, the property will be set to true.If this chain of events occurs in ASP.NET, and if an error occurs during the deserialization process, the error is logged using the health-monitoring feature of ASP.NET. By default, this means that deserialization errors will show up in the Application Event Log when running under ASP.NET. If this process occurs outside of ASP.NET, and if an error occurs during deserialization, the error is suppressed, and the remainder of the logic during deserialization occurs. If there is no serialized value to deserialize when the deserialization is attempted, then object will instead attempt to return a default value if one was configured as defined on the associated instance. In this case, if the property was set to either null, or to the string "[null]", then the object will initialize the property to either null for reference types, or to the default value for the associated value type. On the other hand, if property holds a valid object reference or string value (other than "[null]"), then the property is returned instead.If there is no serialized value to deserialize when the deserialization is attempted, and no default value was specified, then an empty string will be returned for string types. For all other types, a default instance will be returned by calling — for reference types this means an attempt will be made to create an object instance using the default constructor. If this attempt fails, then null is returned. + While attempting to use the default value from the property, an error occurred. Either the attempt to convert property to a valid type failed, or the resulting value was not compatible with the type defined by . + 2 + + + Gets or sets the serialized value of the object. + The serialized value of a object. + The serialization options for the property indicated the use of a string type converter, but a type converter was not available. + 2 + + + + + + + + Gets a Boolean value specifying whether the value of the object is the default value as defined by the property value on the associated object. + true if the value of the object is the default value; otherwise, false. + 1 + + + Contains a collection of settings property values that map objects to objects. + 2 + + + Initializes a new instance of the class. + + + Adds a object to the collection. + A object. + An attempt was made to add an item to the collection, but the collection was marked as read-only. + 2 + + + Removes all objects from the collection. + 2 + + + Creates a copy of the existing collection. + A class. + 2 + + + Copies this collection to an array. + The array to copy the collection to. + The index at which to begin copying. + 2 + + + Gets a value that specifies the number of objects in the collection. + The number of objects in the collection. + 2 + + + Gets the object as it applies to the collection. + The object as it applies to the collection. + 2 + + + Gets a value that indicates whether access to the collection is synchronized (thread safe). + true if access to the collection is synchronized; otherwise, false. + 2 + + + Gets an item from the collection. + The object with the specified . + A object. + 2 + + + Removes a object from the collection. + The name of the object. + An attempt was made to remove an item from the collection, but the collection was marked as read-only. + 2 + + + Sets the collection to be read-only. + 2 + + + Gets the object to synchronize access to the collection. + The object to synchronize access to the collection. + 2 + + + Provides an exception that is thrown when an invalid type is used with a object. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class based on the supplied parameters. + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination of the serialized stream. + + + Initializes a new instance of the class based on the supplied parameter. + A string containing an exception message. + + + Initializes a new instance of the class based on the supplied parameters. + A string containing an exception message. + The exception that is the cause of the current exception. + + + Acts as a base class for deriving custom settings providers in the application settings architecture. + 2 + + + Initializes an instance of the class. + + + Gets or sets the name of the currently running application. + A that contains the application's shortened name, which does not contain a full path or extension, for example, SimpleAppSettings. + 2 + + + Returns the collection of settings property values for the specified application instance and settings property group. + A containing the values for the specified settings property group. + A describing the current application use. + A containing the settings property group whose values are to be retrieved. + 2 + + + Sets the values of the specified group of property settings. + A describing the current application usage. + A representing the group of property settings to set. + 2 + + + Specifies the settings provider used to provide storage for the current application settings class or property. This class cannot be inherited. + 1 + + + Initializes an instance of the class. + A containing the name of the settings provider. + + + Initializes a new instance of the class. + A containing the settings provider type. + + + Gets the type name of the settings provider. + A containing the name of the settings provider. + 2 + + + Represents a collection of application settings providers. + 2 + + + Initializes a new instance of the class. + + + Adds a new settings provider to the collection. + A to add to the collection. + The parameter is not of type . -or-The property of the provider parameter is null or an empty string.-or-A settings provider with the same already exists in the collection. + The collection is read-only. + The parameter is null. + 2 + + + Gets the settings provider in the collection that matches the specified name. + If found, the whose name matches that specified by the name parameter; otherwise, null. + A containing the friendly name of the settings provider. + The parameter is null. + The collection is read-only when setting this value. + 2 + + + Represents the method that will handle the event. + The source of the event, typically a data container or data-bound collection. + A that contains the event data. + 2 + + + Determines the serialization scheme used to store application settings. + 2 + + + The settings property is serialized using binary object serialization. + + + The settings provider has implicit knowledge of the property or its type and picks an appropriate serialization mechanism. Often used for custom serialization. + + + The settings property is serialized as plain text. + + + The settings property is serialized as XML using XML serialization. + + + Specifies the serialization mechanism that the settings provider should use. This class cannot be inherited. + 1 + + + Initializes an instance of the class. + A enumerated value that specifies the serialization scheme. + + + Gets the enumeration value that specifies the serialization scheme. + A enumerated value that specifies the serialization scheme. + 2 + + + Contains the XML representing the serialized value of the setting. This class cannot be inherited. + 2 + + + Initializes a new instance of the class. + + + Compares the current instance to the specified object. + true if the instance is equal to the specified object; otherwise, false. + The object to compare. + 2 + + + Gets a unique value representing the current instance. + A unique value representing the current instance. + 2 + + + Gets or sets the value of a object by using an object. + An object containing the value of a . + 2 + + + Handles configuration sections that are represented by a single XML tag in the .config file. + 2 + + + Initializes a new instance of the class. + + + Used internally to create a new instance of this object. + The created object handler. + The parent of this object. + The context of this object. + The object in the configuration. + 2 + + + Specifies the special setting category of a application settings property. + 2 + + + The configuration property represents a connection string, typically for a data store or network resource. + + + The configuration property represents a Uniform Resource Locator (URL) to a Web service. + + + Indicates that an application settings property has a special significance. This class cannot be inherited. + 1 + + + Initializes a new instance of the class. + A enumeration value defining the category of the application settings property. + + + Gets the value describing the special setting category of the application settings property. + A enumeration value defining the category of the application settings property. + 2 + + + Represents the Uri section within a configuration file. + + + Initializes a new instance of the class. + + + Gets an object that contains the configuration setting for International Domain Name (IDN) processing in the class. + The configuration setting for International Domain Name (IDN) processing in the class. + + + Gets an object that contains the configuration setting for International Resource Identifiers (IRI) parsing in the class. + The configuration setting for International Resource Identifiers (IRI) parsing in the class. + + + Gets a object that contains the configuration settings for scheme parsing in the class. + The configuration settings for scheme parsing in the class + + + Specifies that an application settings group or property contains distinct values for each user of an application. This class cannot be inherited. + 1 + + + Initializes a new instance of the class. + + + Represents a grouping of related user settings sections within a configuration file. This class cannot be inherited. + 2 + + + Initializes a new instance of the class. + + + Provides a simple on/off switch that controls debugging and tracing output. + 2 + + + Initializes a new instance of the class with the specified display name and description. + The name to display on a user interface. + The description of the switch. + + + Initializes a new instance of the class with the specified display name, description, and default switch value. + The name to display on the user interface. + The description of the switch. + The default value of the switch. + + + Gets or sets a value indicating whether the switch is enabled or disabled. + true if the switch is enabled; otherwise, false. The default is false. + The caller does not have the correct permission. + 2 + + + + + + + Determines whether the new value of the property can be parsed as a Boolean value. + + + Directs tracing or debugging output to either the standard output or the standard error stream. + 2 + + + Initializes a new instance of the class with trace output written to the standard output stream. + + + Initializes a new instance of the class with an option to write trace output to the standard output stream or the standard error stream. + true to write tracing and debugging output to the standard error stream; false to write tracing and debugging output to the standard output stream. + + + Closes the output to the stream specified for this trace listener. + + + Correlates traces that are part of a logical transaction. + 2 + + + Gets or sets the identity for a global activity. + A structure that identifies the global activity. + 1 + + + Gets the logical operation stack from the call context. + A object that represents the logical operation stack for the call context. + 1 + + + Starts a logical operation on a thread. + 1 + + + Starts a logical operation with the specified identity on a thread. + An object identifying the operation. + The parameter is null. + 1 + + + Stops the current logical operation. + The property is an empty stack. + 1 + + + Defines the counter type, name, and Help string for a custom counter. + 2 + + + Initializes a new instance of the class, to a counter of type NumberOfItems32, and with empty name and help strings. + + + Initializes a new instance of the class, to a counter of the specified type, using the specified counter name and Help strings. + The name of the counter, which must be unique within its category. + The text that describes the counter's behavior. + A that identifies the counter's behavior. + You have specified a value for that is not a member of the enumeration. + + is null. + + + Gets or sets the custom counter's description. + The text that describes the counter's behavior. + The specified value is null. + 2 + + + Gets or sets the name of the custom counter. + A name for the counter, which is unique in its category. + The specified value is null. + The specified value is not between 1 and 80 characters long or contains double quotes, control characters or leading or trailing spaces. + 2 + + + Gets or sets the performance counter type of the custom counter. + A that defines the behavior of the performance counter. + You have specified a type that is not a member of the enumeration. + 2 + + + + + + Provides a strongly typed collection of objects. + 2 + + + Initializes a new instance of the class, with no associated instances. + + + Initializes a new instance of the class by using the specified array of instances. + An array of instances with which to initialize this . + + is null. + + + Initializes a new instance of the class by using the specified collection of instances. + A that holds instances with which to initialize this . + + is null. + + + Adds an instance of the class to the collection. + The index of the new object. + A object to append to the existing collection. + + is null. + + is not a object. + 2 + + + Adds the specified array of instances to the collection. + An array of instances to append to the existing collection. + + is null. + 2 + + + Adds the specified collection of instances to the collection. + A collection of instances to append to the existing collection. + + is null. + 2 + + + Determines whether a instance exists in the collection. + true if the specified object exists in the collection; otherwise, false. + The object to find in the collection. + 2 + + + Copies the elements of the to an array, starting at the specified index of the array. + An array of instances to add to the collection. + The location at which to add the new instances. + + is null. + + is less than 0. + The number of elements in the is greater than the available space from to the end of the destination array. + 2 + + + Returns the index of a object in the collection. + The zero-based index of the specified , if it is found, in the collection; otherwise, -1. + The object to locate in the collection. + 2 + + + Inserts a object into the collection, at the specified index. + The zero-based index of the location at which the is to be inserted. + The to insert into the collection. + + is null. + + is not a object. + + is less than 0. -or- is greater than the number of items in the collection. + 2 + + + Indexes the collection. + The collection index, which is used to access individual elements of the collection. + An index into the . + + is less than 0.-or- is equal to or greater than the number of items in the collection. + 2 + + + Checks the specified object to determine whether it is a valid type. + The object that will be validated. + + is null. + + is not a object. + + + Removes a object from the collection. + The to remove from the collection. + + is null. + + is not a object.-or- does not exist in the collection. + 2 + + + Defines a structure that holds the raw data for a performance counter. + 2 + + + Initializes a new instance of the structure and sets the property to 0 (zero). + The numeric value associated with the performance counter sample. + An optional, base raw value for the counter, to use only if the sample is based on multiple counters. + The frequency with which the counter is read. + The frequency with which the system reads from the counter. + The raw time stamp. + The raw, high-fidelity time stamp. + A object that indicates the type of the counter for which this sample is a snapshot. + + + Initializes a new instance of the structure and sets the property to the value that is passed in. + The numeric value associated with the performance counter sample. + An optional, base raw value for the counter, to use only if the sample is based on multiple counters. + The frequency with which the counter is read. + The frequency with which the system reads from the counter. + The raw time stamp. + The raw, high-fidelity time stamp. + A object that indicates the type of the counter for which this sample is a snapshot. + The time at which the sample was taken. + + + Gets an optional, base raw value for the counter. + The base raw value, which is used only if the sample is based on multiple counters. + 2 + + + Calculates the performance data of the counter, using a single sample point. This method is generally used for uncalculated performance counter types. + The calculated performance value. + The structure to use as a base point for calculating performance data. + 1 + + + + + + + Calculates the performance data of the counter, using two sample points. This method is generally used for calculated performance counter types, such as averages. + The calculated performance value. + The structure to use as a base point for calculating performance data. + The structure to use as an ending point for calculating performance data. + 1 + + + + + + + Gets the raw counter frequency. + The frequency with which the counter is read. + 2 + + + Gets the counter's time stamp. + The time at which the sample was taken. + 2 + + + Gets the performance counter type. + A object that indicates the type of the counter for which this sample is a snapshot. + 2 + + + Defines an empty, uninitialized performance counter sample of type NumberOfItems32. + 1 + + + Indicates whether the specified structure is equal to the current structure. + true if is equal to the current instance; otherwise, false. + The structure to be compared with this instance. + + + Indicates whether the specified structure is a structure and is identical to the current structure. + true if is a structure and is identical to the current instance; otherwise, false. + The structure to be compared with the current structure. + + + Gets a hash code for the current counter sample. + A hash code for the current counter sample. + + + Returns a value that indicates whether two structures are equal. + true if and are equal; otherwise, false. + A structure. + Another structure to be compared to the structure specified by the parameter. + + + Returns a value that indicates whether two structures are not equal. + true if and are not equal; otherwise, false + A structure. + Another structure to be compared to the structure specified by the parameter. + + + Gets the raw value of the counter. + The numeric value that is associated with the performance counter sample. + 2 + + + Gets the raw system frequency. + The frequency with which the system reads from the counter. + 2 + + + Gets the raw time stamp. + The system time stamp. + 2 + + + Gets the raw, high-fidelity time stamp. + The system time stamp, represented within 0.1 millisecond. + 2 + + + Provides a set of utility functions for interpreting performance counter data. + 2 + + + Computes the calculated value of a single raw counter sample. + A floating-point representation of the performance counter's calculated value. + A that indicates the most recent sample the system has taken. + 1 + + + + + + + Computes the calculated value of two raw counter samples. + A floating-point representation of the performance counter's calculated value. + A that indicates a previous sample the system has taken. + A that indicates the most recent sample the system has taken. + + uses a counter type that is different from . + + counter type has a Performance Data Helper (PDH) error. For more information, see "Checking PDH Interface Return Values" in the Win32 and COM Development section of this documentation. + 1 + + + + + + + Provides data for the and events. + 2 + + + Gets the line of characters that was written to a redirected output stream. + The line that was written by an associated to its redirected or stream. + 2 + + + Represents the method that will handle the event or event of a . + The source of the event. + A that contains the event data. + 2 + + + Provides a set of methods and properties that help debug your code. This class cannot be inherited. + 1 + + + Checks for a condition; if the condition is false, displays a message box that shows the call stack. + The conditional expression to evaluate. If the condition is true, a failure message is not sent and the message box is not displayed. + 1 + + + + + + + Checks for a condition; if the condition is false, outputs a specified message and displays a message box that shows the call stack. + The conditional expression to evaluate. If the condition is true, the specified message is not sent and the message box is not displayed. + The message to send to the collection. + 1 + + + + + + + Checks for a condition; if the condition is false, outputs two specified messages and displays a message box that shows the call stack. + The conditional expression to evaluate. If the condition is true, the specified messages are not sent and the message box is not displayed. + The message to send to the collection. + The detailed message to send to the collection. + 1 + + + + + + + Checks for a condition; if the condition is false, outputs two messages (simple and formatted) and displays a message box that shows the call stack. + The conditional expression to evaluate. If the condition is true, the specified messages are not sent and the message box is not displayed. + The message to send to the collection. + The composite format string (see Remarks) to send to the collection. This message contains text intermixed with zero or more format items, which correspond to objects in the array. + An object array that contains zero or more objects to format. + + + Gets or sets a value indicating whether should be called on the after every write. + true if is called on the after every write; otherwise, false. + 2 + + + + + + + Flushes the output buffer and then calls the Close method on each of the . + 2 + + + + + + + Emits the specified error message. + A message to emit. + 2 + + + + + + + Emits an error message and a detailed error message. + A message to emit. + A detailed message to emit. + 2 + + + + + + + Flushes the output buffer and causes buffered data to write to the collection. + 2 + + + + + + + Increases the current by one. + 2 + + + + + + + Gets or sets the indent level. + The indent level. The default is 0. + 2 + + + + + + + Gets or sets the number of spaces in an indent. + The number of spaces in an indent. The default is four. + 2 + + + + + + + Gets the collection of listeners that is monitoring the debug output. + A representing a collection of type that monitors the debug output. + 2 + + + + + + + Writes a message followed by a line terminator to the trace listeners in the collection. + The message to write. + 1 + + + + + + + Writes a formatted string followed by a line terminator to the trace listeners in the collection. + A composite format string (see Remarks) that contains text intermixed with zero or more format items, which correspond to objects in the array. + An object array containing zero or more objects to format. + + is null. + + is invalid.-or- The number that indicates an argument to format is less than zero, or greater than or equal to the number of specified objects to format. + 1 + + + + + + + Decreases the current by one. + 2 + + + + + + + Writes the value of the object's method to the trace listeners in the collection. + An object whose name is sent to the . + 2 + + + + + + + Writes a category name and the value of the object's method to the trace listeners in the collection. + An object whose name is sent to the . + A category name used to organize the output. + 2 + + + + + + + Writes a message to the trace listeners in the collection. + A message to write. + 2 + + + + + + + Writes a category name and message to the trace listeners in the collection. + A message to write. + A category name used to organize the output. + 2 + + + + + + + Writes the value of the object's method to the trace listeners in the collection if a condition is true. + The conditional expression to evaluate. If the condition is true, the value is written to the trace listeners in the collection. + An object whose name is sent to the . + 2 + + + + + + + Writes a category name and the value of the object's method to the trace listeners in the collection if a condition is true. + The conditional expression to evaluate. If the condition is true, the category name and value are written to the trace listeners in the collection. + An object whose name is sent to the . + A category name used to organize the output. + 2 + + + + + + + Writes a message to the trace listeners in the collection if a condition is true. + The conditional expression to evaluate. If the condition is true, the message is written to the trace listeners in the collection. + A message to write. + 2 + + + + + + + Writes a category name and message to the trace listeners in the collection if a condition is true. + The conditional expression to evaluate. If the condition is true, the category name and message are written to the trace listeners in the collection. + A message to write. + A category name used to organize the output. + 2 + + + + + + + Writes the value of the object's method to the trace listeners in the collection. + An object whose name is sent to the . + 2 + + + + + + + Writes a category name and the value of the object's method to the trace listeners in the collection. + An object whose name is sent to the . + A category name used to organize the output. + 2 + + + + + + + Writes a message followed by a line terminator to the trace listeners in the collection. + A message to write. + 2 + + + + + + + Writes a formatted message followed by a line terminator to the trace listeners in the collection. + A composite format string (see Remarks) that contains text intermixed with zero or more format items, which correspond to objects in the array. + An object array that contains zero or more objects to format. + + + Writes a category name and message to the trace listeners in the collection. + A message to write. + A category name used to organize the output. + 2 + + + + + + + Writes the value of the object's method to the trace listeners in the collection if a condition is true. + The conditional expression to evaluate. If the condition is true, the value is written to the trace listeners in the collection. + An object whose name is sent to the . + 2 + + + + + + + Writes a category name and the value of the object's method to the trace listeners in the collection if a condition is true. + The conditional expression to evaluate. If the condition is true, the category name and value are written to the trace listeners in the collection. + An object whose name is sent to the . + A category name used to organize the output. + 2 + + + + + + + Writes a message to the trace listeners in the collection if a condition is true. + The conditional expression to evaluate. If the condition is true, the message is written to the trace listeners in the collection. + A message to write. + 2 + + + + + + + Writes a category name and message to the trace listeners in the collection if a condition is true. + true to cause a message to be written; otherwise, false. + A message to write. + A category name used to organize the output. + 2 + + + + + + + Provides the default output methods and behavior for tracing. + 1 + + + Initializes a new instance of the class with "Default" as its property value. + + + Gets or sets a value indicating whether the application is running in user-interface mode. + true if user-interface mode is enabled; otherwise, false. + 2 + + + + + + + Emits or displays a message and a stack trace for an assertion that always fails. + The message to emit or display. + 2 + + + + + + + + Emits or displays detailed messages and a stack trace for an assertion that always fails. + The message to emit or display. + The detailed message to emit or display. + 2 + + + + + + + + Gets or sets the name of a log file to write trace or debug messages to. + The name of a log file to write trace or debug messages to. + 2 + + + + + + + Writes the output to the OutputDebugString function and to the method. + The message to write to OutputDebugString and . + 2 + + + + + + + Writes the output to the OutputDebugString function and to the method, followed by a carriage return and line feed (\r\n). + The message to write to OutputDebugString and . + 2 + + + + + + + Directs tracing or debugging output to a text writer, such as a stream writer, or to a stream, such as a file stream. + 1 + + + Initializes a new instance of the class that writes to the specified output stream. + The to receive the output. + + is null. + + + Initializes a new instance of the class that writes to the specified output stream and has the specified name. + The to receive the output. + The name of the new instance of the trace listener. + + is null. + + + Initializes a new instance of the class that writes to the specified text writer. + The to receive the output. + + is null. + + + Initializes a new instance of the class that writes to the specified text writer and has the specified name. + The to receive the output. + The name of the new instance of the trace listener. + + is null. + + + Initializes a new instance of the class that writes to the specified file. + The name of the file to receive the output. + + is null. + + + Initializes a new instance of the class that writes to the specified file and has the specified name. + The name of the file to receive the output. + The name of the new instance of the trace listener. + + is null. + + + Gets or sets the delimiter for the delimited list. + The delimiter for the delimited list. + + is set to null. + + is set to an empty string (""). + 1 + + + Returns the custom configuration file attribute supported by the delimited trace listener. + A string array that contains the single value "delimiter". + + + Writes trace information, a data object, and event information to the output file or stream. + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + A data object to write to the output file or stream. + 1 + + + Writes trace information, an array of data objects, and event information to the output file or stream. + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + An array of data objects to write to the output file or stream. + 1 + + + Writes trace information, a message, and event information to the output file or stream. + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + The trace message to write to the output file or stream. + 1 + + + Writes trace information, a formatted array of objects, and event information to the output file or stream. + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + A format string that contains zero or more format items that correspond to objects in the array. + An array containing zero or more objects to format. + 1 + + + Handles the diagnostics section of configuration files. + 2 + + + Initializes a new instance of the class. + + + Parses the configuration settings for the <system.diagnostics> Element section of configuration files. + A new configuration object, in the form of a . + The object inherited from the parent path + Reserved. Used in ASP.NET to convey the virtual path of the configuration being evaluated. + The root XML node at the section to handle. + Switches could not be found.-or-Assert could not be found.-or-Trace could not be found.-or-Performance counters could not be found. + 2 + + + + + + + Provides data for the event. + 2 + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with the specified event log entry. + An that represents the entry that was written. + + + Gets the event log entry that was written to the log. + An that represents the entry that was written to the event log. + 2 + + + Represents the method that will handle the event of an . + The source of the event. + An that contains the event data. + 2 + + + Represents language-neutral information for an event log entry. + 2 + + + Initializes a new instance of the class using the specified resource identifiers for the localized message and category text of the event entry. + A resource identifier that corresponds to a string defined in the message resource file of the event source. + A resource identifier that corresponds to a string defined in the category resource file of the event source, or zero to specify no category for the event. + The parameter is a negative value or a value larger than .-or- The parameter is a negative value or a value larger than . + + + Initializes a new instance of the class using the specified resource identifiers for the localized message and category text of the event entry and the specified event log entry type. + A resource identifier that corresponds to a string defined in the message resource file of the event source. + A resource identifier that corresponds to a string defined in the category resource file of the event source, or zero to specify no category for the event. + An value that indicates the event type. + + is not a valid value. + + is a negative value or a value larger than .-or- is a negative value or a value larger than . + + + Gets or sets the resource identifier that specifies the application-defined category of the event entry. + A numeric category value or resource identifier that corresponds to a string defined in the category resource file of the event source. The default is zero, which signifies that no category will be displayed for the event entry. + The property is set to a negative value or to a value larger than . + 2 + + + Gets or sets the event type of the event log entry. + An value that indicates the event entry type. The default value is . + The property is not set to a valid value. + 2 + + + Gets or sets the resource identifier that designates the message text of the event entry. + A resource identifier that corresponds to a string defined in the message resource file of the event source. + The property is set to a negative value or to a value larger than . + 2 + + + Provides interaction with Windows event logs. + 1 + + + Initializes a new instance of the class. Does not associate the instance with any log. + + + Initializes a new instance of the class. Associates the instance with a log on the local computer. + The name of the log on the local computer. + The log name is null. + The log name is invalid. + + + Initializes a new instance of the class. Associates the instance with a log on the specified computer. + The name of the log on the specified computer. + The computer on which the log exists. + The log name is null. + The log name is invalid.-or- The computer name is invalid. + + + Initializes a new instance of the class. Associates the instance with a log on the specified computer and creates or assigns the specified source to the . + The name of the log on the specified computer + The computer on which the log exists. + The source of event log entries. + The log name is null. + The log name is invalid.-or- The computer name is invalid. + + + Begins the initialization of an used on a form or used by another component. The initialization occurs at runtime. + + is already initialized. + 2 + + + + + + + Removes all entries from the event log. + The event log was not cleared successfully.-or- The log cannot be opened. A Windows error code is not available. + A value is not specified for the property. Make sure the log name is not an empty string. + The log does not exist. + 2 + + + + + + + Closes the event log and releases read and write handles. + The event log's read handle or write handle was not released successfully. + 1 + + + + + + + Establishes a valid event source for writing localized event messages, using the specified configuration properties for the event source and the corresponding event log. + The configuration properties for the event source and its target event log. + The computer name specified in is not valid.- or - The source name specified in is null.- or - The log name specified in is not valid. Event log names must consist of printable characters and cannot include the characters '*', '?', or '\'.- or - The log name specified in is not valid for user log creation. The Event log names AppEvent, SysEvent, and SecEvent are reserved for system use.- or - The log name matches an existing event source name.- or - The source name specified in results in a registry key path longer than 254 characters.- or - The first 8 characters of the log name specified in are not unique.- or - The source name specified in is already registered.- or - The source name specified in matches an existing event log name. + The registry key for the event log could not be opened. + + is null. + 2 + + + + + + + + Establishes the specified source name as a valid event source for writing entries to a log on the local computer. This method can also create a new custom log on the local computer. + The source name by which the application is registered on the local computer. + The name of the log the source's entries are written to. Possible values include Application, System, or a custom event log. + + is an empty string ("") or null.- or - is not a valid event log name. Event log names must consist of printable characters, and cannot include the characters '*', '?', or '\'.- or - is not valid for user log creation. The event log names AppEvent, SysEvent, and SecEvent are reserved for system use.- or - The log name matches an existing event source name.- or - The source name results in a registry key path longer than 254 characters.- or - The first 8 characters of match the first 8 characters of an existing event log name.- or - The source cannot be registered because it already exists on the local computer.- or - The source name matches an existing event log name. + The registry key for the event log could not be opened on the local computer. + 2 + + + + + + + + Establishes the specified source name as a valid event source for writing entries to a log on the specified computer. This method can also be used to create a new custom log on the specified computer. + The source by which the application is registered on the specified computer. + The name of the log the source's entries are written to. Possible values include Application, System, or a custom event log. If you do not specify a value, defaults to Application. + The name of the computer to register this event source with, or "." for the local computer. + The is not a valid computer name.- or - is an empty string ("") or null.- or - is not a valid event log name. Event log names must consist of printable characters, and cannot include the characters '*', '?', or '\'.- or - is not valid for user log creation. The event log names AppEvent, SysEvent, and SecEvent are reserved for system use.- or - The log name matches an existing event source name.- or - The source name results in a registry key path longer than 254 characters.- or - The first 8 characters of match the first 8 characters of an existing event log name on the specified computer.- or - The source cannot be registered because it already exists on the specified computer.- or - The source name matches an existing event source name. + The registry key for the event log could not be opened on the specified computer. + 2 + + + + + + + + Removes an event log from the local computer. + The name of the log to delete. Possible values include: Application, Security, System, and any custom event logs on the computer. + + is an empty string ("") or null. + The registry key for the event log could not be opened on the local computer.- or - The log does not exist on the local computer. + The event log was not cleared successfully.-or- The log cannot be opened. A Windows error code is not available. + 1 + + + + + + + + + Removes an event log from the specified computer. + The name of the log to delete. Possible values include: Application, Security, System, and any custom event logs on the specified computer. + The name of the computer to delete the log from, or "." for the local computer. + + is an empty string ("") or null. - or - is not a valid computer name. + The registry key for the event log could not be opened on the specified computer.- or - The log does not exist on the specified computer. + The event log was not cleared successfully.-or- The log cannot be opened. A Windows error code is not available. + 1 + + + + + + + + + Removes the event source registration from the event log of the local computer. + The name by which the application is registered in the event log system. + The parameter does not exist in the registry of the local computer.- or - You do not have write access on the registry key for the event log. + 2 + + + + + + + + Removes the application's event source registration from the specified computer. + The name by which the application is registered in the event log system. + The name of the computer to remove the registration from, or "." for the local computer. + The parameter is invalid. - or - The parameter does not exist in the registry of the specified computer.- or - You do not have write access on the registry key for the event log. + + cannot be deleted because in the registry, the parent registry key for does not contain a subkey with the same name. + 2 + + + + + + + + Releases the unmanaged resources used by the , and optionally releases the managed resources. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Gets or sets a value indicating whether the receives event notifications. + true if the receives notification when an entry is written to the log; otherwise, false. + The event log is on a remote computer. + 2 + + + + + + + Ends the initialization of an used on a form or by another component. The initialization occurs at runtime. + 2 + + + + + + + Gets the contents of the event log. + An holding the entries in the event log. Each entry is associated with an instance of the class. + 1 + + + + + + Occurs when an entry is written to an event log on the local computer. + 2 + + + Determines whether the log exists on the local computer. + true if the log exists on the local computer; otherwise, false. + The name of the log to search for. Possible values include: Application, Security, System, other application-specific logs (such as those associated with Active Directory), or any custom log on the computer. + The logName is null or the value is empty. + 1 + + + + + + + Determines whether the log exists on the specified computer. + true if the log exists on the specified computer; otherwise, false. + The log for which to search. Possible values include: Application, Security, System, other application-specific logs (such as those associated with Active Directory), or any custom log on the computer. + The name of the computer on which to search for the log, or "." for the local computer. + The parameter is an invalid format. Make sure you have used proper syntax for the computer on which you are searching.-or- The is null or the value is empty. + 1 + + + + + + + Searches for all event logs on the local computer and creates an array of objects that contain the list. + An array of type that represents the logs on the local computer. + You do not have read access to the registry.-or- There is no event log service on the computer. + 1 + + + + + + + Searches for all event logs on the given computer and creates an array of objects that contain the list. + An array of type that represents the logs on the given computer. + The computer on which to search for event logs. + The parameter is an invalid computer name. + You do not have read access to the registry.-or- There is no event log service on the computer. + 1 + + + + + + + Gets or sets the name of the log to read from or write to. + The name of the log. This can be Application, System, Security, or a custom log name. The default is an empty string (""). + 1 + + + Gets the event log's friendly name. + A name that represents the event log in the system's event viewer. + The specified does not exist in the registry for this computer. + 1 + + + + + + + + Gets the name of the log to which the specified source is registered. + The name of the log associated with the specified source in the registry. + The name of the event source. + The name of the computer on which to look, or "." for the local computer. + 1 + + + + + + + Gets or sets the name of the computer on which to read or write events. + The name of the server on which the event log resides. The default is the local computer ("."). + The computer name is invalid. + 1 + + + + + + + Gets or sets the maximum event log size in kilobytes. + The maximum event log size in kilobytes. The default is 512, indicating a maximum file size of 512 kilobytes. + The specified value is less than 64, or greater than 4194240, or not an even multiple of 64. + The value is not a valid log name.- or -The registry key for the event log could not be opened on the target computer. + 2 + + + + + + + + Gets the number of days to retain entries in the event log. + The number of days that entries in the event log are retained. The default value is 7. + 2 + + + + + + + + Changes the configured behavior for writing new entries when the event log reaches its maximum file size. + The overflow behavior for writing new entries to the event log. + The minimum number of days each event log entry is retained. This parameter is used only if is set to . + + is not a valid value. + + is less than one, or larger than 365. + The value is not a valid log name.- or -The registry key for the event log could not be opened on the target computer. + 2 + + + + + + + Gets the configured behavior for storing new entries when the event log reaches its maximum log file size. + The value that specifies the configured behavior for storing new entries when the event log reaches its maximum log size. The default is . + 2 + + + + + + + + Specifies the localized name of the event log, which is displayed in the server Event Viewer. + The fully specified path to a localized resource file. + The resource identifier that indexes a localized string within the resource file. + The value is not a valid log name.- or -The registry key for the event log could not be opened on the target computer. + + is null. + 2 + + + + + + + Gets or sets the source name to register and use when writing to the event log. + The name registered with the event log as a source of entries. The default is an empty string (""). + The source name results in a registry key path longer than 254 characters. + 1 + + + + + + + Determines whether an event source is registered on the local computer. + true if the event source is registered on the local computer; otherwise, false. + The name of the event source. + + was not found, but some or all of the event logs could not be searched. + 1 + + + + + + + Determines whether an event source is registered on a specified computer. + true if the event source is registered on the given computer; otherwise, false. + The name of the event source. + The name the computer on which to look, or "." for the local computer. + + is an invalid computer name. + + was not found, but some or all of the event logs could not be searched. + 1 + + + + + + + Gets or sets the object used to marshal the event handler calls issued as a result of an entry written event. + The used to marshal event-handler calls issued as a result of an event on the event log. + 2 + + + + + + Writes an information type entry, with the given message text, to the event log. + The string to write to the event log. + The property of the has not been set.-or- The method attempted to register a new event source, but the computer name in is not valid.- or -The source is already registered for a different event log.- or -The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista).- or -The source name results in a registry key path longer than 254 characters. + The registry key for the event log could not be opened. + The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. + 1 + + + + + + + + Writes an error, warning, information, success audit, or failure audit entry with the given message text to the event log. + The string to write to the event log. + One of the values. + The property of the has not been set.-or- The method attempted to register a new event source, but the computer name in is not valid.- or -The source is already registered for a different event log.- or -The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista).- or -The source name results in a registry key path longer than 254 characters. + + is not a valid . + The registry key for the event log could not be opened. + The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. + 1 + + + + + + + + Writes an entry with the given message text and application-defined event identifier to the event log. + The string to write to the event log. + One of the values. + The application-specific identifier for the event. + The property of the has not been set.-or- The method attempted to register a new event source, but the computer name in is not valid.- or -The source is already registered for a different event log.- or - is less than zero or greater than .- or -The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista).- or -The source name results in a registry key path longer than 254 characters. + The registry key for the event log could not be opened. + + is not a valid . + The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. + 1 + + + + + + + + Writes an entry with the given message text, application-defined event identifier, and application-defined category to the event log. + The string to write to the event log. + One of the values. + The application-specific identifier for the event. + The application-specific subcategory associated with the message. + The property of the has not been set.-or- The method attempted to register a new event source, but the computer name in is not valid.- or -The source is already registered for a different event log.- or - is less than zero or greater than .- or -The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista).- or -The source name results in a registry key path longer than 254 characters. + The registry key for the event log could not be opened. + + is not a valid . + The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. + 1 + + + + + + + + Writes an entry with the given message text, application-defined event identifier, and application-defined category to the event log, and appends binary data to the message. + The string to write to the event log. + One of the values. + The application-specific identifier for the event. + The application-specific subcategory associated with the message. + An array of bytes that holds the binary data associated with the entry. + The property of the has not been set.-or- The method attempted to register a new event source, but the computer name in is not valid.- or -The source is already registered for a different event log.- or - is less than zero or greater than .- or -The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista).- or -The source name results in a registry key path longer than 254 characters. + The registry key for the event log could not be opened. + + is not a valid . + The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. + 1 + + + + + + + + Writes an information type entry with the given message text to the event log, using the specified registered event source. + The source by which the application is registered on the specified computer. + The string to write to the event log. + The value is an empty string ("").- or -The value is null.- or -The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista).- or -The source name results in a registry key path longer than 254 characters. + The registry key for the event log could not be opened. + The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. + 1 + + + + + + + + Writes an error, warning, information, success audit, or failure audit entry with the given message text to the event log, using the specified registered event source. + The source by which the application is registered on the specified computer. + The string to write to the event log. + One of the values. + The value is an empty string ("").- or -The value is null.- or -The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista).- or -The source name results in a registry key path longer than 254 characters. + The registry key for the event log could not be opened. + + is not a valid . + The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. + 1 + + + + + + + + Writes an entry with the given message text and application-defined event identifier to the event log, using the specified registered event source. + The source by which the application is registered on the specified computer. + The string to write to the event log. + One of the values. + The application-specific identifier for the event. + The value is an empty string ("").- or -The value is null.- or - is less than zero or greater than .- or -The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista).- or -The source name results in a registry key path longer than 254 characters. + The registry key for the event log could not be opened. + + is not a valid . + The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. + 1 + + + + + + + + Writes an entry with the given message text, application-defined event identifier, and application-defined category to the event log, using the specified registered event source. The can be used by the Event Viewer to filter events in the log. + The source by which the application is registered on the specified computer. + The string to write to the event log. + One of the values. + The application-specific identifier for the event. + The application-specific subcategory associated with the message. + The value is an empty string ("").- or -The value is null.- or - is less than zero or greater than .- or -The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista).- or -The source name results in a registry key path longer than 254 characters. + The registry key for the event log could not be opened. + + is not a valid . + The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. + 1 + + + + + + + + Writes an entry with the given message text, application-defined event identifier, and application-defined category to the event log (using the specified registered event source) and appends binary data to the message. + The source by which the application is registered on the specified computer. + The string to write to the event log. + One of the values. + The application-specific identifier for the event. + The application-specific subcategory associated with the message. + An array of bytes that holds the binary data associated with the entry. + The value is an empty string ("").- or -The value is null.- or - is less than zero or greater than .- or -The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista).- or -The source name results in a registry key path longer than 254 characters. + + is not a valid . + The registry key for the event log could not be opened. + The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. + 1 + + + + + + + + Writes an event log entry with the given event data, message replacement strings, and associated binary data. + An instance that represents a localized event log entry. + An array of bytes that holds the binary data associated with the entry. + An array of strings to merge into the message text of the event log entry. + The property of the has not been set.-or- The method attempted to register a new event source, but the computer name in is not valid.- or -The source is already registered for a different event log.- or - is less than zero or greater than .- or - has more than 256 elements.- or -One of the elements is longer than 32766 bytes.- or -The source name results in a registry key path longer than 254 characters. + + is null. + The registry key for the event log could not be opened. + The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. + 2 + + + + + + + + Writes a localized entry to the event log. + An instance that represents a localized event log entry. + An array of strings to merge into the message text of the event log entry. + The property of the has not been set.-or- The method attempted to register a new event source, but the computer name in is not valid.- or -The source is already registered for a different event log.- or - is less than zero or greater than .- or - has more than 256 elements.- or -One of the elements is longer than 32766 bytes.- or -The source name results in a registry key path longer than 254 characters. + + is null. + The registry key for the event log could not be opened. + The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. + 2 + + + + + + + + Writes an event log entry with the given event data, message replacement strings, and associated binary data, and using the specified registered event source. + The name of the event source registered for the application on the specified computer. + An instance that represents a localized event log entry. + An array of bytes that holds the binary data associated with the entry. + An array of strings to merge into the message text of the event log entry. + The value is an empty string ("").- or -The value is null.- or - is less than zero or greater than .- or - has more than 256 elements.- or -One of the elements is longer than 32766 bytes.- or -The source name results in a registry key path longer than 254 characters. + + is null. + The registry key for the event log could not be opened. + The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. + 1 + + + + + + + + Writes an event log entry with the given event data and message replacement strings, using the specified registered event source. + The name of the event source registered for the application on the specified computer. + An instance that represents a localized event log entry. + An array of strings to merge into the message text of the event log entry. + The value is an empty string ("").- or -The value is null.- or - is less than zero or greater than .- or - has more than 256 elements.- or -One of the elements is longer than 32766 bytes.- or -The source name results in a registry key path longer than 254 characters. + + is null. + The registry key for the event log could not be opened. + The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. + 1 + + + + + + + + Encapsulates a single record in the event log. This class cannot be inherited. + 1 + + + Gets the text associated with the property for this entry. + The application-specific category text. + The space could not be allocated for one of the insertion strings associated with the category. + 1 + + + + + + + + + Gets the category number of the event log entry. + The application-specific category number for this entry. + 1 + + + Gets the binary data associated with the entry. + An array of bytes that holds the binary data associated with the entry. + 1 + + + Gets the event type of this entry. + The event type that is associated with the entry in the event log. + 1 + + + Performs a comparison between two event log entries. + true if the objects are identical; otherwise, false. + The to compare. + 1 + + + Gets the application-specific event identifier for the current event entry. + The application-specific identifier for the event message. + 3 + + + Gets the index of this entry in the event log. + The index of this entry in the event log. + 2 + + + Gets the resource identifier that designates the message text of the event entry. + A resource identifier that corresponds to a string definition in the message resource file of the event source. + 1 + + + Gets the name of the computer on which this entry was generated. + The name of the computer that contains the event log. + 1 + + + Gets the localized message associated with this event entry. + The formatted, localized text for the message. This includes associated replacement strings. + The space could not be allocated for one of the insertion strings associated with the message. + 1 + + + + + + + + + Gets the replacement strings associated with the event log entry. + An array that holds the replacement strings stored in the event entry. + 2 + + + Gets the name of the application that generated this event. + The name registered with the event log as the source of this event. + 1 + + + Populates a with the data needed to serialize the target object. + The to populate with data. + The destination (see ) for this serialization. + + + Gets the local time at which this event was generated. + The local time at which this event was generated. + 2 + + + Gets the local time at which this event was written to the log. + The local time at which this event was written to the log. + 1 + + + Gets the name of the user who is responsible for this event. + The security identifier (SID) that uniquely identifies a user or group. + Account information could not be obtained for the user's SID. + 1 + + + Defines size and enumerators for a collection of instances. + 2 + + + Copies the elements of the to an array of instances, starting at a particular array index. + The one-dimensional array of instances that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in the array at which copying begins. + 2 + + + Gets the number of entries in the event log (that is, the number of elements in the collection). + The number of entries currently in the event log. + 2 + + + + + + + Supports a simple iteration over the object. + An object that can be used to iterate over the collection. + 2 + + + Gets an entry in the event log, based on an index that starts at 0 (zero). + The event log entry at the location that is specified by the parameter. + The zero-based index that is associated with the event log entry. + 2 + + + + + + + Copies the elements of the collection to an , starting at a particular index. + The one-dimensional that is the destination of the elements that are copied from the collection. The must have zero-based indexing. + The zero-based index in at which copying begins. + + + Gets a value that indicates whether access to the is synchronized (thread-safe). + false if access to the collection is not synchronized (thread-safe). + + + Gets an object that can be used to synchronize access to the object. + An object that can be used to synchronize access to the collection. + + + Specifies the event type of an event log entry. + 2 + + + An error event. This indicates a significant problem the user should know about; usually a loss of functionality or data. + + + A failure audit event. This indicates a security event that occurs when an audited access attempt fails; for example, a failed attempt to open a file. + + + An information event. This indicates a significant, successful operation. + + + A success audit event. This indicates a security event that occurs when an audited access attempt is successful; for example, logging on successfully. + + + A warning event. This indicates a problem that is not immediately significant, but that may signify conditions that could cause future problems. + + + Controls code access permissions for event logging. + 2 + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with the specified access levels and the name of the computer to use. + One of the enumeration values that specifies an access level. + The name of the computer on which to read or write events. + + + Initializes a new instance of the class with the specified permission entries. + An array of objects that represent permission entries. The property is set to this value. + + is null. + + + Initializes a new instance of the class with the specified permission state. + One of the enumeration values that specifies the permission state (full access or no access to resources). + The parameter is not a valid value of . + + + Gets the collection of permission entries for this permissions request. + A collection that contains the permission entries for this permissions request. + 2 + + + Defines access levels used by permission classes. + 2 + + + The can create an event source, read existing logs, delete event sources or logs, respond to entries, clear an event log, listen to events, and access a collection of all event logs. + + + The can read existing logs, delete event sources or logs, respond to entries, clear an event log, listen to events, and access a collection of all event logs. Note This member is now obsolete, use instead. + + + The can read existing logs. Note This member is now obsolete, use instead. + + + The can read or write to existing logs, and create event sources and logs. Note This member is now obsolete, use instead. + + + The has no permissions. + + + The can write to existing logs, and create event sources and logs. + + + Allows declaritive permission checks for event logging. + 1 + + + Initializes a new instance of the class. + One of the values. + + + Creates the permission based on the property and the requested access levels that are set through the property on the attribute. + An that represents the created permission. + 2 + + + + + + Gets or sets the name of the computer on which events might be read. + The name of the computer on which events might be read. The default is ".". + The computer name is invalid. + 2 + + + Gets or sets the access levels used in the permissions request. + A bitwise combination of the values. The default is . + 2 + + + Defines the smallest unit of a code access security permission that is set for an . + 2 + + + Initializes a new instance of the class. + A bitwise combination of the values. The property is set to this value. + The name of the computer on which to read or write events. The property is set to this value. + The computer name is invalid. + + + Gets the name of the computer on which to read or write events. + The name of the computer on which to read or write events. + 2 + + + Gets the permission access levels used in the permissions request. + A bitwise combination of the values. + 2 + + + Contains a strongly typed collection of objects. + 2 + + + Adds a specified to this collection. + The zero-based index of the added . + The to add. + 2 + + + Appends a set of specified permission entries to this collection. + An array of type objects that contains the permission entries to add. + + is null. + 2 + + + Appends a set of specified permission entries to this collection. + A that contains the permission entries to add. + + is null. + 2 + + + Determines whether this collection contains a specified . + true if the specified belongs to this collection; otherwise, false. + The to find. + 2 + + + Copies the permission entries from this collection to an array, starting at a particular index of the array. + An array of type that receives this collection's permission entries. + The zero-based index at which to begin copying the permission entries. + 2 + + + Determines the index of a specified permission entry in this collection. + The zero-based index of the specified permission entry, or -1 if the permission entry was not found in the collection. + The permission entry to search for. + 2 + + + Inserts a permission entry into this collection at a specified index. + The zero-based index of the collection at which to insert the permission entry. + The permission entry to insert into this collection. + 2 + + + Gets or sets the object at a specified index. + The that exists at the specified index. + The zero-based index into the collection. + 2 + + + Performs additional custom processes after clearing the contents of the collection. + + + Performs additional custom processes before a new permission entry is inserted into the collection. + The zero-based index at which to insert . + The new value of the permission entry at . + + + Performs additional custom processes when removing a new permission entry from the collection. + The zero-based index at which can be found. + The permission entry to remove from . + + + Performs additional custom processes before setting a value in the collection. + The zero-based index at which can be found. + The value to replace with . + The new value of the permission entry at . + + + Removes a specified permission entry from this collection. + The permission entry to remove. + 2 + + + Provides a simple listener that directs tracing or debugging output to an . + 2 + + + Initializes a new instance of the class without a trace listener. + + + Initializes a new instance of the class using the specified event log. + The event log to write to. + + + Initializes a new instance of the class using the specified source. + The name of an existing event log source. + + + Closes the event log so that it no longer receives tracing or debugging output. + 2 + + + + + + + Gets or sets the event log to write to. + The event log to write to. + 2 + + + Gets or sets the name of this . + The name of this trace listener. + 2 + + + + + + Writes trace information, a data object, and event information to the event log. + An object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output; typically the name of the application that generated the trace event. + One of the enumeration values that specifies the type of event that has caused the trace. + A numeric identifier for the event. The combination of and uniquely identifies an event. + A data object to write to the output file or stream. + + is not specified.-or-The log entry string exceeds 32,766 characters. + + + Writes trace information, an array of data objects, and event information to the event log. + An object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output; typically the name of the application that generated the trace event. + One of the enumeration values that specifies the type of event that has caused the trace. + A numeric identifier for the event. The combination of and uniquely identifies an event. + An array of data objects. + + is not specified.-or-The log entry string exceeds 32,766 characters. + + + Writes trace information, a message, and event information to the event log. + An object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output; typically the name of the application that generated the trace event. + One of the enumeration values that specifies the type of event that has caused the trace. + A numeric identifier for the event. The combination of and uniquely identifies an event. + The trace message. + + is not specified.-or-The log entry string exceeds 32,766 characters. + 1 + + + + + + + + Writes trace information, a formatted array of objects, and event information to the event log. + An object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output; typically the name of the application that generated the trace event. + One of the enumeration values that specifies the type of event that has caused the trace. + A numeric identifier for the event. The combination of and uniquely identifies an event. + A format string that contains zero or more format items that correspond to objects in the array. + An object array containing zero or more objects to format. + + is not specified.-or-The log entry string exceeds 32,766 characters. + 1 + + + + + + + + Writes a message to the event log for this instance. + The message to write. + + exceeds 32,766 characters. + 2 + + + + + + + + Writes a message to the event log for this instance. + The message to write. + + exceeds 32,766 characters. + 2 + + + + + + + + Represents the configuration settings used to create an event log source on the local computer or a remote computer. + 2 + + + Initializes a new instance of the class with a specified event source and event log name. + The name to register with the event log as a source of entries. + The name of the log to which entries from the source are written. + + + Gets or sets the number of categories in the category resource file. + The number of categories in the category resource file. The default value is zero. + The property is set to a negative value or to a value larger than . + 2 + + + Gets or sets the path of the resource file that contains category strings for the source. + The path of the category resource file. The default is an empty string (""). + 2 + + + Gets or sets the name of the event log to which the source writes entries. + The name of the event log. This can be Application, System, or a custom log name. The default value is "Application." + 2 + + + Gets or sets the name of the computer on which to register the event source. + The name of the system on which to register the event source. The default is the local computer ("."). + The computer name is invalid. + 2 + + + Gets or sets the path of the message resource file that contains message formatting strings for the source. + The path of the message resource file. The default is an empty string (""). + 2 + + + Gets or sets the path of the resource file that contains message parameter strings for the source. + The path of the parameter resource file. The default is an empty string (""). + 2 + + + Gets or sets the name to register with the event log as an event source. + The name to register with the event log as a source of entries. The default is an empty string (""). + 2 + + + Indicates whether a listener should trace based on the event type. + + + Initializes a new instance of the class. + A bitwise combination of the values that specifies the event type of the messages to trace. + + + Gets or sets the event type of the messages to trace. + A bitwise combination of the values. + + + Determines whether the trace listener should trace the event. + trueif the trace should be produced; otherwise, false. + A that represents the information cache for the trace event. + The name of the source. + One of the values. + A trace identifier number. + The format to use for writing an array of arguments, or a message to write. + An array of argument objects. + A trace data object. + An array of trace data objects. + + + Provides version information for a physical file on disk. + 2 + + + Gets the comments associated with the file. + The comments associated with the file or null if the file did not contain version information. + 2 + + + Gets the name of the company that produced the file. + The name of the company that produced the file or null if the file did not contain version information. + 2 + + + Gets the build number of the file. + A value representing the build number of the file or null if the file did not contain version information. + 2 + + + Gets the description of the file. + The description of the file or null if the file did not contain version information. + 2 + + + Gets the major part of the version number. + A value representing the major part of the version number or 0 (zero) if the file did not contain version information. + 2 + + + Gets the minor part of the version number of the file. + A value representing the minor part of the version number of the file or 0 (zero) if the file did not contain version information. + 2 + + + Gets the name of the file that this instance of describes. + The name of the file described by this instance of . + 2 + + + Gets the file private part number. + A value representing the file private part number or null if the file did not contain version information. + 2 + + + Gets the file version number. + The version number of the file or null if the file did not contain version information. + 2 + + + Returns a representing the version information associated with the specified file. + A containing information about the file. If the file did not contain version information, the contains only the name of the file requested. + The fully qualified path and name of the file to retrieve the version information for. + The file specified cannot be found. + 1 + + + Gets the internal name of the file, if one exists. + The internal name of the file. If none exists, this property will contain the original name of the file without the extension. + 2 + + + Gets a value that specifies whether the file contains debugging information or is compiled with debugging features enabled. + true if the file contains debugging information or is compiled with debugging features enabled; otherwise, false. + 2 + + + Gets a value that specifies whether the file has been modified and is not identical to the original shipping file of the same version number. + true if the file is patched; otherwise, false. + 2 + + + Gets a value that specifies whether the file is a development version, rather than a commercially released product. + true if the file is prerelease; otherwise, false. + 2 + + + Gets a value that specifies whether the file was built using standard release procedures. + true if the file is a private build; false if the file was built using standard release procedures or if the file did not contain version information. + 2 + + + Gets a value that specifies whether the file is a special build. + true if the file is a special build; otherwise, false. + 2 + + + Gets the default language string for the version info block. + The description string for the Microsoft Language Identifier in the version resource or null if the file did not contain version information. + 2 + + + Gets all copyright notices that apply to the specified file. + The copyright notices that apply to the specified file. + 2 + + + Gets the trademarks and registered trademarks that apply to the file. + The trademarks and registered trademarks that apply to the file or null if the file did not contain version information. + 2 + + + Gets the name the file was created with. + The name the file was created with or null if the file did not contain version information. + 2 + + + Gets information about a private version of the file. + Information about a private version of the file or null if the file did not contain version information. + 2 + + + Gets the build number of the product this file is associated with. + A value representing the build number of the product this file is associated with or null if the file did not contain version information. + 2 + + + Gets the major part of the version number for the product this file is associated with. + A value representing the major part of the product version number or null if the file did not contain version information. + 2 + + + Gets the minor part of the version number for the product the file is associated with. + A value representing the minor part of the product version number or null if the file did not contain version information. + 2 + + + Gets the name of the product this file is distributed with. + The name of the product this file is distributed with or null if the file did not contain version information. + 2 + + + Gets the private part number of the product this file is associated with. + A value representing the private part number of the product this file is associated with or null if the file did not contain version information. + 2 + + + Gets the version of the product this file is distributed with. + The version of the product this file is distributed with or null if the file did not contain version information. + 2 + + + Gets the special build information for the file. + The special build information for the file or null if the file did not contain version information. + 2 + + + Returns a partial list of properties in the and their values. + A list of the following properties in this class and their values: , , , , , , , , , , , ,.If the file did not contain version information, this list will contain only the name of the requested file. Boolean values will be false, and all other entries will be null. + 2 + + + Prepares performance data for the performance DLL the system loads when working with performance counters. + 2 + + + Called by the performance DLL's close performance data function. + 2 + + + Collects the performance data for the performance DLL. + The call index. + A pointer to a Unicode string list with the requested object identifiers. + A pointer to the data buffer. + A pointer to a number of bytes. + When this method returns, contains a to the first byte after the data, -1 for an error, or -2 if a larger buffer is required. This parameter is passed uninitialized. + 2 + + + Holds instance data associated with a performance counter sample. + 2 + + + Initializes a new instance of the InstanceData class, using the specified sample and performance counter instance. + The name of an instance associated with the performance counter. + A taken from the instance specified by the parameter. + + + Gets the instance name associated with this instance data. + The name of an instance associated with the performance counter. + 2 + + + Gets the raw data value associated with the performance counter sample. + The raw value read by the performance counter sample associated with the property. + 2 + + + Gets the performance counter sample that generated this data. + A taken from the instance specified by the property. + 2 + + + Provides a strongly typed collection of objects. + 2 + + + Initializes a new instance of the class, using the specified performance counter (which defines a performance instance). + The name of the counter, which often describes the quantity that is being counted. + The parameter is null. + + + Determines whether a performance instance with a specified name (identified by one of the indexed objects) exists in the collection. + true if the instance exists in the collection; otherwise, false. + The name of the instance to find in this collection. + The parameter is null. + 2 + + + Copies the items in the collection to the specified one-dimensional array at the specified index. + The one-dimensional that is the destination of the values copied from the collection. + The zero-based index value at which to add the new instances. + 2 + + + Gets the name of the performance counter whose instance data you want to get. + The performance counter name. + 2 + + + Gets the instance data associated with this counter. This is typically a set of raw counter values. + An item, by which the object is indexed. + The name of the performance counter category instance, or an empty string ("") if the category contains a single instance. + The parameter is null. + 2 + + + Gets the object and counter registry keys for the objects associated with this instance data. + An that represents a set of object-specific registry keys. + 2 + + + Gets the raw counter values that comprise the instance data for the counter. + An that represents the counter's raw data values. + 2 + + + Provides a strongly typed collection of objects. + 2 + + + Initializes a new instance of the class. + + + Determines whether an instance data collection for the specified counter (identified by one of the indexed objects) exists in the collection. + true if an instance data collection containing the specified counter exists in the collection; otherwise, false. + The name of the performance counter. + The parameter is null. + 2 + + + Copies an array of instances to the collection, at the specified index. + An array of instances (identified by the counters they contain) to add to the collection. + The location at which to add the new instances. + 2 + + + Gets the instance data for the specified counter. + An item, by which the object is indexed. + The name of the performance counter. + The parameter is null. + 2 + + + Gets the object and counter registry keys for the objects associated with this instance data collection. + An that represents a set of object-specific registry keys. + 2 + + + Gets the instance data values that comprise the collection of instances for the counter. + An that represents the counter's instances and their associated data values. + 2 + + + Specifies a description for a property or event. + 1 + + + Initializes a new instance of the class, using the specified description. + The application-defined description text. + + + Gets description text associated with the item monitored. + An application-defined description. + 2 + + + Specifies how to handle entries in an event log that has reached its maximum file size. + 2 + + + Indicates that existing entries are retained when the event log is full and new entries are discarded. + + + Indicates that each new entry overwrites the oldest entry when the event log is full. + + + Indicates that new events overwrite events older than specified by the property value when the event log is full. New events are discarded if the event log is full and there are no events older than specified by the property value. + + + Represents a Windows NT performance counter component. + 1 + + + Initializes a new, read-only instance of the class, without associating the instance with any system or custom performance counter. + The platform is Windows 98 or Windows Millennium Edition (Me), which does not support performance counters. + + + Initializes a new, read-only instance of the class and associates it with the specified system or custom performance counter on the local computer. This constructor requires that the category have a single instance. + The name of the performance counter category (performance object) with which this performance counter is associated. + The name of the performance counter. + + is an empty string ("").-or- is an empty string ("").-or- The category specified does not exist. -or-The category specified is marked as multi-instance and requires the performance counter to be created with an instance name.-or- and have been localized into different languages. + + or is null. + An error occurred when accessing a system API. + The platform is Windows 98 or Windows Millennium Edition (Me), which does not support performance counters. + Code that is executing without administrative privileges attempted to read a performance counter. + + + Initializes a new, read-only or read/write instance of the class and associates it with the specified system or custom performance counter on the local computer. This constructor requires that the category contain a single instance. + The name of the performance counter category (performance object) with which this performance counter is associated. + The name of the performance counter. + true to access the counter in read-only mode (although the counter itself could be read/write); false to access the counter in read/write mode. + The is an empty string ("").-or- The is an empty string ("").-or- The category specified does not exist. (if is true). -or- The category specified is not a .NET Framework custom category (if is false). -or-The category specified is marked as multi-instance and requires the performance counter to be created with an instance name.-or- and have been localized into different languages. + + or is null. + An error occurred when accessing a system API. + The platform is Windows 98 or Windows Millennium Edition (Me), which does not support performance counters. + Code that is executing without administrative privileges attempted to read a performance counter. + + + Initializes a new, read-only instance of the class and associates it with the specified system or custom performance counter and category instance on the local computer. + The name of the performance counter category (performance object) with which this performance counter is associated. + The name of the performance counter. + The name of the performance counter category instance, or an empty string (""), if the category contains a single instance. + + is an empty string ("").-or- is an empty string ("").-or- The category specified is not valid. -or-The category specified is marked as multi-instance and requires the performance counter to be created with an instance name.-or- is longer than 127 characters.-or- and have been localized into different languages. + + or is null. + An error occurred when accessing a system API. + The platform is Windows 98 or Windows Millennium Edition (Me), which does not support performance counters. + Code that is executing without administrative privileges attempted to read a performance counter. + + + Initializes a new, read-only or read/write instance of the class and associates it with the specified system or custom performance counter and category instance on the local computer. + The name of the performance counter category (performance object) with which this performance counter is associated. + The name of the performance counter. + The name of the performance counter category instance, or an empty string (""), if the category contains a single instance. + true to access a counter in read-only mode; false to access a counter in read/write mode. + + is an empty string ("").-or- is an empty string ("").-or- The read/write permission setting requested is invalid for this counter.-or- The category specified does not exist (if is true). -or- The category specified is not a .NET Framework custom category (if is false). -or-The category specified is marked as multi-instance and requires the performance counter to be created with an instance name.-or- is longer than 127 characters.-or- and have been localized into different languages. + + or is null. + An error occurred when accessing a system API. + The platform is Windows 98 or Windows Millennium Edition (Me), which does not support performance counters. + Code that is executing without administrative privileges attempted to read a performance counter. + + + Initializes a new, read-only instance of the class and associates it with the specified system or custom performance counter and category instance, on the specified computer. + The name of the performance counter category (performance object) with which this performance counter is associated. + The name of the performance counter. + The name of the performance counter category instance, or an empty string (""), if the category contains a single instance. + The computer on which the performance counter and its associated category exist. + + is an empty string ("").-or- is an empty string ("").-or- The read/write permission setting requested is invalid for this counter.-or- The counter does not exist on the specified computer. -or-The category specified is marked as multi-instance and requires the performance counter to be created with an instance name.-or- is longer than 127 characters.-or- and have been localized into different languages. + The parameter is not valid. + + or is null. + An error occurred when accessing a system API. + The platform is Windows 98 or Windows Millennium Edition (Me), which does not support performance counters. + Code that is executing without administrative privileges attempted to read a performance counter. + + + Begins the initialization of a instance used on a form or by another component. The initialization occurs at runtime. + 2 + + + Gets or sets the name of the performance counter category for this performance counter. + The name of the performance counter category (performance object) with which this performance counter is associated. + The is null. + The platform is Windows 98 or Windows Millennium Edition (Me), which does not support performance counters. + 1 + + + Closes the performance counter and frees all the resources allocated by this performance counter instance. + 2 + + + Frees the performance counter library shared state allocated by the counters. + 2 + + + + + + + + + + Gets the description for this performance counter. + A description of the item or quantity that this performance counter measures. + The instance is not associated with a performance counter. -or-The property is set to when using global shared memory. + The platform is Windows 98 or Windows Millennium Edition (Me), which does not support performance counters. + Code that is executing without administrative privileges attempted to read a performance counter. + 2 + + + + + + + + + Gets or sets the name of the performance counter that is associated with this instance. + The name of the counter, which generally describes the quantity being counted. This name is displayed in the list of counters of the Performance Counter Manager MMC snap in's Add Counters dialog box. + The is null. + The platform is Windows 98 or Windows Millennium Edition (Me), which does not support performance counters. + 1 + + + Gets the counter type of the associated performance counter. + A that describes both how the counter interacts with a monitoring application and the nature of the values it contains (for example, calculated or uncalculated). + The instance is not correctly associated with a performance counter. -or-The property is set to when using global shared memory. + The platform is Windows 98 or Windows Millennium Edition (Me), which does not support performance counters. + Code that is executing without administrative privileges attempted to read a performance counter. + 1 + + + + + + + + + Decrements the associated performance counter by one through an efficient atomic operation. + The decremented counter value. + The counter is read-only, so the application cannot decrement it.-or- The instance is not correctly associated with a performance counter. -or-The property is set to when using global shared memory. + An error occurred when accessing a system API. + The platform is Windows 98 or Windows Millennium Edition (Me), which does not support performance counters. + 1 + + + + + + + + + Specifies the size, in bytes, of the global memory shared by performance counters. The default size is 524,288 bytes. + 1 + + + Ends the initialization of a instance that is used on a form or by another component. The initialization occurs at runtime. + 2 + + + + + + + + + Increments the associated performance counter by one through an efficient atomic operation. + The incremented counter value. + The counter is read-only, so the application cannot increment it.-or- The instance is not correctly associated with a performance counter. -or-The property is set to when using global shared memory. + An error occurred when accessing a system API. + The platform is Windows 98 or Windows Millennium Edition (Me), which does not support performance counters. + 1 + + + + + + + + + Increments or decrements the value of the associated performance counter by a specified amount through an efficient atomic operation. + The new counter value. + The value to increment by. (A negative value decrements the counter.) + The counter is read-only, so the application cannot increment it.-or- The instance is not correctly associated with a performance counter. -or-The property is set to when using global shared memory. + An error occurred when accessing a system API. + The platform is Windows 98 or Windows Millennium Edition (Me), which does not support performance counters. + 1 + + + + + + + + + Gets or sets the lifetime of a process. + One of the values. The default is . + The value set is not a member of the enumeration. + + is set after the has been initialized. + + + Gets or sets an instance name for this performance counter. + The name of the performance counter category instance, or an empty string (""), if the counter is a single-instance counter. + 1 + + + Gets or sets the computer name for this performance counter + The server on which the performance counter and its associated category reside. + The format is invalid. + The platform is Windows 98 or Windows Millennium Edition (Me), which does not support performance counters. + 1 + + + Obtains a counter sample, and returns the raw, or uncalculated, value for it. + A that represents the next raw value that the system obtains for this counter. + The instance is not correctly associated with a performance counter. -or-The property is set to when using global shared memory. + An error occurred when accessing a system API. + The platform is Windows 98 or Windows Millennium Edition (Me), which does not support performance counters. + Code that is executing without administrative privileges attempted to read a performance counter. + 2 + + + + + + + + + Obtains a counter sample and returns the calculated value for it. + The next calculated value that the system obtains for this counter. + The instance is not correctly associated with a performance counter. + An error occurred when accessing a system API. + The platform is Windows 98 or Windows Millennium Edition (Me), which does not support performance counters. + Code that is executing without administrative privileges attempted to read a performance counter. + 1 + + + + + + + + + Gets or sets the raw, or uncalculated, value of this counter. + The raw value of the counter. + You are trying to set the counter's raw value, but the counter is read-only.-or- The instance is not correctly associated with a performance counter. -or-The property is set to when using global shared memory. + An error occurred when accessing a system API. + The platform is Windows 98 or Windows Millennium Edition (Me), which does not support performance counters. + Code that is executing without administrative privileges attempted to read a performance counter. + 1 + + + + + + + + + Gets or sets a value indicating whether this instance is in read-only mode. + true, if the instance is in read-only mode (even if the counter itself is a custom .NET Framework counter); false if it is in read/write mode. The default is the value set by the constructor. + 1 + + + Deletes the category instance specified by the object property. + This counter is read-only, so any instance that is associated with the category cannot be removed.-or- The instance is not correctly associated with a performance counter. -or-The property is set to when using global shared memory. + An error occurred when accessing a system API. + The platform is Windows 98 or Windows Millennium Edition (Me), which does not support performance counters. + 1 + + + + + + + + + Represents a performance object, which defines a category of performance counters. + 2 + + + Initializes a new instance of the class, leaves the property empty, and sets the property to the local computer. + + + Initializes a new instance of the class, sets the property to the specified value, and sets the property to the local computer. + The name of the performance counter category, or performance object, with which to associate this instance. + The is an empty string (""). + The is null. + + + Initializes a new instance of the class and sets the and properties to the specified values. + The name of the performance counter category, or performance object, with which to associate this instance. + The computer on which the performance counter category and its associated counters exist. + The is an empty string ("").-or- The syntax is invalid. + The is null. + + + Gets the category's help text. + A description of the performance object that this category measures. + The property is null. The category name must be set before getting the category help. + A call to an underlying system API failed. + 2 + + + + + + + Gets or sets the name of the performance object that defines this category. + The name of the performance counter category, or performance object, with which to associate this instance. + The is an empty string (""). + The is null. + 2 + + + + + + Gets the performance counter category type. + One of the values. + 1 + + + Determines whether the specified counter is registered to this category, which is indicated by the and properties. + true if the counter is registered to the category that is specified by the and properties; otherwise, false. + The name of the performance counter to look for. + The is null. + The property has not been set. + A call to an underlying system API failed. + Code that is executing without administrative privileges attempted to read a performance counter. + 2 + + + + + + + + Determines whether the specified counter is registered to the specified category on the local computer. + true, if the counter is registered to the specified category on the local computer; otherwise, false. + The name of the performance counter to look for. + The name of the performance counter category, or performance object, with which the specified performance counter is associated. + The is null.-or- The is null. + The is an empty string (""). + The category name does not exist. + A call to an underlying system API failed. + Code that is executing without administrative privileges attempted to read a performance counter. + 1 + + + + + + + + Determines whether the specified counter is registered to the specified category on a remote computer. + true, if the counter is registered to the specified category on the specified computer; otherwise, false. + The name of the performance counter to look for. + The name of the performance counter category, or performance object, with which the specified performance counter is associated. + The name of the computer on which the performance counter category and its associated counters exist. + The is null.-or- The is null. + The is an empty string ("").-or- The is invalid. + The category name does not exist. + A call to an underlying system API failed. + Code that is executing without administrative privileges attempted to read a performance counter. + 1 + + + + + + + + Registers the custom performance counter category containing the specified counters on the local computer. + A that is associated with the new custom category, or performance object. + The name of the custom performance counter category to create and register with the system. + A description of the custom category. + A that specifies the counters to create as part of the new category. + A counter name that is specified within the collection is null or an empty string ("").-or- A counter that is specified within the collection already exists.-or- The parameter has invalid syntax. It might contain backslash characters ("\") or have length greater than 80 characters. + The parameter is null. + The category already exists on the local computer.-or- The layout of the collection is incorrect for base counters. A counter of type AverageCount64, AverageTimer32, CounterMultiTimer, CounterMultiTimerInverse, CounterMultiTimer100Ns, CounterMultiTimer100NsInverse, RawFraction, SampleFraction or SampleCounter has to be immediately followed by one of the base counter types (AverageBase, MultiBase, RawBase, or SampleBase). + A call to an underlying system API failed. + Code that is executing without administrative privileges attempted to read a performance counter. + 1 + + + + + + + + + Registers the custom performance counter category containing the specified counters on the local computer. + A that is associated with the new custom category, or performance object. + The name of the custom performance counter category to create and register with the system. + A description of the custom category. + One of the values. + A that specifies the counters to create as part of the new category. + A counter name that is specified within the collection is null or an empty string ("").-or- A counter that is specified within the collection already exists.-or- has invalid syntax. It might contain backslash characters ("\") or have length greater than 80 characters. + + is null. -or- is null. + + value is outside of the range of the following values: MultiInstance, SingleInstance, or Unknown. + The category already exists on the local computer.-or- The layout of the collection is incorrect for base counters. A counter of type AverageCount64, AverageTimer32, CounterMultiTimer, CounterMultiTimerInverse, CounterMultiTimer100Ns, CounterMultiTimer100NsInverse, RawFraction, SampleFraction, or SampleCounter must be immediately followed by one of the base counter types (AverageBase, MultiBase, RawBase, or SampleBase). + A call to an underlying system API failed. + Code that is executing without administrative privileges attempted to read a performance counter. + 1 + + + Registers the custom performance counter category containing a single counter of type on the local computer. + A that is associated with the new system category, or performance object. + The name of the custom performance counter category to create and register with the system. + A description of the custom category. + One of the values specifying whether the category is , , or . + The name of a new counter to create as part of the new category. + A description of the counter that is associated with the new custom category. + + is null or is an empty string ("").-or- The counter that is specified by already exists.-or- has invalid syntax. It might contain backslash characters ("\") or have length greater than 80 characters. + The category already exists on the local computer. + + is null. -or- is null. + A call to an underlying system API failed. + Code that is executing without administrative privileges attempted to read a performance counter. + 1 + + + Registers a custom performance counter category containing a single counter of type NumberOfItems32 on the local computer. + A that is associated with the new system category, or performance object. + The name of the custom performance counter category to create and register with the system. + A description of the custom category. + The name of a new counter, of type NumberOfItems32, to create as part of the new category. + A description of the counter that is associated with the new custom category. + + is null or is an empty string ("").-or- The counter that is specified by already exists.-or- has invalid syntax. It might contain backslash characters ("\") or have length greater than 80 characters. + The category already exists on the local computer. + + is null. -or- is null. + A call to an underlying system API failed. + Code that is executing without administrative privileges attempted to read a performance counter. + 1 + + + + + + + + + Removes the category and its associated counters from the local computer. + The name of the custom performance counter category to delete. + The parameter is null. + The parameter has invalid syntax. It might contain backslash characters ("\") or have length greater than 80 characters. + A call to an underlying system API failed. + The category cannot be deleted because it is not a custom category. + Code that is executing without administrative privileges attempted to read a performance counter. + 1 + + + + + + + + Determines whether the category is registered on the local computer. + true if the category is registered; otherwise, false. + The name of the performance counter category to look for. + The parameter is null. + The parameter is an empty string (""). + A call to an underlying system API failed. + Code that is executing without administrative privileges attempted to read a performance counter. + 1 + + + + + + + + Determines whether the category is registered on the specified computer. + true if the category is registered; otherwise, false. + The name of the performance counter category to look for. + The name of the computer to examine for the category. + The parameter is null. + The parameter is an empty string ("").-or- The parameter is invalid. + A call to an underlying system API failed. + The network path cannot be found. + The caller does not have the required permission.-or-Code that is executing without administrative privileges attempted to read a performance counter. + 1 + + + + + + + + Retrieves a list of the performance counter categories that are registered on the local computer. + An array of objects indicating the categories that are registered on the local computer. + A call to an underlying system API failed. + Code that is executing without administrative privileges attempted to read a performance counter. + 1 + + + + + + + + Retrieves a list of the performance counter categories that are registered on the specified computer. + An array of objects indicating the categories that are registered on the specified computer. + The computer to look on. + The parameter is invalid. + A call to an underlying system API failed. + Code that is executing without administrative privileges attempted to read a performance counter. + 1 + + + + + + + + Retrieves a list of the counters in a performance counter category that contains exactly one instance. + An array of objects indicating the counters that are associated with this single-instance performance counter category. + The category is not a single instance. + A call to an underlying system API failed. + The category does not have an associated instance. + Code that is executing without administrative privileges attempted to read a performance counter. + 2 + + + + + + + Retrieves a list of the counters in a performance counter category that contains one or more instances. + An array of objects indicating the counters that are associated with the specified object instance of this performance counter category. + The performance object instance for which to retrieve the list of associated counters. + The parameter is null. + The property for this instance has not been set.-or- The category does not contain the instance that is specified by the parameter. + A call to an underlying system API failed. + Code that is executing without administrative privileges attempted to read a performance counter. + 2 + + + + + + + Retrieves the list of performance object instances that are associated with this category. + An array of strings representing the performance object instance names that are associated with this category or, if the category contains only one performance object instance, a single-entry array that contains an empty string (""). + The property is null. The property might not have been set. -or-The category does not have an associated instance. + A call to an underlying system API failed. + Code that is executing without administrative privileges attempted to read a performance counter. + 2 + + + + + + + + Determines whether the specified performance object instance exists in the category that is identified by this object's property. + true if the category contains the specified performance object instance; otherwise, false. + The performance object instance in this performance counter category to search for. + The property is null. The property might not have been set. + The parameter is null. + A call to an underlying system API failed. + Code that is executing without administrative privileges attempted to read a performance counter. + 2 + + + + + + + + Determines whether a specified category on the local computer contains the specified performance object instance. + true if the category contains the specified performance object instance; otherwise, false. + The performance object instance to search for. + The performance counter category to search. + The parameter is null.-or- The parameter is null. + The parameter is an empty string (""). + A call to an underlying system API failed. + Code that is executing without administrative privileges attempted to read a performance counter. + 1 + + + + + + + + Determines whether a specified category on a specified computer contains the specified performance object instance. + true if the category contains the specified performance object instance; otherwise, false. + The performance object instance to search for. + The performance counter category to search. + The name of the computer on which to look for the category instance pair. + The parameter is null.-or- The parameter is null. + The parameter is an empty string ("").-or- The parameter is invalid. + A call to an underlying system API failed. + Code that is executing without administrative privileges attempted to read a performance counter. + 1 + + + + + + + + Gets or sets the name of the computer on which this category exists. + The name of the computer on which the performance counter category and its associated counters exist. + The syntax is invalid. + 2 + + + + + + Reads all the counter and performance object instance data that is associated with this performance counter category. + An that contains the counter and performance object instance data for the category. + The property is null. The property might not have been set. + A call to an underlying system API failed. + Code that is executing without administrative privileges attempted to read a performance counter. + 2 + + + + + + + Indicates whether the performance counter category can have multiple instances. + 1 + + + The performance counter category can have multiple instances. + + + The performance counter category can have only a single instance. + + + The instance functionality for the performance counter category is unknown. + + + Specifies the lifetime of a performance counter instance. + + + Remove the performance counter instance when no counters are using the process category. + + + Remove the performance counter instance when the process is closed. + + + Prepares performance data for the performance.dll the system loads when working with performance counters. + 2 + + + Initializes a new instance of the class. + + + Called by the perf dll's close performance data + + + Performance data collection routine. Called by the PerfCount perf dll. + The call index. + A pointer to a Unicode string list with the requested Object identifiers. + A pointer to the data buffer. + A pointer to a number of bytes. + When this method returns, contains a with a value of -1. + + + Allows control of code access permissions for . + 2 + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with the specified access levels, the name of the computer to use, and the category associated with the performance counter. + One of the values. + The server on which the performance counter and its associate category reside. + The name of the performance counter category (performance object) with which the performance counter is associated. + + + Initializes a new instance of the class with the specified permission access level entries. + An array of objects. The property is set to this value. + + is null. + + + Initializes a new instance of the class with the specified permission state. + One of the values. + The parameter is not a valid value of . + + + Gets the collection of permission entries for this permissions request. + A that contains the permission entries for this permissions request. + 2 + + + Defines access levels used by permission classes. + 2 + + + The can read, write, and create categories. + + + The can read categories. + + + The can read and write categories. + + + The has no permissions. + + + The can read categories. + + + The can write categories. + + + Allows declaritive performance counter permission checks. + 1 + + + Initializes a new instance of the class. + One of the values. + + + Gets or sets the name of the performance counter category. + The name of the performance counter category (performance object). + The value is null. + 2 + + + Creates the permission based on the requested access levels that are set through the property on the attribute. + An that represents the created permission. + 2 + + + + + + Gets or sets the computer name for the performance counter. + The server on which the category of the performance counter resides. + The format is invalid. + 2 + + + Gets or sets the access levels used in the permissions request. + A bitwise combination of the values. The default is . + 2 + + + Defines the smallest unit of a code access security permission that is set for a . + 2 + + + Initializes a new instance of the class. + A bitwise combination of the values. The property is set to this value. + The server on which the category of the performance counter resides. + The name of the performance counter category (performance object) with which this performance counter is associated. + + is null.-or- is null. + + is not a valid value.-or- is not a valid computer name. + + + Gets the name of the performance counter category (performance object). + The name of the performance counter category (performance object). + 2 + + + Gets the name of the server on which the category of the performance counter resides. + The name of the server on which the category resides. + 2 + + + Gets the permission access level of the entry. + A bitwise combination of the values. + 2 + + + Contains a strongly typed collection of objects. + 2 + + + Adds a specified to this collection. + The zero-based index of the added object. + The object to add. + 2 + + + Appends a set of specified permission entries to this collection. + An array of type objects that contains the permission entries to add. + + is null. + 2 + + + Appends a set of specified permission entries to this collection. + A that contains the permission entries to add. + + is null. + 2 + + + Determines whether this collection contains a specified object. + true if the specified object belongs to this collection; otherwise, false. + The object to find. + 2 + + + Copies the permission entries from this collection to an array, starting at a particular index of the array. + An array of type that receives this collection's permission entries. + The zero-based index at which to begin copying the permission entries. + 2 + + + Determines the index of a specified permission entry in this collection. + The zero-based index of the specified permission entry, or -1 if the permission entry was not found in the collection. + The permission entry for which to search. + 2 + + + Inserts a permission entry into this collection at a specified index. + The zero-based index of the collection at which to insert the permission entry. + The permission entry to insert into this collection. + 2 + + + Gets or sets the object at a specified index. + The object that exists at the specified index. + The zero-based index into the collection. + 2 + + + Performs additional custom processes after clearing the contents of the collection. + + + Performs additional custom processes before a new permission entry is inserted into the collection. + The zero-based index at which to insert . + The new value of the permission entry at . + + + Performs additional custom processes when removing a new permission entry from the collection. + The zero-based index at which can be found. + The permission entry to remove from . + + + Performs additional custom processes before setting a value in the collection. + The zero-based index at which can be found. + The value to replace with . + The new value of the permission entry at . + + + Removes a specified permission entry from this collection. + The permission entry to remove. + 2 + + + Specifies the formula used to calculate the method for a instance. + 2 + + + A base counter that is used in the calculation of time or count averages, such as AverageTimer32 and AverageCount64. Stores the denominator for calculating a counter to present "time per operation" or "count per operation". + + + An average counter that shows how many items are processed, on average, during an operation. Counters of this type display a ratio of the items processed to the number of operations completed. The ratio is calculated by comparing the number of items processed during the last interval to the number of operations completed during the last interval. + + + An average counter that measures the time it takes, on average, to complete a process or operation. Counters of this type display a ratio of the total elapsed time of the sample interval to the number of processes or operations completed during that time. This counter type measures time in ticks of the system clock. + + + A difference counter that shows the change in the measured attribute between the two most recent sample intervals. + + + A difference counter that shows the change in the measured attribute between the two most recent sample intervals. It is the same as the CounterDelta32 counter type except that is uses larger fields to accomodate larger values. + + + A base counter that indicates the number of items sampled. It is used as the denominator in the calculations to get an average among the items sampled when taking timings of multiple, but similar items. Used with CounterMultiTimer, CounterMultiTimerInverse, CounterMultiTimer100Ns, and CounterMultiTimer100NsInverse. + + + A percentage counter that displays the active time of one or more components as a percentage of the total time of the sample interval. Because the numerator records the active time of components operating simultaneously, the resulting percentage can exceed 100 percent. + + + A percentage counter that shows the active time of one or more components as a percentage of the total time of the sample interval. It measures time in 100 nanosecond (ns) units. + + + A percentage counter that shows the active time of one or more components as a percentage of the total time of the sample interval. Counters of this type measure time in 100 nanosecond (ns) units. They derive the active time by measuring the time that the components were not active and subtracting the result from multiplying 100 percent by the number of objects monitored. + + + A percentage counter that shows the active time of one or more components as a percentage of the total time of the sample interval. It derives the active time by measuring the time that the components were not active and subtracting the result from 100 percent by the number of objects monitored. + + + A percentage counter that shows the average time that a component is active as a percentage of the total sample time. + + + A percentage counter that displays the average percentage of active time observed during sample interval. The value of these counters is calculated by monitoring the percentage of time that the service was inactive and then subtracting that value from 100 percent. + + + An average counter designed to monitor the average length of a queue to a resource over time. It shows the difference between the queue lengths observed during the last two sample intervals divided by the duration of the interval. This type of counter is typically used to track the number of items that are queued or waiting. + + + An average counter that monitors the average length of a queue to a resource over time. Counters of this type display the difference between the queue lengths observed during the last two sample intervals, divided by the duration of the interval. This counter type is the same as CountPerTimeInterval32 except that it uses larger fields to accommodate larger values. This type of counter is typically used to track a high-volume or very large number of items that are queued or waiting. + + + A difference timer that shows the total time between when the component or process started and the time when this value is calculated. + + + An instantaneous counter that shows the most recently observed value. Used, for example, to maintain a simple count of items or operations. + + + An instantaneous counter that shows the most recently observed value. Used, for example, to maintain a simple count of a very large number of items or operations. It is the same as NumberOfItems32 except that it uses larger fields to accommodate larger values. + + + An instantaneous counter that shows the most recently observed value in hexadecimal format. Used, for example, to maintain a simple count of items or operations. + + + An instantaneous counter that shows the most recently observed value. Used, for example, to maintain a simple count of a very large number of items or operations. It is the same as NumberOfItemsHEX32 except that it uses larger fields to accommodate larger values. + + + A difference counter that shows the average number of operations completed during each second of the sample interval. Counters of this type measure time in ticks of the system clock. + + + A difference counter that shows the average number of operations completed during each second of the sample interval. Counters of this type measure time in ticks of the system clock. This counter type is the same as the RateOfCountsPerSecond32 type, but it uses larger fields to accommodate larger values to track a high-volume number of items or operations per second, such as a byte-transmission rate. + + + A base counter that stores the denominator of a counter that presents a general arithmetic fraction. Check that this value is greater than zero before using it as the denominator in a RawFraction value calculation. + + + An instantaneous percentage counter that shows the ratio of a subset to its set as a percentage. For example, it compares the number of bytes in use on a disk to the total number of bytes on the disk. Counters of this type display the current percentage only, not an average over time. + + + A base counter that stores the number of sampling interrupts taken and is used as a denominator in the sampling fraction. The sampling fraction is the number of samples that were 1 (or true) for a sample interrupt. Check that this value is greater than zero before using it as the denominator in a calculation of SampleFraction. + + + An average counter that shows the average number of operations completed in one second. When a counter of this type samples the data, each sampling interrupt returns one or zero. The counter data is the number of ones that were sampled. It measures time in units of ticks of the system performance timer. + + + A percentage counter that shows the average ratio of hits to all operations during the last two sample intervals. + + + A percentage counter that shows the active time of a component as a percentage of the total elapsed time of the sample interval. It measures time in units of 100 nanoseconds (ns). Counters of this type are designed to measure the activity of one component at a time. + + + A percentage counter that shows the average percentage of active time observed during the sample interval. + + + Provides access to local and remote processes and enables you to start and stop local system processes. + 1 + + + Initializes a new instance of the class. + + + Gets the base priority of the associated process. + The base priority, which is computed from the of the associated process. + The platform is Windows 98 or Windows Millennium Edition (Windows Me); set the property to false to access this property on Windows 98 and Windows Me. + The process has exited.-or- The process has not started, so there is no process ID. + 2 + + + Begins asynchronous read operations on the redirected stream of the application. + The property is false.- or - An asynchronous read operation is already in progress on the stream.- or - The stream has been used by a synchronous read operation. + 2 + + + Begins asynchronous read operations on the redirected stream of the application. + The property is false.- or - An asynchronous read operation is already in progress on the stream.- or - The stream has been used by a synchronous read operation. + 2 + + + Cancels the asynchronous read operation on the redirected stream of an application. + The stream is not enabled for asynchronous read operations. + 2 + + + Cancels the asynchronous read operation on the redirected stream of an application. + The stream is not enabled for asynchronous read operations. + 2 + + + Frees all the resources that are associated with this component. + 2 + + + Closes a process that has a user interface by sending a close message to its main window. + true if the close message was successfully sent; false if the associated process does not have a main window or if the main window is disabled (for example if a modal dialog is being shown). + The platform is Windows 98 or Windows Millennium Edition (Windows Me); set the property to false to access this property on Windows 98 and Windows Me. + The process has already exited. -or-No process is associated with this object. + 1 + + + Release all resources used by this process. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Gets or sets whether the event should be raised when the process terminates. + true if the event should be raised when the associated process is terminated (through either an exit or a call to ); otherwise, false. The default is false. + 2 + + + Puts a component in state to interact with operating system processes that run in a special mode by enabling the native property SeDebugPrivilege on the current thread. + 2 + + + Occurs when an application writes to its redirected stream. + 2 + + + Gets the value that the associated process specified when it terminated. + The code that the associated process specified when it terminated. + The process has not exited.-or- The process is not valid. + You are trying to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer. + 1 + + + Occurs when a process exits. + 2 + + + Gets the time that the associated process exited. + A that indicates when the associated process was terminated. + The platform is Windows 98 or Windows Millennium Edition (Windows Me), which does not support this property. + You are trying to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer. + 1 + + + Gets a new component and associates it with the currently active process. + A new component associated with the process resource that is running the calling application. + 1 + + + Returns a new component, given the identifier of a process on the local computer. + A component that is associated with the local process resource identified by the parameter. + The system-unique identifier of a process resource. + The process specified by the parameter is not running. The identifier might be expired. + The process was not started by this object. + 1 + + + Returns a new component, given a process identifier and the name of a computer on the network. + A component that is associated with a remote process resource identified by the parameter. + The system-unique identifier of a process resource. + The name of a computer on the network. + The process specified by the parameter is not running. The identifier might be expired.-or- The parameter syntax is invalid. The name might have length zero (0). + The parameter is null. + The process was not started by this object. + 1 + + + Creates a new component for each process resource on the local computer. + An array of type that represents all the process resources running on the local computer. + 1 + + + Creates a new component for each process resource on the specified computer. + An array of type that represents all the process resources running on the specified computer. + The computer from which to read the list of processes. + The parameter syntax is invalid. It might have length zero (0). + The parameter is null. + The operating system platform does not support this operation on remote computers. + There are problems accessing the performance counter API's used to get process information. This exception is specific to Windows NT, Windows 2000, and Windows XP. + A problem occurred accessing an underlying system API. + 1 + + + Creates an array of new components and associates them with all the process resources on the local computer that share the specified process name. + An array of type that represents the process resources running the specified application or file. + The friendly name of the process. + There are problems accessing the performance counter API's used to get process information. This exception is specific to Windows NT, Windows 2000, and Windows XP. + 1 + + + Creates an array of new components and associates them with all the process resources on a remote computer that share the specified process name. + An array of type that represents the process resources running the specified application or file. + The friendly name of the process. + The name of a computer on the network. + The parameter syntax is invalid. It might have length zero (0). + The parameter is null. + The operating system platform does not support this operation on remote computers. + There are problems accessing the performance counter API's used to get process information. This exception is specific to Windows NT, Windows 2000, and Windows XP. + A problem occurred accessing an underlying system API. + 1 + + + Gets the native handle of the associated process. + The handle that the operating system assigned to the associated process when the process was started. The system uses this handle to keep track of process attributes. + The process has not been started or has exited. The property cannot be read because there is no process associated with this instance.-or- The instance has been attached to a running process but you do not have the necessary permissions to get a handle with full access rights. + You are trying to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer. + 1 + + + Gets the number of handles opened by the process. + The number of operating system handles the process has opened. + The platform is Windows 98 or Windows Millennium Edition (Windows Me); set the property to false to access this property on Windows 98 and Windows Me. + 2 + + + Gets a value indicating whether the associated process has been terminated. + true if the operating system process referenced by the component has terminated; otherwise, false. + There is no process associated with the object. + The exit code for the process could not be retrieved. + You are trying to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer. + 1 + + + Gets the unique identifier for the associated process. + The system-generated unique identifier of the process that is referenced by this instance. + The process's property has not been set.-or- There is no process associated with this object. + The platform is Windows 98 or Windows Millennium Edition (Windows Me); set the property to false to access this property on Windows 98 and Windows Me. + 1 + + + Immediately stops the associated process. + The associated process could not be terminated. -or-The process is terminating.-or- The associated process is a Win16 executable. + You are attempting to call for a process that is running on a remote computer. The method is available only for processes running on the local computer. + The process has already exited. -or-There is no process associated with this object. + 1 + + + Takes a component out of the state that lets it interact with operating system processes that run in a special mode. + 2 + + + Gets the name of the computer the associated process is running on. + The name of the computer that the associated process is running on. + There is no process associated with this object. + 1 + + + Gets the main module for the associated process. + The that was used to start the process. + You are trying to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer. + A 32-bit process is trying to access the modules of a 64-bit process. + The platform is Windows 98 or Windows Millennium Edition (Windows Me); set to false to access this property on Windows 98 and Windows Me. + The process is not available.-or- The process has exited. + 1 + + + Gets the window handle of the main window of the associated process. + The system-generated window handle of the main window of the associated process. + The is not defined because the process has exited. + You are trying to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer. + The platform is Windows 98 or Windows Millennium Edition (Windows Me); set to false to access this property on Windows 98 and Windows Me. + 2 + + + Gets the caption of the main window of the process. + The main window title of the process. + The property is not defined because the process has exited. + You are trying to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer. + The platform is Windows 98 or Windows Millennium Edition (Windows Me); set to false to access this property on Windows 98 and Windows Me. + 1 + + + Gets or sets the maximum allowable working set size for the associated process. + The maximum working set size that is allowed in memory for the process, in bytes. + The maximum working set size is invalid. It must be greater than or equal to the minimum working set size. + Working set information cannot be retrieved from the associated process resource.-or- The process identifier or process handle is zero because the process has not been started. + You are trying to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer. + The process is not available.-or- The process has exited. + The platform is Windows 98 or Windows Millennium Edition (Windows Me), which does not support this property. + 2 + + + Gets or sets the minimum allowable working set size for the associated process. + The minimum working set size that is required in memory for the process, in bytes. + The minimum working set size is invalid. It must be less than or equal to the maximum working set size. + Working set information cannot be retrieved from the associated process resource.-or- The process identifier or process handle is zero because the process has not been started. + You are trying to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer. + The process is not available.-or- The process has exited. + The platform is Windows 98 or Windows Millennium Edition (Windows Me), which does not support this property. + 2 + + + Gets the modules that have been loaded by the associated process. + An array of type that represents the modules that have been loaded by the associated process. + You are attempting to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer. + The process is not available. + The platform is Windows 98 or Windows Millennium Edition (Windows Me); set to false to access this property on Windows 98 and Windows Me. + You are attempting to access the property for either the system process or the idle process. These processes do not have modules. + 2 + + + Gets the nonpaged system memory size allocated to this process. + The amount of memory, in bytes, the system has allocated for the associated process that cannot be written to the virtual memory paging file. + The platform is Windows 98 or Windows Millennium Edition (Windows Me), which does not support this property. + 2 + + + Gets the amount of nonpaged system memory allocated for the associated process. + The amount of system memory, in bytes, allocated for the associated process that cannot be written to the virtual memory paging file. + The platform is Windows 98 or Windows Millennium Edition (Windows Me), which does not support this property. + 2 + + + Raises the event. + + + Occurs when an application writes to its redirected stream. + 2 + + + Gets the paged memory size. + The amount of memory, in bytes, allocated by the associated process that can be written to the virtual memory paging file. + The platform is Windows 98 or Windows Millennium Edition (Windows Me), which does not support this property. + 2 + + + Gets the amount of paged memory allocated for the associated process. + The amount of memory, in bytes, allocated in the virtual memory paging file for the associated process. + The platform is Windows 98 or Windows Millennium Edition (Windows Me), which does not support this property. + 2 + + + Gets the paged system memory size. + The amount of memory, in bytes, the system has allocated for the associated process that can be written to the virtual memory paging file. + The platform is Windows 98 or Windows Millennium Edition (Windows Me), which does not support this property. + 2 + + + Gets the amount of pageable system memory allocated for the associated process. + The amount of system memory, in bytes, allocated for the associated process that can be written to the virtual memory paging file. + The platform is Windows 98 or Windows Millennium Edition (Windows Me), which does not support this property. + 2 + + + Gets the peak paged memory size. + The maximum amount of memory, in bytes, allocated by the associated process that could be written to the virtual memory paging file. + The platform is Windows 98 or Windows Millennium Edition (Windows Me), which does not support this property. + 2 + + + Gets the maximum amount of memory in the virtual memory paging file used by the associated process. + The maximum amount of memory, in bytes, allocated in the virtual memory paging file for the associated process since it was started. + The platform is Windows 98 or Windows Millennium Edition (Windows Me), which does not support this property. + 2 + + + Gets the peak virtual memory size. + The maximum amount of virtual memory, in bytes, that the associated process has requested. + The platform is Windows 98 or Windows Millennium Edition (Windows Me), which does not support this property. + 2 + + + Gets the maximum amount of virtual memory used by the associated process. + The maximum amount of virtual memory, in bytes, allocated for the associated process since it was started. + The platform is Windows 98 or Windows Millennium Edition (Windows Me), which does not support this property. + 2 + + + Gets the peak working set size for the associated process. + The maximum amount of physical memory that the associated process has required all at once, in bytes. + The platform is Windows 98 or Windows Millennium Edition (Windows Me), which does not support this property. + 2 + + + Gets the maximum amount of physical memory used by the associated process. + The maximum amount of physical memory, in bytes, allocated for the associated process since it was started. + The platform is Windows 98 or Windows Millennium Edition (Windows Me), which does not support this property. + 2 + + + Gets or sets a value indicating whether the associated process priority should temporarily be boosted by the operating system when the main window has the focus. + true if dynamic boosting of the process priority should take place for a process when it is taken out of the wait state; otherwise, false. The default is false. + Priority boost information could not be retrieved from the associated process resource. + The platform is Windows 98 or Windows Millennium Edition (Windows Me), which does not support this property.-or- The process identifier or process handle is zero. (The process has not been started.) + You are attempting to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer. + The process is not available. + 1 + + + Gets or sets the overall priority category for the associated process. + The priority category for the associated process, from which the of the process is calculated. + Process priority information could not be set or retrieved from the associated process resource.-or- The process identifier or process handle is zero. (The process has not been started.) + You are attempting to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer. + The process is not available. + You have set the to AboveNormal or BelowNormal when using Windows 98 or Windows Millennium Edition (Windows Me). These platforms do not support those values for the priority class. + Priority class cannot be set because it does not use a valid value, as defined in the enumeration. + 1 + + + Gets the private memory size. + The number of bytes allocated by the associated process that cannot be shared with other processes. + The platform is Windows 98 or Windows Millennium Edition (Windows Me), which does not support this property. + 2 + + + Gets the amount of private memory allocated for the associated process. + The amount of memory, in bytes, allocated for the associated process that cannot be shared with other processes. + The platform is Windows 98 or Windows Millennium Edition (Windows Me), which does not support this property. + 2 + + + Gets the privileged processor time for this process. + A that indicates the amount of time that the process has spent running code inside the operating system core. + The platform is Windows 98 or Windows Millennium Edition (Windows Me), which does not support this property. + You are attempting to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer. + 2 + + + Gets the name of the process. + The name that the system uses to identify the process to the user. + The process does not have an identifier, or no process is associated with the .-or- The associated process has exited. + The platform is Windows 98 or Windows Millennium Edition (Windows Me); set to false to access this property on Windows 98 and Windows Me. + The process is not on this computer. + 1 + + + Gets or sets the processors on which the threads in this process can be scheduled to run. + A bitmask representing the processors that the threads in the associated process can run on. The default depends on the number of processors on the computer. The default value is 2 n -1, where n is the number of processors. + + information could not be set or retrieved from the associated process resource.-or- The process identifier or process handle is zero. (The process has not been started.) + You are attempting to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer. + The process was not available.-or- The process has exited. + 2 + + + Discards any information about the associated process that has been cached inside the process component. + 1 + + + Gets a value indicating whether the user interface of the process is responding. + true if the user interface of the associated process is responding to the system; otherwise, false. + The platform is Windows 98 or Windows Millennium Edition (Windows Me); set to false to access this property on Windows 98 and Windows Me. + There is no process associated with this object. + You are attempting to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer. + 1 + + + Gets the Terminal Services session identifier for the associated process. + The Terminal Services session identifier for the associated process. + There is no session associated with this process. + There is no process associated with this session identifier.-or-The associated process is not on this machine. + The property is not supported on Windows 98. + 1 + + + Gets a stream used to read the error output of the application. + A that can be used to read the standard error stream of the application. + The stream has not been defined for redirection; ensure is set to true and is set to false.- or - The stream has been opened for asynchronous read operations with . + 1 + + + Gets a stream used to write the input of the application. + A that can be used to write the standard input stream of the application. + The stream has not been defined because is set to false. + 1 + + + Gets a stream used to read the output of the application. + A that can be used to read the standard output stream of the application. + The stream has not been defined for redirection; ensure is set to true and is set to false.- or - The stream has been opened for asynchronous read operations with . + 1 + + + Starts (or reuses) the process resource that is specified by the property of this component and associates it with the component. + true if a process resource is started; false if no new process resource is started (for example, if an existing process is reused). + No file name was specified in the component's .-or- The member of the property is true while , , or is true. + There was an error in opening the associated file. + The process object has already been disposed. + 1 + + + Starts the process resource that is specified by the parameter containing process start information (for example, the file name of the process to start) and associates the resource with a new component. + A new component that is associated with the process resource, or null if no process resource is started (for example, if an existing process is reused). + The that contains the information that is used to start the process, including the file name and any command-line arguments. + No file name was specified in the parameter's property.-or- The property of the parameter is true and the , , or property is also true.-or-The property of the parameter is true and the property is not null or empty or the property is not null. + The parameter is null. + The process object has already been disposed. + The file specified in the parameter's property could not be found. + An error occurred when opening the associated file. -or-The sum of the length of the arguments and the length of the full path to the process exceeds 2080. The error message associated with this exception can be one of the following: "The data area passed to a system call is too small." or "Access is denied." + 1 + + + Starts a process resource by specifying the name of a document or application file and associates the resource with a new component. + A new component that is associated with the process resource, or null, if no process resource is started (for example, if an existing process is reused). + The name of a document or application file to run in the process. + An error occurred when opening the associated file. + The process object has already been disposed. + The PATH environment variable has a string containing quotes. + 1 + + + Starts a process resource by specifying the name of an application and a set of command-line arguments, and associates the resource with a new component. + A new component that is associated with the process, or null, if no process resource is started (for example, if an existing process is reused). + The name of an application file to run in the process. + Command-line arguments to pass when starting the process. + The or parameter is null. + An error occurred when opening the associated file. -or-The sum of the length of the arguments and the length of the full path to the process exceeds 2080. The error message associated with this exception can be one of the following: "The data area passed to a system call is too small." or "Access is denied." + The process object has already been disposed. + The PATH environment variable has a string containing quotes. + 1 + + + Starts a process resource by specifying the name of an application, a user name, a password, and a domain and associates the resource with a new component. + A new component that is associated with the process resource, or null if no process resource is started (for example, if an existing process is reused). + The name of an application file to run in the process. + The user name to use when starting the process. + A that contains the password to use when starting the process. + The domain to use when starting the process. + No file name was specified. + + is not an executable (.exe) file. + There was an error in opening the associated file. + The process object has already been disposed. + 1 + + + Starts a process resource by specifying the name of an application, a set of command-line arguments, a user name, a password, and a domain and associates the resource with a new component. + A new component that is associated with the process resource, or null if no process resource is started (for example, if an existing process is reused). + The name of an application file to run in the process. + Command-line arguments to pass when starting the process. + The user name to use when starting the process. + A that contains the password to use when starting the process. + The domain to use when starting the process. + No file name was specified. + + is not an executable (.exe) file. + An error occurred when opening the associated file. -or-The sum of the length of the arguments and the length of the full path to the associated file exceeds 2080. The error message associated with this exception can be one of the following: "The data area passed to a system call is too small." or "Access is denied." + The process object has already been disposed. + 1 + + + Gets or sets the properties to pass to the method of the . + The that represents the data with which to start the process. These arguments include the name of the executable file or document used to start the process. + The value that specifies the is null. + 1 + + + Gets the time that the associated process was started. + An object that indicates when the process started. An exception is thrown if the process is not running. + The platform is Windows 98 or Windows Millennium Edition (Windows Me), which does not support this property. + You are attempting to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer. + The process has exited.-or-The process has not been started. + An error occurred in the call to the Windows function. + 1 + + + Gets or sets the object used to marshal the event handler calls that are issued as a result of a process exit event. + The used to marshal event handler calls that are issued as a result of an event on the process. + 2 + + + Gets the set of threads that are running in the associated process. + An array of type representing the operating system threads currently running in the associated process. + The process does not have an , or no process is associated with the instance.-or- The associated process has exited. + The platform is Windows 98 or Windows Millennium Edition (Windows Me); set to false to access this property on Windows 98 and Windows Me. + 1 + + + Formats the process's name as a string, combined with the parent component type, if applicable. + The , combined with the base component's return value. + + is not supported on Windows 98. + 2 + + + Gets the total processor time for this process. + A that indicates the amount of time that the associated process has spent utilizing the CPU. This value is the sum of the and the . + The platform is Windows 98 or Windows Millennium Edition (Windows Me), which does not support this property. + You are attempting to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer. + 2 + + + Gets the user processor time for this process. + A that indicates the amount of time that the associated process has spent running code inside the application portion of the process (not inside the operating system core). + The platform is Windows 98 or Windows Millennium Edition (Windows Me), which does not support this property. + You are attempting to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer. + 2 + + + Gets the size of the process's virtual memory. + The amount of virtual memory, in bytes, that the associated process has requested. + The platform is Windows 98 or Windows Millennium Edition (Windows Me), which does not support this property. + 2 + + + Gets the amount of the virtual memory allocated for the associated process. + The amount of virtual memory, in bytes, allocated for the associated process. + The platform is Windows 98 or Windows Millennium Edition (Windows Me), which does not support this property. + 2 + + + Instructs the component to wait indefinitely for the associated process to exit. + The wait setting could not be accessed. + No process has been set, and a from which the property can be determined does not exist.-or- There is no process associated with this object.-or- You are attempting to call for a process that is running on a remote computer. This method is available only for processes that are running on the local computer. + 1 + + + Instructs the component to wait the specified number of milliseconds for the associated process to exit. + true if the associated process has exited; otherwise, false. + The amount of time, in milliseconds, to wait for the associated process to exit. The maximum is the largest possible value of a 32-bit integer, which represents infinity to the operating system. + The wait setting could not be accessed. + No process has been set, and a from which the property can be determined does not exist.-or- There is no process associated with this object.-or- You are attempting to call for a process that is running on a remote computer. This method is available only for processes that are running on the local computer. + 1 + + + Causes the component to wait indefinitely for the associated process to enter an idle state. This overload applies only to processes with a user interface and, therefore, a message loop. + true if the associated process has reached an idle state. + The process does not have a graphical interface.-or-An unknown error occurred. The process failed to enter an idle state.-or-The process has already exited. -or-No process is associated with this object. + 1 + + + Causes the component to wait the specified number of milliseconds for the associated process to enter an idle state. This overload applies only to processes with a user interface and, therefore, a message loop. + true if the associated process has reached an idle state; otherwise, false. + A value of 1 to that specifies the amount of time, in milliseconds, to wait for the associated process to become idle. A value of 0 specifies an immediate return, and a value of -1 specifies an infinite wait. + The process does not have a graphical interface.-or-An unknown error occurred. The process failed to enter an idle state.-or-The process has already exited. -or-No process is associated with this object. + 1 + + + Gets the associated process's physical memory usage. + The total amount of physical memory the associated process is using, in bytes. + The platform is Windows 98 or Windows Millennium Edition (Windows Me), which does not support this property. + 2 + + + Gets the amount of physical memory allocated for the associated process. + The amount of physical memory, in bytes, allocated for the associated process. + The platform is Windows 98 or Windows Millennium Edition (Windows Me), which does not support this property. + 2 + + + Represents a.dll or .exe file that is loaded into a particular process. + 2 + + + Gets the memory address where the module was loaded. + The load address of the module. + 2 + + + Gets the memory address for the function that runs when the system loads and runs the module. + The entry point of the module. + 2 + + + + + + Gets the full path to the module. + The fully qualified path that defines the location of the module. + 2 + + + Gets version information about the module. + A that contains the module's version information. + 2 + + + + + + Gets the amount of memory that is required to load the module. + The size, in bytes, of the memory that the module occupies. + 2 + + + Gets the name of the process module. + The name of the module. + 2 + + + Converts the name of the module to a string. + The value of the property. + 2 + + + Provides a strongly typed collection of objects. + 2 + + + Initializes a new instance of the class, with no associated instances. + + + Initializes a new instance of the class, using the specified array of instances. + An array of instances with which to initialize this instance. + + + Determines whether the specified process module exists in the collection. + true if the module exists in the collection; otherwise, false. + A instance that indicates the module to find in this collection. + 2 + + + Copies an array of instances to the collection, at the specified index. + An array of instances to add to the collection. + The location at which to add the new instances. + 2 + + + Provides the location of a specified module within the collection. + The zero-based index that defines the location of the module within the . + The whose index is retrieved. + 2 + + + Gets an index for iterating over the set of process modules. + A that indexes the modules in the collection + The zero-based index value of the module in the collection. + 2 + + + Indicates the priority that the system associates with a process. This value, together with the priority value of each thread of the process, determines each thread's base priority level. + 2 + + + Specifies that the process has priority above but below . + + + Specifies that the process has priority above but below . + + + Specifies that the process performs time-critical tasks that must be executed immediately, such as the Task List dialog, which must respond quickly when called by the user, regardless of the load on the operating system. The threads of the process preempt the threads of normal or idle priority class processes. + + + Specifies that the threads of this process run only when the system is idle, such as a screen saver. The threads of the process are preempted by the threads of any process running in a higher priority class. + + + Specifies that the process has no special scheduling needs. + + + Specifies that the process has the highest possible priority. + + + Specifies a set of values that are used when you start a process. + 2 + + + Initializes a new instance of the class without specifying a file name with which to start the process. + + + Initializes a new instance of the class and specifies a file name such as an application or document with which to start the process. + An application or document with which to start a process. + + + Initializes a new instance of the class, specifies an application file name with which to start the process, and specifies a set of command-line arguments to pass to the application. + An application with which to start a process. + Command-line arguments to pass to the application when the process starts. + + + Gets or sets the set of command-line arguments to use when starting the application. + File type–specific arguments that the system can associate with the application specified in the property. The default is an empty string (""). On Windows Vista and earlier versions of the Windows operating system, the length of the arguments added to the length of the full path to the process must be less than 2080. On Windows 7 and later versions, the length must be less than 32699. + 1 + + + Gets or sets a value indicating whether to start the process in a new window. + true if the process should be started without creating a new window to contain it; otherwise, false. The default is false. + 2 + + + Gets or sets a value that identifies the domain to use when starting the process. + The Active Directory domain to use when starting the process. The domain property is primarily of interest to users within enterprise environments that use Active Directory. + 1 + + + Gets search paths for files, directories for temporary files, application-specific options, and other similar information. + A string dictionary that provides environment variables that apply to this process and child processes. The default is null. + 1 + + + Gets or sets a value indicating whether an error dialog box is displayed to the user if the process cannot be started. + true if an error dialog box should be displayed on the screen if the process cannot be started; otherwise, false. The default is false. + 2 + + + Gets or sets the window handle to use when an error dialog box is shown for a process that cannot be started. + A pointer to the handle of the error dialog box that results from a process start failure. + 2 + + + Gets or sets the application or document to start. + The name of the application to start, or the name of a document of a file type that is associated with an application and that has a default open action available to it. The default is an empty string (""). + 1 + + + Gets or sets a value that indicates whether the Windows user profile is to be loaded from the registry. + true if the Windows user profile should be loaded; otherwise, false. The default is false. + 1 + + + Gets or sets a secure string that contains the user password to use when starting the process. + The user password to use when starting the process. + 1 + + + Gets or sets a value that indicates whether the error output of an application is written to the stream. + true if error output should be written to ; otherwise, false. The default is false. + 2 + + + Gets or sets a value indicating whether the input for an application is read from the stream. + true if input should be read from ; otherwise, false. The default is false. + 2 + + + Gets or sets a value that indicates whether the output of an application is written to the stream. + true if output should be written to ; otherwise, false. The default is false. + 2 + + + Gets or sets the preferred encoding for error output. + An object that represents the preferred encoding for error output. The default is null. + + + Gets or sets the preferred encoding for standard output. + An object that represents the preferred encoding for standard output. The default is null. + + + Gets or sets the user name to be used when starting the process. + The user name to use when starting the process. + 1 + + + Gets or sets a value indicating whether to use the operating system shell to start the process. + true if the shell should be used when starting the process; false if the process should be created directly from the executable file. The default is true. + 2 + + + Gets or sets the verb to use when opening the application or document specified by the property. + The action to take with the file that the process opens. The default is an empty string (""), which signifies no action. + 2 + + + Gets the set of verbs associated with the type of file specified by the property. + The actions that the system can apply to the file indicated by the property. + 2 + + + Gets or sets the window state to use when the process is started. + One of the enumeration values that indicates whether the process is started in a window that is maximized, minimized, normal (neither maximized nor minimized), or not visible. The default is Normal. + The window style is not one of the enumeration members. + 2 + + + When the property is false, gets or sets the working directory for the process to be started. When is true, gets or sets the directory that contains the process to be started. + When is true, the fully qualified name of the directory that contains the process to be started. When the property is false, the working directory for the process to be started. The default is an empty string (""). + 1 + + + Represents an operating system process thread. + 2 + + + Gets the base priority of the thread. + The base priority of the thread, which the operating system computes by combining the process priority class with the priority level of the associated thread. + 2 + + + Gets the current priority of the thread. + The current priority of the thread, which may deviate from the base priority based on how the operating system is scheduling the thread. The priority may be temporarily boosted for an active thread. + 2 + + + Gets the unique identifier of the thread. + The unique identifier associated with a specific thread. + 2 + + + + + + Sets the preferred processor for this thread to run on. + The preferred processor for the thread, used when the system schedules threads, to determine which processor to run the thread on. + The system could not set the thread to start on the specified processor. + The platform is Windows 98 or Windows Millennium Edition. + The process is on a remote computer. + 2 + + + + + + Gets or sets a value indicating whether the operating system should temporarily boost the priority of the associated thread whenever the main window of the thread's process receives the focus. + true to boost the thread's priority when the user interacts with the process's interface; otherwise, false. The default is false. + The priority boost information could not be retrieved.-or-The priority boost information could not be set. + The platform is Windows 98 or Windows Millennium Edition. + The process is on a remote computer. + 2 + + + + + + Gets or sets the priority level of the thread. + One of the values, specifying a range that bounds the thread's priority. + The thread priority level information could not be retrieved. -or-The thread priority level could not be set. + The platform is Windows 98 or Windows Millennium Edition. + The process is on a remote computer. + 2 + + + + + + Gets the amount of time that the thread has spent running code inside the operating system core. + A indicating the amount of time that the thread has spent running code inside the operating system core. + The thread time could not be retrieved. + The platform is Windows 98 or Windows Millennium Edition. + The process is on a remote computer. + 2 + + + + + + Sets the processors on which the associated thread can run. + An that points to a set of bits, each of which represents a processor that the thread can run on. + The processor affinity could not be set. + The platform is Windows 98 or Windows Millennium Edition. + The process is on a remote computer. + 2 + + + + + + Resets the ideal processor for this thread to indicate that there is no single ideal processor. In other words, so that any processor is ideal. + The ideal processor could not be reset. + The platform is Windows 98 or Windows Millennium Edition. + The process is on a remote computer. + 2 + + + + + + Gets the memory address of the function that the operating system called that started this thread. + The thread's starting address, which points to the application-defined function that the thread executes. + The platform is Windows 98 or Windows Millennium Edition. + The process is on a remote computer. + 2 + + + + + + Gets the time that the operating system started the thread. + A representing the time that was on the system when the operating system started the thread. + The thread time could not be retrieved. + The platform is Windows 98 or Windows Millennium Edition. + The process is on a remote computer. + 2 + + + + + + Gets the current state of this thread. + A that indicates the thread's execution, for example, running, waiting, or terminated. + The platform is Windows 98 or Windows Millennium Edition. + The process is on a remote computer. + 2 + + + + + + Gets the total amount of time that this thread has spent using the processor. + A that indicates the amount of time that the thread has had control of the processor. + The thread time could not be retrieved. + The platform is Windows 98 or Windows Millennium Edition. + The process is on a remote computer. + 2 + + + + + + Gets the amount of time that the associated thread has spent running code inside the application. + A indicating the amount of time that the thread has spent running code inside the application, as opposed to inside the operating system core. + The thread time could not be retrieved. + The platform is Windows 98 or Windows Millennium Edition. + The process is on a remote computer. + 2 + + + + + + Gets the reason that the thread is waiting. + A representing the reason that the thread is in the wait state. + The thread is not in the wait state. + The platform is Windows 98 or Windows Millennium Edition. + The process is on a remote computer. + 2 + + + + + + Provides a strongly typed collection of objects. + 2 + + + Initializes a new instance of the class, with no associated instances. + + + Initializes a new instance of the class, using the specified array of instances. + An array of instances with which to initialize this instance. + + + Appends a process thread to the collection. + The zero-based index of the thread in the collection. + The thread to add to the collection. + 2 + + + Determines whether the specified process thread exists in the collection. + true if the thread exists in the collection; otherwise, false. + A instance that indicates the thread to find in this collection. + 2 + + + Copies an array of instances to the collection, at the specified index. + An array of instances to add to the collection. + The location at which to add the new instances. + 2 + + + Provides the location of a specified thread within the collection. + The zero-based index that defines the location of the thread within the . + The whose index is retrieved. + 2 + + + Inserts a process thread at the specified location in the collection. + The zero-based index indicating the location at which to insert the thread. + The thread to insert into the collection. + 2 + + + Gets an index for iterating over the set of process threads. + A that indexes the threads in the collection. + The zero-based index value of the thread in the collection. + 2 + + + Deletes a process thread from the collection. + The thread to remove from the collection. + 2 + + + Specified how a new window should appear when the system starts a process. + 2 + + + The hidden window style. A window can be either visible or hidden. The system displays a hidden window by not drawing it. If a window is hidden, it is effectively disabled. A hidden window can process messages from the system or from other windows, but it cannot process input from the user or display output. Frequently, an application may keep a new window hidden while it customizes the window's appearance, and then make the window style Normal. To use , the property must be false. + + + The maximized window style. By default, the system enlarges a maximized window so that it fills the screen or, in the case of a child window, the parent window's client area. If the window has a title bar, the system automatically moves it to the top of the screen or to the top of the parent window's client area. Also, the system disables the window's sizing border and the window-positioning capability of the title bar so that the user cannot move the window by dragging the title bar. + + + The minimized window style. By default, the system reduces a minimized window to the size of its taskbar button and moves the minimized window to the taskbar. + + + The normal, visible window style. The system displays a window with Normal style on the screen, in a default location. If a window is visible, the user can supply input to the window and view the window's output. Frequently, an application may initialize a new window to the Hidden style while it customizes the window's appearance, and then make the window style Normal. + + + Indicates whether a listener should trace a message based on the source of a trace. + 2 + + + Initializes a new instance of the class, specifying the name of the trace source. + The name of the trace source. + + + Determines whether the trace listener should trace the event. + true if the trace should be produced; otherwise, false. + An object that represents the information cache for the trace event. + The name of the source. + One of the enumeration values that identifies the event type. + A trace identifier number. + The format to use for writing an array of arguments or a message to write. + An array of argument objects. + A trace data object. + An array of trace data objects. + + is null. + 2 + + + Gets or sets the name of the trace source. + The name of the trace source. + The value is null. + 2 + + + Specifies the levels of trace messages filtered by the source switch and event type filter. + 2 + + + Allows the , , , , and events through. + + + Allows all events through. + + + Allows only events through. + + + Allows and events through. + + + Allows , , , and events through. + + + Does not allow any events through. + + + Allows , , , , and events through. + + + Allows , , and events through. + + + Provides a multilevel switch to control tracing and debug output without recompiling your code. + 2 + + + Initializes a new instance of the class, specifying the name of the source. + The name of the source. + + + Initializes a new instance of the class, specifying the display name and the default value for the source switch. + The name of the source switch. + The default value for the switch. + + + Gets or sets the level of the switch. + One of the values that represents the event level of the switch. + 2 + + + + + + + Invoked when the value of the property changes. + The new value of is not one of the values. + + + Determines if trace listeners should be called, based on the trace event type. + True if the trace listeners should be called; otherwise, false. + One of the values. + 2 + + + + + + + Provides a set of methods and properties that you can use to accurately measure elapsed time. + 1 + + + Initializes a new instance of the class. + + + Gets the total elapsed time measured by the current instance. + A read-only representing the total elapsed time measured by the current instance. + 1 + + + Gets the total elapsed time measured by the current instance, in milliseconds. + A read-only long integer representing the total number of milliseconds measured by the current instance. + 1 + + + Gets the total elapsed time measured by the current instance, in timer ticks. + A read-only long integer representing the total number of timer ticks measured by the current instance. + 1 + + + Gets the frequency of the timer as the number of ticks per second. This field is read-only. + 1 + + + Gets the current number of ticks in the timer mechanism. + A long integer representing the tick counter value of the underlying timer mechanism. + 1 + + + Indicates whether the timer is based on a high-resolution performance counter. This field is read-only. + 1 + + + Gets a value indicating whether the timer is running. + true if the instance is currently running and measuring elapsed time for an interval; otherwise, false. + 1 + + + Stops time interval measurement and resets the elapsed time to zero. + 1 + + + Stops time interval measurement, resets the elapsed time to zero, and starts measuring elapsed time. + + + Starts, or resumes, measuring elapsed time for an interval. + 1 + + + Initializes a new instance, sets the elapsed time property to zero, and starts measuring elapsed time. + A that has just begun measuring elapsed time. + 1 + + + Stops measuring elapsed time for an interval. + 1 + + + Provides an abstract base class to create new debugging and tracing switches. + 2 + + + Initializes a new instance of the class. + The name of the switch. + The description for the switch. + + + Initializes a new instance of the class, specifying the display name, description, and default value for the switch. + The name of the switch. + The description of the switch. + The default value for the switch. + + + Gets the custom switch attributes defined in the application configuration file. + A containing the case-insensitive custom attributes for the trace switch. + 1 + + + Gets a description of the switch. + The description of the switch. The default value is an empty string (""). + 2 + + + Gets a name used to identify the switch. + The name used to identify the switch. The default value is an empty string (""). + 2 + + + Gets the custom attributes supported by the switch. + A string array that contains the names of the custom attributes supported by the switch, or null if there no custom attributes are supported. + + + Invoked when the property is changed. + + + Invoked when the property is changed. + + + Gets or sets the current setting for this switch. + The current setting for this switch. The default is zero. + + + Gets or sets the value of the switch. + A string representing the value of the switch. + The value is null.-or-The value does not consist solely of an optional negative sign followed by a sequence of digits ranging from 0 to 9.-or-The value represents a number less than or greater than . + + + Identifies a switch used in an assembly, class, or member. + 1 + + + Initializes a new instance of the class, specifying the name and the type of the switch. + The display name of the switch. + The type of the switch. + + + Returns all switch attributes for the specified assembly. + An array that contains all the switch attributes for the assembly. + The assembly to check for switch attributes. + + is null. + 1 + + + Gets or sets the description of the switch. + The description of the switch. + 2 + + + Gets or sets the display name of the switch. + The display name of the switch. + + is set to null. + + is set to an empty string. + 2 + + + Gets or sets the type of the switch. + The type of the switch. + + is set to null. + 2 + + + Identifies the level type for a switch. + 1 + + + Initializes a new instance of the class, specifying the type that determines whether a trace should be written. + The that determines whether a trace should be written. + + + Gets or sets the type that determines whether a trace should be written. + The that determines whether a trace should be written. + The set operation failed because the value is null. + 2 + + + Directs tracing or debugging output to a or to a , such as . + 1 + + + Initializes a new instance of the class with as the output recipient. + + + Initializes a new instance of the class, using the stream as the recipient of the debugging and tracing output. + A that represents the stream the writes to. + The stream is null. + + + Initializes a new instance of the class with the specified name, using the stream as the recipient of the debugging and tracing output. + A that represents the stream the writes to. + The name of the new instance. + The stream is null. + + + Initializes a new instance of the class using the specified writer as recipient of the tracing or debugging output. + A that receives the output from the . + The writer is null. + + + Initializes a new instance of the class with the specified name, using the specified writer as recipient of the tracing or debugging output. + A that receives the output from the . + The name of the new instance. + The writer is null. + + + Initializes a new instance of the class, using the file as the recipient of the debugging and tracing output. + The name of the file the writes to. + The file is null. + + + Initializes a new instance of the class with the specified name, using the file as the recipient of the debugging and tracing output. + The name of the file the writes to. + The name of the new instance. + The stream is null. + + + Closes the so that it no longer receives tracing or debugging output. + 1 + + + Disposes this object. + true to release managed resources; if false, has no effect. + + + Flushes the output buffer for the . + 1 + + + + + + Writes a message to this instance's . + A message to write. + 1 + + + + + + Writes a message to this instance's followed by a line terminator. The default line terminator is a carriage return followed by a line feed (\r\n). + A message to write. + 1 + + + + + + Gets or sets the text writer that receives the tracing or debugging output. + A that represents the writer that receives the tracing or debugging output. + 2 + + + Specifies the priority level of a thread. + 2 + + + Specifies one step above the normal priority for the associated . + + + Specifies one step below the normal priority for the associated . + + + Specifies highest priority. This is two steps above the normal priority for the associated . + + + Specifies idle priority. This is the lowest possible priority value of all threads, independent of the value of the associated . + + + Specifies lowest priority. This is two steps below the normal priority for the associated . + + + Specifies normal priority for the associated . + + + Specifies time-critical priority. This is the highest priority of all threads, independent of the value of the associated . + + + Specifies the current execution state of the thread. + 1 + + + A state that indicates the thread has been initialized, but has not yet started. + + + A state that indicates the thread is waiting to use a processor because no processor is free. The thread is prepared to run on the next available processor. + + + A state that indicates the thread is currently using a processor. + + + A state that indicates the thread is about to use a processor. Only one thread can be in this state at a time. + + + A state that indicates the thread has finished executing and has exited. + + + A state that indicates the thread is waiting for a resource, other than the processor, before it can execute. For example, it might be waiting for its execution stack to be paged in from disk. + + + The state of the thread is unknown. + + + A state that indicates the thread is not ready to use the processor because it is waiting for a peripheral operation to complete or a resource to become free. When the thread is ready, it will be rescheduled. + + + Specifies the reason a thread is waiting. + 2 + + + The thread is waiting for event pair high. + + + The thread is waiting for event pair low. + + + Thread execution is delayed. + + + The thread is waiting for the scheduler. + + + The thread is waiting for a free virtual memory page. + + + The thread is waiting for a local procedure call to arrive. + + + The thread is waiting for reply to a local procedure call to arrive. + + + The thread is waiting for a virtual memory page to arrive in memory. + + + The thread is waiting for a virtual memory page to be written to disk. + + + Thread execution is suspended. + + + The thread is waiting for system allocation. + + + The thread is waiting for an unknown reason. + + + The thread is waiting for a user request. + + + The thread is waiting for the system to allocate virtual memory. + + + Provides a set of methods and properties that help you trace the execution of your code. This class cannot be inherited. + 1 + + + Checks for a condition; if the condition is false, displays a message box that shows the call stack. + The conditional expression to evaluate. If the condition is true, a failure message is not sent and the message box is not displayed. + 2 + + + + + + + Checks for a condition; if the condition is false, outputs a specified message and displays a message box that shows the call stack. + The conditional expression to evaluate. If the condition is true, the specified message is not sent and the message box is not displayed. + The message to send to the collection. + 2 + + + + + + + Checks for a condition; if the condition is false, outputs two specified messages and displays a message box that shows the call stack. + The conditional expression to evaluate. If the condition is true, the specified messages are not sent and the message box is not displayed. + The message to send to the collection. + The detailed message to send to the collection. + 2 + + + + + + + Gets or sets whether should be called on the after every write. + true if is called on the after every write; otherwise, false. + 2 + + + + + + + Flushes the output buffer, and then closes the . + 1 + + + + + + + Gets the correlation manager for the thread for this trace. + The object associated with the thread for this trace. + 2 + + + + + + Emits the specified error message. + A message to emit. + 2 + + + + + + + Emits an error message, and a detailed error message. + A message to emit. + A detailed message to emit. + 2 + + + + + + + Flushes the output buffer, and causes buffered data to be written to the . + 1 + + + + + + + Increases the current by one. + 2 + + + + + + + Gets or sets the indent level. + The indent level. The default is zero. + 2 + + + + + + + Gets or sets the number of spaces in an indent. + The number of spaces in an indent. The default is four. + 2 + + + + + + + Gets the collection of listeners that is monitoring the trace output. + A that represents a collection of type monitoring the trace output. + 1 + + + + + + + Refreshes the trace configuration data. + 1 + + + Writes an error message to the trace listeners in the collection using the specified message. + The informative message to write. + 1 + + + + + + + + Writes an error message to the trace listeners in the collection using the specified array of objects and formatting information. + A format string that contains zero or more format items, which correspond to objects in the array. + An object array containing zero or more objects to format. + 1 + + + + + + + + Writes an informational message to the trace listeners in the collection using the specified message. + The informative message to write. + 1 + + + + + + + + Writes an informational message to the trace listeners in the collection using the specified array of objects and formatting information. + A format string that contains zero or more format items, which correspond to objects in the array. + An object array containing zero or more objects to format. + 1 + + + + + + + + Writes a warning message to the trace listeners in the collection using the specified message. + The informative message to write. + 1 + + + + + + + + Writes a warning message to the trace listeners in the collection using the specified array of objects and formatting information. + A format string that contains zero or more format items, which correspond to objects in the array. + An object array containing zero or more objects to format. + 1 + + + + + + + + Decreases the current by one. + 2 + + + + + + + Gets or sets a value indicating whether the global lock should be used. + true if the global lock is to be used; otherwise, false. The default is true. + + + Writes the value of the object's method to the trace listeners in the collection. + An whose name is sent to the . + 1 + + + + + + + Writes a category name and the value of the object's method to the trace listeners in the collection. + An name is sent to the . + A category name used to organize the output. + 1 + + + + + + + Writes a message to the trace listeners in the collection. + A message to write. + 1 + + + + + + + Writes a category name and a message to the trace listeners in the collection. + A message to write. + A category name used to organize the output. + 1 + + + + + + + Writes the value of the object's method to the trace listeners in the collection if a condition is true. + true to cause a message to be written; otherwise, false. + An whose name is sent to the . + 1 + + + + + + + Writes a category name and the value of the object's method to the trace listeners in the collection if a condition is true. + true to cause a message to be written; otherwise, false. + An whose name is sent to the . + A category name used to organize the output. + 1 + + + + + + + Writes a message to the trace listeners in the collection if a condition is true. + true to cause a message to be written; otherwise, false. + A message to write. + 1 + + + + + + + Writes a category name and message to the trace listeners in the collection if a condition is true. + true to cause a message to be written; otherwise, false. + A message to write. + A category name used to organize the output. + 1 + + + + + + + Writes the value of the object's method to the trace listeners in the collection. + An whose name is sent to the . + 1 + + + + + + + Writes a category name and the value of the object's method to the trace listeners in the collection. + An whose name is sent to the . + A category name used to organize the output. + 1 + + + + + + + Writes a message to the trace listeners in the collection. + A message to write. + 1 + + + + + + + Writes a category name and message to the trace listeners in the collection. + A message to write. + A category name used to organize the output. + 1 + + + + + + + Writes the value of the object's method to the trace listeners in the collection if a condition is true. + true to cause a message to be written; otherwise, false. + An whose name is sent to the . + 1 + + + + + + + Writes a category name and the value of the object's method to the trace listeners in the collection if a condition is true. + true to cause a message to be written; otherwise, false. + An whose name is sent to the . + A category name used to organize the output. + 1 + + + + + + + Writes a message to the trace listeners in the collection if a condition is true. + true to cause a message to be written; otherwise, false. + A message to write. + 1 + + + + + + + Writes a category name and message to the trace listeners in the collection if a condition is true. + true to cause a message to be written; otherwise, false. + A message to write. + A category name used to organize the output. + 1 + + + + + + + Provides trace event data specific to a thread and a process. + 2 + + + Initializes a new instance of the class. + + + Gets the call stack for the current thread. + A string containing stack trace information. This value can be an empty string (""). + 2 + + + + + + + Gets the date and time at which the event trace occurred. + A structure whose value is a date and time expressed in Coordinated Universal Time (UTC). + 2 + + + Gets the correlation data, contained in a stack. + A containing correlation data. + 1 + + + Gets the unique identifier of the current process. + The system-generated unique identifier of the current process. + 2 + + + + + + Gets a unique identifier for the current managed thread. + A string that represents a unique integer identifier for this managed thread. + 2 + + + Gets the current number of ticks in the timer mechanism. + The tick counter value of the underlying timer mechanism. + 2 + + + Identifies the type of event that has caused the trace. + 2 + + + Fatal error or application crash. + + + Recoverable error. + + + Informational message. + + + Resumption of a logical operation. + + + Starting of a logical operation. + + + Stopping of a logical operation. + + + Suspension of a logical operation. + + + Changing of correlation identity. + + + Debugging trace. + + + Noncritical problem. + + + Provides the base class for trace filter implementations. + 2 + + + Initializes a new instance of the class. + + + When overridden in a derived class, determines whether the trace listener should trace the event. + true to trace the specified event; otherwise, false. + The that contains information for the trace event. + The name of the source. + One of the values specifying the type of event that has caused the trace. + A trace identifier number. + Either the format to use for writing an array of arguments specified by the parameter, or a message to write. + An array of argument objects. + A trace data object. + An array of trace data objects. + 2 + + + Specifies what messages to output for the , and classes. + 2 + + + Output error-handling messages. + + + Output informational messages, warnings, and error-handling messages. + + + Output no tracing and debugging messages. + + + Output all debugging and tracing messages. + + + Output warnings and error-handling messages. + + + Provides the abstract base class for the listeners who monitor trace and debug output. + 2 + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified name as the listener. + The name of the . + + + Gets the custom trace listener attributes defined in the application configuration file. + A containing the custom attributes for the trace listener. + 1 + + + When overridden in a derived class, closes the output stream so it no longer receives tracing or debugging output. + 2 + + + Releases all resources used by the . + 2 + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Emits an error message to the listener you create when you implement the class. + A message to emit. + 2 + + + Emits an error message and a detailed error message to the listener you create when you implement the class. + A message to emit. + A detailed message to emit. + 2 + + + Gets and sets the trace filter for the trace listener. + An object derived from the base class. + 2 + + + When overridden in a derived class, flushes the output buffer. + 2 + + + Gets the custom attributes supported by the trace listener. + A string array naming the custom attributes supported by the trace listener, or null if there are no custom attributes. + + + Gets or sets the indent level. + The indent level. The default is zero. + 2 + + + Gets or sets the number of spaces in an indent. + The number of spaces in an indent. The default is four spaces. + Set operation failed because the value is less than zero. + 2 + + + Gets a value indicating whether the trace listener is thread safe. + true if the trace listener is thread safe; otherwise, false. The default is false. + + + Gets or sets a name for this . + A name for this . The default is an empty string (""). + 2 + + + Gets or sets a value indicating whether to indent the output. + true if the output should be indented; otherwise, false. + + + Writes trace information, a data object and event information to the listener specific output. + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + The trace data to emit. + 1 + + + + + + + Writes trace information, an array of data objects and event information to the listener specific output. + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + An array of objects to emit as data. + 1 + + + + + + + Writes trace and event information to the listener specific output. + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + 1 + + + + + + + Writes trace information, a message, and event information to the listener specific output. + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + A message to write. + 1 + + + + + + + Writes trace information, a formatted array of objects and event information to the listener specific output. + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + A format string that contains zero or more format items, which correspond to objects in the array. + An object array containing zero or more objects to format. + 1 + + + + + + + Gets or sets the trace output options. + A bitwise combination of the enumeration values. The default is . + Set operation failed because the value is invalid. + 2 + + + Writes trace information, a message, a related activity identity and event information to the listener specific output. + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + A numeric identifier for the event. + A message to write. + A object identifying a related activity. + 1 + + + Writes the value of the object's method to the listener you create when you implement the class. + An whose fully qualified class name you want to write. + 2 + + + Writes a category name and the value of the object's method to the listener you create when you implement the class. + An whose fully qualified class name you want to write. + A category name used to organize the output. + 2 + + + When overridden in a derived class, writes the specified message to the listener you create in the derived class. + A message to write. + 2 + + + Writes a category name and a message to the listener you create when you implement the class. + A message to write. + A category name used to organize the output. + 2 + + + Writes the indent to the listener you create when you implement this class, and resets the property to false. + + + Writes the value of the object's method to the listener you create when you implement the class, followed by a line terminator. + An whose fully qualified class name you want to write. + 2 + + + Writes a category name and the value of the object's method to the listener you create when you implement the class, followed by a line terminator. + An whose fully qualified class name you want to write. + A category name used to organize the output. + 2 + + + When overridden in a derived class, writes a message to the listener you create in the derived class, followed by a line terminator. + A message to write. + 2 + + + Writes a category name and a message to the listener you create when you implement the class, followed by a line terminator. + A message to write. + A category name used to organize the output. + 2 + + + Provides a thread-safe list of objects. + 2 + + + Adds a to the list. + The position at which the new listener was inserted. + A to add to the list. + 2 + + + + + + + Adds an array of objects to the list. + An array of objects to add to the list. + + is null. + 2 + + + + + + + Adds the contents of another to the list. + Another whose contents are added to the list. + + is null. + 2 + + + + + + + Clears all the listeners from the list. + 2 + + + Checks whether the list contains the specified listener. + true if the listener is in the list; otherwise, false. + A to find in the list. + 2 + + + Copies a section of the current list to the specified array at the specified index. + An array of type to copy the elements into. + The starting index number in the current list to copy from. + 2 + + + Gets the number of listeners in the list. + The number of listeners in the list. + 2 + + + Gets an enumerator for this list. + An enumerator of type . + 2 + + + Gets the index of the specified listener. + The index of the listener, if it can be found in the list; otherwise, -1. + A to find in the list. + 2 + + + Inserts the listener at the specified index. + The position in the list to insert the new . + A to insert in the list. + The is not a valid index in the list. + + is null. + 2 + + + + + + + Gets or sets the at the specified index. + A with the specified index. + The zero-based index of the to get from the list. + The value is null. + 2 + + + Gets the first in the list with the specified name. + The first in the list with the given . This item returns null if no with the given name can be found. + The name of the to get from the list. + 2 + + + Removes from the collection the specified . + A to remove from the list. + 2 + + + Removes from the collection the first with the specified name. + The name of the to remove from the list. + 2 + + + Removes from the collection the at the specified index. + The zero-based index of the to remove from the list. + The is not a valid index in the list. + 2 + + + Copies a section of the current to the specified array of objects. + The one-dimensional array of objects that is the destination of the elements copied from the . The array must have zero-based indexing. + The zero-based index in at which copying begins. + + + Gets a value indicating whether access to the is synchronized (thread safe). + Always true. + + + Gets an object that can be used to synchronize access to the . + The current object. + + + Adds a trace listener to the . + The position into which the new trace listener was inserted. + The object to add to the . + + is null. -or- is not a . + + + Determines whether the contains a specific object. + true if the is found in the ; otherwise, false. + The object to locate in the . + + + Determines the index of a specific object in the . + The index of if found in the ; otherwise, -1. + The object to locate in the . + + + Inserts a object at the specified position in the . + The zero-based index at which should be inserted. + The object to insert into the . + + is not a object. + + + Gets a value indicating whether the has a fixed size. + Always false. + + + Gets a value indicating whether the is read-only + Always false. + + + Gets or sets the at the specified index in the . + The at the specified index. + The zero-based index of the to get. + + + Removes an object from the . + The object to remove from the . + + + Specifies trace data options to be written to the trace output. + 2 + + + Write the call stack, which is represented by the return value of the property. + + + Write the date and time. + + + Write the logical operation stack, which is represented by the return value of the property. + + + Do not write any elements. + + + Write the process identity, which is represented by the return value of the property. + + + Write the thread identity, which is represented by the return value of the property for the current thread. + + + Write the timestamp, which is represented by the return value of the method. + + + Provides a set of methods and properties that enable applications to trace the execution of code and associate trace messages with their source. + 1 + + + Initializes a new instance of the class, using the specified name for the source. + The name of the source (typically, the name of the application). + + is null. + + is an empty string (""). + + + Initializes a new instance of the class, using the specified name for the source and the default source level at which tracing is to occur. + The name of the source, typically the name of the application. + A bitwise combination of the enumeration values that specifies the default source level at which to trace. + + is null. + + is an empty string (""). + + + Gets the custom switch attributes defined in the application configuration file. + A containing the custom attributes for the trace switch. + 1 + + + Closes all the trace listeners in the trace listener collection. + 1 + + + + + + Flushes all the trace listeners in the trace listener collection. + An attempt was made to trace an event during finalization. + 1 + + + Gets the custom attributes supported by the trace source. + A string array naming the custom attributes supported by the trace source, or null if there are no custom attributes. + + + Gets the collection of trace listeners for the trace source. + A that contains the active trace listeners associated with the source. + 1 + + + + + + Gets the name of the trace source. + The name of the trace source. + 1 + + + Gets or sets the source switch value. + A object representing the source switch value. + + is set to null. + 1 + + + + + + Writes trace data to the trace listeners in the collection using the specified event type, event identifier, and trace data. + One of the enumeration values that specifies the event type of the trace data. + A numeric identifier for the event. + The trace data. + An attempt was made to trace an event during finalization. + 1 + + + + + + + + Writes trace data to the trace listeners in the collection using the specified event type, event identifier, and trace data array. + One of the enumeration values that specifies the event type of the trace data. + A numeric identifier for the event. + An object array containing the trace data. + An attempt was made to trace an event during finalization. + 1 + + + + + + + + Writes a trace event message to the trace listeners in the collection using the specified event type and event identifier. + One of the enumeration values that specifies the event type of the trace data. + A numeric identifier for the event. + An attempt was made to trace an event during finalization. + 1 + + + + + + + + Writes a trace event message to the trace listeners in the collection using the specified event type, event identifier, and message. + One of the enumeration values that specifies the event type of the trace data. + A numeric identifier for the event. + The trace message to write. + An attempt was made to trace an event during finalization. + 1 + + + + + + + + Writes a trace event to the trace listeners in the collection using the specified event type, event identifier, and argument array and format. + One of the enumeration values that specifies the event type of the trace data. + A numeric identifier for the event. + A composite format string (see Remarks) that contains text intermixed with zero or more format items, which correspond to objects in the array. + An object array containing zero or more objects to format. + + is null. + + is invalid.-or- The number that indicates an argument to format is less than zero, or greater than or equal to the number of specified objects to format. + An attempt was made to trace an event during finalization. + 1 + + + + + + + + Writes an informational message to the trace listeners in the collection using the specified message. + The informative message to write. + An attempt was made to trace an event during finalization. + 1 + + + + + + + + Writes an informational message to the trace listeners in the collection using the specified object array and formatting information. + A composite format string (see Remarks) that contains text intermixed with zero or more format items, which correspond to objects in the array. + An array containing zero or more objects to format. + + is null. + + is invalid.-or- The number that indicates an argument to format is less than zero, or greater than or equal to the number of specified objects to format. + An attempt was made to trace an event during finalization. + 1 + + + + + + + + Writes a trace transfer message to the trace listeners in the collection using the specified numeric identifier, message, and related activity identifier. + A numeric identifier for the event. + The trace message to write. + A structure that identifies the related activity. + 1 + + + Provides a multilevel switch to control tracing and debug output without recompiling your code. + 2 + + + Initializes a new instance of the class, using the specified display name and description. + The name to display on a user interface. + The description of the switch. + + + Initializes a new instance of the class, using the specified display name, description, and default value for the switch. + The name to display on a user interface. + The description of the switch. + The default value of the switch. + + + Gets or sets the trace level that determines the messages the switch allows. + One of the values that that specifies the level of messages that are allowed by the switch. + + is set to a value that is not one of the values. + 1 + + + + + + + Updates and corrects the level for this switch. + + + Sets the property to the integer equivalent of the property. + + + Gets a value indicating whether the switch allows error-handling messages. + true if the property is set to , , , or ; otherwise, false. + 1 + + + + + + + Gets a value indicating whether the switch allows informational messages. + true if the property is set to or ; otherwise, false. + 1 + + + + + + + Gets a value indicating whether the switch allows all messages. + true if the property is set to ; otherwise, false. + 1 + + + + + + + Gets a value indicating whether the switch allows warning messages. + true if the property is set to , , or ; otherwise, false. + 1 + + + + + + + Directs tracing or debugging output as XML-encoded data to a or to a , such as a . + 1 + + + Initializes a new instance of the class, using the specified stream as the recipient of the debugging and tracing output. + A that represents the stream the trace listener writes to. + + is null. + + + Initializes a new instance of the class with the specified name, using the specified stream as the recipient of the debugging and tracing output. + A that represents the stream the trace listener writes to. + The name of the new instance. + + is null. + + + Initializes a new instance of the class using the specified writer as the recipient of the debugging and tracing output. + A that receives the output from the trace listener. + + is null. + + + Initializes a new instance of the class with the specified name, using the specified writer as the recipient of the debugging and tracing output. + A that receives the output from the trace listener. + The name of the new instance. + + is null. + + + Initializes a new instance of the class, using the specified file as the recipient of the debugging and tracing output. + The name of the file to write to. + + is null. + + + Initializes a new instance of the class with the specified name, using the specified file as the recipient of the debugging and tracing output. + The name of the file to write to. + The name of the new instance. + + is null. + + + Closes the for this listener so that it no longer receives tracing or debugging output. + + + Writes trace information including an error message and a detailed error message to the file or stream. + The error message to write. + The detailed error message to append to the error message. + + + Writes trace information, a data object, and event information to the file or stream. + A that contains the current process ID, thread ID, and stack trace information. + The source name. + One of the values. + A numeric identifier for the event. + A data object to emit. + 1 + + + Writes trace information, data objects, and event information to the file or stream. + A that contains the current process ID, thread ID, and stack trace information. + The source name. + One of the values. + A numeric identifier for the event. + An array of data objects to emit. + 1 + + + Writes trace information, a message, and event information to the file or stream. + A that contains the current process ID, thread ID, and stack trace information. + The source name. + One of the values. + A numeric identifier for the event. + The message to write. + 1 + + + Writes trace information, a formatted message, and event information to the file or stream. + A that contains the current process ID, thread ID, and stack trace information. + The source name. + One of the values. + A numeric identifier for the event. + A format string that contains zero or more format items that correspond to objects in the array. + An object array containing zero or more objects to format. + 1 + + + Writes trace information including the identity of a related activity, a message, and event information to the file or stream. + A that contains the current process ID, thread ID, and stack trace information. + The source name. + A numeric identifier for the event. + A trace message to write. + A structure that identifies a related activity. + 1 + + + Writes a verbatim message without any additional context information to the file or stream. + The message to write. + + + Writes a verbatim message without any additional context information followed by the current line terminator to the file or stream. + The message to write. + + + Specifies that the attributed code should be excluded from code coverage information. + + + Initializes a new instance of the class. + + + Provides data for the event. + 2 + + + Initializes a new instance of the class. + An that represents the error that occurred. + + + Gets the that represents the error that occurred. + An that represents the error that occurred. + 2 + + + Represents the method that will handle the event of a object. + The source of the event. + An object that contains the event data. + 2 + + + Provides data for the directory events: , , . + 2 + + + Initializes a new instance of the class. + One of the values, which represents the kind of change detected in the file system. + The root directory of the affected file or directory. + The name of the affected file or directory. + + + Gets the type of directory event that occurred. + One of the values that represents the kind of change detected in the file system. + 2 + + + Gets the fully qualifed path of the affected file or directory. + The path of the affected file or directory. + 2 + + + Gets the name of the affected file or directory. + The name of the affected file or directory. + 2 + + + Represents the method that will handle the , , or event of a class. + The source of the event. + The that contains the event data. + 2 + + + Listens to the file system change notifications and raises events when a directory, or file in a directory, changes. + 2 + + + Initializes a new instance of the class. + + + Initializes a new instance of the class, given the specified directory to monitor. + The directory to monitor, in standard or Universal Naming Convention (UNC) notation. + The parameter is null. + The parameter is an empty string ("").-or- The path specified through the parameter does not exist. + + is too long. + + + Initializes a new instance of the class, given the specified directory and type of files to monitor. + The directory to monitor, in standard or Universal Naming Convention (UNC) notation. + The type of files to watch. For example, "*.txt" watches for changes to all text files. + The parameter is null.-or- The parameter is null. + The parameter is an empty string ("").-or- The path specified through the parameter does not exist. + + is too long. + + + Begins the initialization of a used on a form or used by another component. The initialization occurs at run time. + 2 + + + Occurs when a file or directory in the specified is changed. + 2 + + + Occurs when a file or directory in the specified is created. + 2 + + + Occurs when a file or directory in the specified is deleted. + 2 + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Gets or sets a value indicating whether the component is enabled. + true if the component is enabled; otherwise, false. The default is false. If you are using the component on a designer in Visual Studio 2005, the default is true. + The object has been disposed. + The current operating system is not Microsoft Windows NT or later. + The directory specified in could not be found. + + has not been set or is invalid. + 2 + + + Ends the initialization of a used on a form or used by another component. The initialization occurs at run time. + 2 + + + Occurs when the instance of is unable to continue monitoring changes or when the internal buffer overflows. + 2 + + + Gets or sets the filter string used to determine what files are monitored in a directory. + The filter string. The default is "*.*" (Watches all files.) + 2 + + + Gets or sets a value indicating whether subdirectories within the specified path should be monitored. + true if you want to monitor subdirectories; otherwise, false. The default is false. + 2 + + + Gets or sets the size (in bytes) of the internal buffer. + The internal buffer size in bytes. The default is 8192 (8 KB). + 2 + + + Gets or sets the type of changes to watch for. + One of the values. The default is the bitwise OR combination of LastWrite, FileName, and DirectoryName. + The value is not a valid bitwise OR combination of the values. + The value that is being set is not valid. + 2 + + + Raises the event. + A that contains the event data. + + + Raises the event. + A that contains the event data. + + + Raises the event. + A that contains the event data. + + + Raises the event. + An that contains the event data. + + + Raises the event. + A that contains the event data. + + + Gets or sets the path of the directory to watch. + The path to monitor. The default is an empty string (""). + The specified path does not exist or could not be found.-or- The specified path contains wildcard characters.-or- The specified path contains invalid path characters. + 2 + + + Occurs when a file or directory in the specified is renamed. + 2 + + + Gets or sets an for the . + An for the . + 2 + + + Gets or sets the object used to marshal the event handler calls issued as a result of a directory change. + The that represents the object used to marshal the event handler calls issued as a result of a directory change. The default is null. + 2 + + + A synchronous method that returns a structure that contains specific information on the change that occurred, given the type of change you want to monitor. + A that contains specific information on the change that occurred. + The to watch for. + 2 + + + A synchronous method that returns a structure that contains specific information on the change that occurred, given the type of change you want to monitor and the time (in milliseconds) to wait before timing out. + A that contains specific information on the change that occurred. + The to watch for. + The time (in milliseconds) to wait before timing out. + 2 + + + The exception thrown when the internal buffer overflows. + 2 + + + Initializes a new default instance of the class. + + + Initializes a new, empty instance of the class that is serializable using the specified and objects. + The information required to serialize the T:System.IO.InternalBufferOverflowException object. + The source and destination of the serialized stream associated with the T:System.IO.InternalBufferOverflowException object. + + + Initializes a new instance of the class with the error message to be displayed specified. + The message to be given for the exception. + + + Initializes a new instance of the class with the message to be displayed and the generated inner exception specified. + The message to be given for the exception. + The inner exception. + + + The exception that is thrown when a data stream is in an invalid format. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with a specified error message. + The error message that explains the reason for the exception. + + + Initializes a new instance of the class with a reference to the inner exception that is the cause of this exception. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. If the parameter is not null, the current exception is raised in a catch block that handles the inner exception. + + + Sets the description visual designers can display when referencing an event, extender, or property. + 1 + + + Initializes a new instance of the class. + The description to use. + + + Gets the description. + The description for the event, extender, or property. + 2 + + + Specifies changes to watch for in a file or folder. + 2 + + + The attributes of the file or folder. + + + The time the file or folder was created. + + + The name of the directory. + + + The name of the file. + + + The date the file or folder was last opened. + + + The date the file or folder last had anything written to it. + + + The security settings of the file or folder. + + + The size of the file or folder. + + + Provides data for the event. + 2 + + + Initializes a new instance of the class. + One of the values. + The name of the affected file or directory. + The name of the affected file or directory. + The old name of the affected file or directory. + + + Gets the previous fully qualified path of the affected file or directory. + The previous fully qualified path of the affected file or directory. + 2 + + + + + + Gets the old name of the affected file or directory. + The previous name of the affected file or directory. + 2 + + + Represents the method that will handle the event of a class. + The source of the event. + The that contains the event data. + 2 + + + Contains information on the change that occurred. + 2 + + + Gets or sets the type of change that occurred. + One of the values. + 2 + + + Gets or sets the name of the file or directory that changed. + The name of the file or directory that changed. + 2 + + + Gets or sets the original name of the file or directory that was renamed. + The original name of the file or directory that was renamed. + 2 + + + Gets or sets a value indicating whether the wait operation timed out. + true if the method timed out; otherwise, false. + 2 + + + Changes that might occur to a file or directory. + 2 + + + The creation, deletion, change, or renaming of a file or folder. + + + The change of a file or folder. The types of changes include: changes to size, attributes, security settings, last write, and last access time. + + + The creation of a file or folder. + + + The deletion of a file or folder. + + + The renaming of a file or folder. + + + Specifies values that indicate whether a compression operation emphasizes speed or compression size. + + + The compression operation should complete as quickly as possible, even if the resulting file is not optimally compressed. + + + No compression should be performed on the file. + + + The compression operation should be optimally compressed, even if the operation takes a longer time to complete. + + + Specifies whether to compress or decompress the underlying stream. + + + Compresses the underlying stream. + + + Decompresses the underlying stream. + + + Provides methods and properties for compressing and decompressing streams by using the Deflate algorithm. + + + Initializes a new instance of the class by using the specified stream and compression level. + The stream to compress. + One of the enumeration values that indicates whether to emphasize speed or compression efficiency when compressing the stream. + + is null. + The stream does not support write operations such as compression. (The property on the stream object is false.) + + + Initializes a new instance of the class by using the specified stream and compression level, and optionally leaves the stream open. + The stream to compress. + One of the enumeration values that indicates whether to emphasize speed or compression efficiency when compressing the stream. + true to leave the stream object open after disposing the object; otherwise, false. + + is null. + The stream does not support write operations such as compression. (The property on the stream object is false.) + + + Initializes a new instance of the class by using the specified stream and compression mode. + The stream to compress or decompress. + One of the enumeration values that indicates whether to compress or decompress the stream. + + is null. + + is not a valid value.-or- is and is false.-or- is and is false. + + + Initializes a new instance of the class by using the specified stream and compression mode, and optionally leaves the stream open. + The stream to compress or decompress. + One of the enumeration values that indicates whether to compress or decompress the stream. + true to leave the stream open after disposing the object; otherwise, false. + + is null. + + is not a valid value.-or- is and is false.-or- is and is false. + + + Gets a reference to the underlying stream. + A stream object that represents the underlying stream. + The underlying stream is closed. + + + Begins an asynchronous read operation. (Consider using the method instead; see the Remarks section.) + An object that represents the asynchronous read operation, which could still be pending. + The byte array to read the data into. + The byte offset in at which to begin reading data from the stream. + The maximum number of bytes to read. + An optional asynchronous callback, to be called when the read operation is complete. + A user-provided object that distinguishes this particular asynchronous read request from other requests. + The method tried to read asynchronously past the end of the stream, or a disk error occurred. + One or more of the arguments is invalid. + Methods were called after the stream was closed. + The current implementation does not support the read operation. + This call cannot be completed. + + + Begins an asynchronous write operation. (Consider using the method instead; see the Remarks section.) + An object that represents the asynchronous write operation, which could still be pending. + The buffer to write data from. + The byte offset in to begin writing from. + The maximum number of bytes to write. + An optional asynchronous callback, to be called when the write operation is complete. + A user-provided object that distinguishes this particular asynchronous write request from other requests. + The method tried to write asynchronously past the end of the stream, or a disk error occurred. + One or more of the arguments is invalid. + Methods were called after the stream was closed. + The current implementation does not support the write operation. + The write operation cannot be performed because the stream is closed. + + + Gets a value indicating whether the stream supports reading while decompressing a file. + true if the value is Decompress, and the underlying stream is opened and supports reading; otherwise, false. + + + Gets a value indicating whether the stream supports seeking. + false in all cases. + + + Gets a value indicating whether the stream supports writing. + true if the value is Compress, and the underlying stream supports writing and is not closed; otherwise, false. + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Waits for the pending asynchronous read to complete. (Consider using the method instead; see the Remarks section.) + The number of bytes read from the stream, between 0 (zero) and the number of bytes you requested. returns 0 only at the end of the stream; otherwise, it blocks until at least one byte is available. + The reference to the pending asynchronous request to finish. + + is null. + + did not originate from a method on the current stream. + An exception was thrown during a call to . + The end call is invalid because asynchronous read operations for this stream are not yet complete. + The stream is null. + + + Ends an asynchronous write operation. (Consider using the method instead; see the Remarks section.) + A reference to the outstanding asynchronous I/O request. + + is null. + + did not originate from a method on the current stream. + An exception was thrown during a call to . + The stream is null. + The end write call is invalid. + + + The current implementation of this method has no functionality. + The stream is closed. + + + + + + This property is not supported and always throws a . + A long value. + This property is not supported on this stream. + + + + + + This property is not supported and always throws a . + A long value. + This property is not supported on this stream. + + + + + + Reads a number of decompressed bytes into the specified byte array. + The number of bytes that were read into the byte array. + The array to store decompressed bytes. + The byte offset in at which the read bytes will be placed. + The maximum number of decompressed bytes to read. + + is null. + The value was Compress when the object was created.- or - The underlying stream does not support reading. + + or is less than zero.-or- length minus the index starting point is less than . + The data is in an invalid format. + The stream is closed. + + + This operation is not supported and always throws a . + A long value. + The location in the stream. + One of the values. + This property is not supported on this stream. + + + This operation is not supported and always throws a . + The length of the stream. + This property is not supported on this stream. + + + Writes compressed bytes to the underlying stream from the specified byte array. + The buffer that contains the data to compress. + The byte offset in from which the bytes will be read. + The maximum number of bytes to write. + + + Provides methods and properties used to compress and decompress streams. + + + Initializes a new instance of the class by using the specified stream and compression level. + The stream to compress. + One of the enumeration values that indicates whether to emphasize speed or compression efficiency when compressing the stream. + + is null. + The stream does not support write operations such as compression. (The property on the stream object is false.) + + + Initializes a new instance of the class by using the specified stream and compression level, and optionally leaves the stream open. + The stream to compress. + One of the enumeration values that indicates whether to emphasize speed or compression efficiency when compressing the stream. + true to leave the stream object open after disposing the object; otherwise, false. + + is null. + The stream does not support write operations such as compression. (The property on the stream object is false.) + + + Initializes a new instance of the class by using the specified stream and compression mode. + The stream to compress or decompress. + One of the enumeration values that indicates whether to compress or decompress the stream. + + is null. + + is not a valid enumeration value.-or- is and is false.-or- is and is false. + + + Initializes a new instance of the class by using the specified stream and compression mode, and optionally leaves the stream open. + The stream to compress or decompress. + One of the enumeration values that indicates whether to compress or decompress the stream. + true to leave the stream open after disposing the object; otherwise, false. + + is null. + + is not a valid value.-or- is and is false.-or- is and is false. + + + Gets a reference to the underlying stream. + A stream object that represents the underlying stream. + The underlying stream is closed. + + + + + + Begins an asynchronous read operation. (Consider using the method instead; see the Remarks section.) + An object that represents the asynchronous read operation, which could still be pending. + The byte array to read the data into. + The byte offset in at which to begin reading data from the stream. + The maximum number of bytes to read. + An optional asynchronous callback, to be called when the read operation is complete. + A user-provided object that distinguishes this particular asynchronous read request from other requests. + The method tried to read asynchronously past the end of the stream, or a disk error occurred. + One or more of the arguments is invalid. + Methods were called after the stream was closed. + The current implementation does not support the read operation. + A read operation cannot be performed because the stream is closed. + + + Begins an asynchronous write operation. (Consider using the method instead; see the Remarks section.) + An object that represents the asynchronous write operation, which could still be pending. + The buffer containing data to write to the current stream. + The byte offset in at which to begin writing. + The maximum number of bytes to write. + An optional asynchronous callback to be called when the write operation is complete. + A user-provided object that distinguishes this particular asynchronous write request from other requests. + The underlying stream is null. -or-The underlying stream is closed. + + + Gets a value indicating whether the stream supports reading while decompressing a file. + true if the value is Decompress, and the underlying stream supports reading and is not closed; otherwise, false. + + + + + + Gets a value indicating whether the stream supports seeking. + false in all cases. + + + Gets a value indicating whether the stream supports writing. + true if the value is Compress, and the underlying stream supports writing and is not closed; otherwise, false. + + + + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Waits for the pending asynchronous read to complete. (Consider using the the method instead; see the Remarks section.) + The number of bytes read from the stream, between 0 (zero) and the number of bytes you requested. returns 0 only at the end of the stream; otherwise, it blocks until at least one byte is available. + The reference to the pending asynchronous request to finish. + + is null. + + did not originate from a method on the current stream. + The end operation cannot be performed because the stream is closed. + + + Handles the end of an asynchronous write operation. (Consider using the method instead; see the Remarks section.) + The object that represents the asynchronous call. + The underlying stream is null. -or-The underlying stream is closed. + + + The current implementation of this method has no functionality. + The stream is closed. + + + + + + This property is not supported and always throws a . + A long value. + This property is not supported on this stream. + + + + + + This property is not supported and always throws a . + A long value. + This property is not supported on this stream. + + + + + + Reads a number of decompressed bytes into the specified byte array. + The number of bytes that were decompressed into the byte array. If the end of the stream has been reached, zero or the number of bytes read is returned. + The array used to store decompressed bytes. + The byte offset in at which the read bytes will be placed. + The maximum number of decompressed bytes to read. + + is null. + The value was Compress when the object was created.- or -The underlying stream does not support reading. + + or is less than zero.-or- length minus the index starting point is less than . + The data is in an invalid format. + The stream is closed. + + + This property is not supported and always throws a . + A long value. + The location in the stream. + One of the values. + This property is not supported on this stream. + + + This property is not supported and always throws a . + The length of the stream. + This property is not supported on this stream. + + + Writes compressed bytes to the underlying stream from the specified byte array. + The buffer that contains the data to compress. + The byte offset in from which the bytes will be read. + The maximum number of bytes to write. + The write operation cannot be performed because the stream is closed. + + + Specifies the control protocol used in establishing a serial port communication for a object. + + + No control is used for the handshake. + + + Request-to-Send (RTS) hardware flow control is used. RTS signals that data is available for transmission. If the input buffer becomes full, the RTS line will be set to false. The RTS line will be set to true when more room becomes available in the input buffer. + + + Both the Request-to-Send (RTS) hardware control and the XON/XOFF software controls are used. + + + The XON/XOFF software control protocol is used. The XOFF control is sent to stop the transmission of data. The XON control is sent to resume the transmission. These software controls are used instead of Request to Send (RTS) and Clear to Send (CTS) hardware controls. + + + Specifies the parity bit for a object. + + + Sets the parity bit so that the count of bits set is an even number. + + + Leaves the parity bit set to 1. + + + No parity check occurs. + + + Sets the parity bit so that the count of bits set is an odd number. + + + Leaves the parity bit set to 0. + + + Specifies the type of character that was received on the serial port of the object. + + + A character was received and placed in the input buffer. + + + The end of file character was received and placed in the input buffer. + + + Provides data for the event. + + + Gets or sets the event type. + One of the values. + + + Represents the method that will handle the event of a object. + The sender of the event, which is the object. + A object that contains the event data. + + + Specifies errors that occur on the object. + + + The hardware detected a framing error. + + + A character-buffer overrun has occurred. The next character is lost. + + + An input buffer overflow has occurred. There is either no room in the input buffer, or a character was received after the end-of-file (EOF) character. + + + The hardware detected a parity error. + + + The application tried to transmit a character, but the output buffer was full. + + + Prepares data for the event. + + + Gets or sets the event type. + One of the values. + + + Represents the method that will handle the event of a object. + The sender of the event, which is the object. + A object that contains the event data. + + + Specifies the type of change that occurred on the object. + + + A break was detected on input. + + + The Carrier Detect (CD) signal changed state. This signal is used to indicate whether a modem is connected to a working phone line and a data carrier signal is detected. + + + The Clear to Send (CTS) signal changed state. This signal is used to indicate whether data can be sent over the serial port. + + + The Data Set Ready (DSR) signal changed state. This signal is used to indicate whether the device on the serial port is ready to operate. + + + A ring indicator was detected. + + + Provides data for the event. + + + Gets or sets the event type. + One of the values. + + + Represents the method that will handle the event of a object. + The source of the event, which is the object. + A object that contains the event data. + + + Represents a serial port resource. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified object. + An interface to a container. + The specified port could not be found or opened. + + + Initializes a new instance of the class using the specified port name. + The port to use (for example, COM1). + The specified port could not be found or opened. + + + Initializes a new instance of the class using the specified port name and baud rate. + The port to use (for example, COM1). + The baud rate. + The specified port could not be found or opened. + + + Initializes a new instance of the class using the specified port name, baud rate, and parity bit. + The port to use (for example, COM1). + The baud rate. + One of the values. + The specified port could not be found or opened. + + + Initializes a new instance of the class using the specified port name, baud rate, parity bit, and data bits. + The port to use (for example, COM1). + The baud rate. + One of the values. + The data bits value. + The specified port could not be found or opened. + + + Initializes a new instance of the class using the specified port name, baud rate, parity bit, data bits, and stop bit. + The port to use (for example, COM1). + The baud rate. + One of the values. + The data bits value. + One of the values. + The specified port could not be found or opened. + + + Gets the underlying object for a object. + A object. + The stream is closed. This can occur because the method has not been called or the method has been called. + The stream is in a .NET Compact Framework application and one of the following methods was called:The .NET Compact Framework does not support the asynchronous model with base streams. + + + + + + Gets or sets the serial baud rate. + The baud rate. + The baud rate specified is less than or equal to zero, or is greater than the maximum allowable baud rate for the device. + The port is in an invalid state. - or - An attempt to set the state of the underlying port failed. For example, the parameters passed from this object were invalid. + + + Gets or sets the break signal state. + true if the port is in a break state; otherwise, false. + The port is in an invalid state. - or -An attempt to set the state of the underlying port failed. For example, the parameters passed from this object were invalid. + The stream is closed. This can occur because the method has not been called or the method has been called. + + + + + + Gets the number of bytes of data in the receive buffer. + The number of bytes of data in the receive buffer. + The port is not open. + + + + + + Gets the number of bytes of data in the send buffer. + The number of bytes of data in the send buffer. + The port is in an invalid state. + The stream is closed. This can occur because the method has not been called or the method has been called. + + + + + + Gets the state of the Carrier Detect line for the port. + true if the carrier is detected; otherwise, false. + The port is in an invalid state. - or - An attempt to set the state of the underlying port failed. For example, the parameters passed from this object were invalid. + The stream is closed. This can occur because the method has not been called or the method has been called. + + + + + + Closes the port connection, sets the property to false, and disposes of the internal object. + The port is in an invalid state.- or -An attempt to set the state of the underlying port failed. For example, the parameters passed from this object were invalid. + + + + + + Gets the state of the Clear-to-Send line. + true if the Clear-to-Send line is detected; otherwise, false. + The port is in an invalid state. - or - An attempt to set the state of the underlying port failed. For example, the parameters passed from this object were invalid. + The stream is closed. This can occur because the method has not been called or the method has been called. + + + + + + Gets or sets the standard length of data bits per byte. + The data bits length. + The port is in an invalid state. - or -An attempt to set the state of the underlying port failed. For example, the parameters passed from this object were invalid. + The data bits value is less than 5 or more than 8. + + + Represents the method that will handle the data received event of a object. + + + Discards data from the serial driver's receive buffer. + The port is in an invalid state. - or -An attempt to set the state of the underlying port failed. For example, the parameters passed from this object were invalid. + The stream is closed. This can occur because the method has not been called or the method has been called. + + + + + + Gets or sets a value indicating whether null bytes are ignored when transmitted between the port and the receive buffer. + true if null bytes are ignored; otherwise false. The default is false. + The port is in an invalid state. - or - An attempt to set the state of the underlying port failed. For example, the parameters passed from this object were invalid. + The stream is closed. This can occur because the method has not been called or the method has been called. + + + Discards data from the serial driver's transmit buffer. + The port is in an invalid state. - or - An attempt to set the state of the underlying port failed. For example, the parameters passed from this object were invalid. + The stream is closed. This can occur because the method has not been called or the method has been called. + + + + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + The port is in an invalid state. - or -An attempt to set the state of the underlying port failed. For example, the parameters passed from this object were invalid. + + + Gets the state of the Data Set Ready (DSR) signal. + true if a Data Set Ready signal has been sent to the port; otherwise, false. + The port is in an invalid state. - or - An attempt to set the state of the underlying port failed. For example, the parameters passed from this object were invalid. + The stream is closed. This can occur because the method has not been called or the method has been called. + + + + + + Gets or sets a value that enables the Data Terminal Ready (DTR) signal during serial communication. + true to enable Data Terminal Ready (DTR); otherwise, false. The default is false. + The port is in an invalid state. - or - An attempt to set the state of the underlying port failed. For example, the parameters passed from this object were invalid. + + + Gets or sets the byte encoding for pre- and post-transmission conversion of text. + An object. The default is . + The property was set to null. + The property was set to an encoding that is not , , , , one of the Windows single byte encodings, or one of the Windows double byte encodings. + + + Represents the method that handles the error event of a object. + + + Gets an array of serial port names for the current computer. + An array of serial port names for the current computer. + The serial port names could not be queried. + + + Gets or sets the handshaking protocol for serial port transmission of data. + One of the values. The default is None. + The port is in an invalid state. - or - An attempt to set the state of the underlying port failed. For example, the parameters passed from this object were invalid. + The value passed is not a valid value in the enumeration. + + + + + + Indicates that no time-out should occur. + + + Gets a value indicating the open or closed status of the object. + true if the serial port is open; otherwise, false. The default is false. + The value passed is null. + The value passed is an empty string (""). + + + Gets or sets the value used to interpret the end of a call to the and methods. + A value that represents the end of a line. The default is a line feed, (). + The property value is empty. + The property value is null. + + + Opens a new serial port connection. + Access is denied to the port.- or -The current process, or another process on the system, already has the specified COM port open either by a instance or in unmanaged code. + One or more of the properties for this instance are invalid. For example, the , , or properties are not valid values; the is less than or equal to zero; the or property is less than zero and is not . + The port name does not begin with "COM". - or -The file type of the port is not supported. + The port is in an invalid state. - or - An attempt to set the state of the underlying port failed. For example, the parameters passed from this object were invalid. + The specified port on the current instance of the is already open. + + + + + + Gets or sets the parity-checking protocol. + One of the enumeration values that represents the parity-checking protocol. The default is . + The port is in an invalid state. - or - An attempt to set the state of the underlying port failed. For example, the parameters passed from this object were invalid. + The value passed is not a valid value in the enumeration. + + + + + + Gets or sets the byte that replaces invalid bytes in a data stream when a parity error occurs. + A byte that replaces invalid bytes. + The port is in an invalid state. - or - An attempt to set the state of the underlying port failed. For example, the parameters passed from this object were invalid. + + + Represents the method that will handle the serial pin changed event of a object. + + + Gets or sets the port for communications, including but not limited to all available COM ports. + The communications port. The default is COM1. + The property was set to a value with a length of zero.-or-The property was set to a value that starts with "\\".-or-The port name was not valid. + The property was set to null. + The specified port is open. + + + Reads a number of bytes from the input buffer and writes those bytes into a byte array at the specified offset. + The number of bytes read. + The byte array to write the input to. + The offset in the buffer array to begin reading from. + The number of bytes to read. + The buffer passed is null. + The specified port is not open. + The or parameters are outside a valid region of the being passed. Either or is less than zero. + + plus is greater than the length of the . + No bytes were available to read. + + + Reads a number of characters from the input buffer and writes them into an array of characters at a given offset. + The number of characters read. + The character array to write the input to. + The offset in the buffer array to begin reading from. + The number of characters to read. + + plus is greater than the length of the buffer.- or - is 1 and there is a surrogate character in the buffer. + The passed is null. + The or parameters are outside a valid region of the being passed. Either or is less than zero. + The specified port is not open. + No characters were available to read. + + + Gets or sets the size of the input buffer. + The buffer size, in bytes. The default value is 4096. + The value set is less than or equal to zero. + The property was set while the stream was open. + The property was set to an odd integer value. + + + Synchronously reads one byte from the input buffer. + The byte, cast to an , or -1 if the end of the stream has been read. + The specified port is not open. + The operation did not complete before the time-out period ended.- or -No byte was read. + + + + + + Synchronously reads one character from the input buffer. + The character that was read. + The specified port is not open. + The operation did not complete before the time-out period ended.- or -No character was available in the allotted time-out period. + + + + + + Reads all immediately available bytes, based on the encoding, in both the stream and the input buffer of the object. + The contents of the stream and the input buffer of the object. + The specified port is not open. + + + + + + Reads up to the value in the input buffer. + The contents of the input buffer up to the first occurrence of a value. + The specified port is not open. + The operation did not complete before the time-out period ended.- or -No bytes were read. + + + + + + Gets or sets the number of milliseconds before a time-out occurs when a read operation does not finish. + The number of milliseconds before a time-out occurs when a read operation does not finish. + The port is in an invalid state. - or - An attempt to set the state of the underlying port failed. For example, the parameters passed from this object were invalid. + The read time-out value is less than zero and not equal to . + + + Reads a string up to the specified in the input buffer. + The contents of the input buffer up to the specified . + A value that indicates where the read operation stops. + The length of the parameter is 0. + The parameter is null. + The specified port is not open. + The operation did not complete before the time-out period ended. + + + Gets or sets the number of bytes in the internal input buffer before a event occurs. + The number of bytes in the internal input buffer before a event is fired. The default is 1. + The value is less than or equal to zero. + + + Gets or sets a value indicating whether the Request to Send (RTS) signal is enabled during serial communication. + true to enable Request to Transmit (RTS); otherwise, false. The default is false. + The value of the property was set or retrieved while the property is set to the value or the value. + The port is in an invalid state. - or - An attempt to set the state of the underlying port failed. For example, the parameters passed from this object were invalid. + + + Gets or sets the standard number of stopbits per byte. + One of the values. + The value is . + The port is in an invalid state. - or - An attempt to set the state of the underlying port failed. For example, the parameters passed from this object were invalid. + + + + + + Writes a specified number of bytes to the serial port using data from a buffer. + The byte array that contains the data to write to the port. + The zero-based byte offset in the parameter at which to begin copying bytes to the port. + The number of bytes to write. + The passed is null. + The specified port is not open. + The or parameters are outside a valid region of the being passed. Either or is less than zero. + + plus is greater than the length of the . + The operation did not complete before the time-out period ended. + + + Writes a specified number of characters to the serial port using data from a buffer. + The character array that contains the data to write to the port. + The zero-based byte offset in the parameter at which to begin copying bytes to the port. + The number of characters to write. + The passed is null. + The specified port is not open. + The or parameters are outside a valid region of the being passed. Either or is less than zero. + + plus is greater than the length of the . + The operation did not complete before the time-out period ended. + + + Writes the specified string to the serial port. + The string for output. + The specified port is not open. + + is null. + The operation did not complete before the time-out period ended. + + + Gets or sets the size of the serial port output buffer. + The size of the output buffer. The default is 2048. + The value is less than or equal to zero. + The property was set while the stream was open. + The property was set to an odd integer value. + + + Writes the specified string and the value to the output buffer. + The string to write to the output buffer. + The parameter is null. + The specified port is not open. + The method could not write to the stream. + + + Gets or sets the number of milliseconds before a time-out occurs when a write operation does not finish. + The number of milliseconds before a time-out occurs. The default is . + The port is in an invalid state. - or - An attempt to set the state of the underlying port failed. For example, the parameters passed from this object were invalid. + The value is less than zero and not equal to . + + + Specifies the number of stop bits used on the object. + + + No stop bits are used. This value is not supported by the property. + + + One stop bit is used. + + + 1.5 stop bits are used. + + + Two stop bits are used. + + + Controls playback of a sound from a .wav file. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class, and attaches the .wav file within the specified . + A to a .wav file. + + + Initializes a new instance of the class. + The to be used for deserialization. + The destination to be used for deserialization. + The specified in cannot be resolved. + + + Initializes a new instance of the class, and attaches the specified .wav file. + The location of a .wav file to load. + The URL value specified by cannot be resolved. + + + Gets a value indicating whether loading of a .wav file has successfully completed. + true if a .wav file is loaded; false if a .wav file has not yet been loaded. + + + Loads a sound synchronously. + The elapsed time during loading exceeds the time, in milliseconds, specified by . + The file specified by cannot be found. + + + Loads a .wav file from a stream or a Web resource using a new thread. + The elapsed time during loading exceeds the time, in milliseconds, specified by . + The file specified by cannot be found. + + + Occurs when a .wav file has been successfully or unsuccessfully loaded. + + + Gets or sets the time, in milliseconds, in which the .wav file must load. + The number of milliseconds to wait. The default is 10000 (10 seconds). + + + Raises the event. + An that contains the event data. + + + Raises the event. + An that contains the event data. + + + Raises the event. + An that contains the event data. + + + Plays the .wav file using a new thread, and loads the .wav file first if it has not been loaded. + The elapsed time during loading exceeds the time, in milliseconds, specified by . + The file specified by cannot be found. + The .wav header is corrupted; the file specified by is not a PCM .wav file. + + + Plays and loops the .wav file using a new thread, and loads the .wav file first if it has not been loaded. + The elapsed time during loading exceeds the time, in milliseconds, specified by . + The file specified by cannot be found. + The .wav header is corrupted; the file specified by is not a PCM .wav file. + + + Plays the .wav file and loads the .wav file first if it has not been loaded. + The elapsed time during loading exceeds the time, in milliseconds, specified by . + The file specified by cannot be found. + The .wav header is corrupted; the file specified by is not a PCM .wav file. + + + Gets or sets the file path or URL of the .wav file to load. + The file path or URL from which to load a .wav file, or if no file path is present. The default is . + + + Occurs when a new audio source path for this has been set. + + + Stops playback of the sound if playback is occurring. + + + Gets or sets the from which to load the .wav file. + A from which to load the .wav file, or null if no stream is available. The default is null. + + + Occurs when a new audio source for this has been set. + + + For a description of this member, see the method. + The to populate with data. + The destination (see ) for this serialization. + + + Gets or sets the that contains data about the . + An that contains data about the . + + + Represents a system sound type. + 2 + + + + Plays the system sound type. + + + Retrieves sounds associated with a set of Windows operating system sound-event types. This class cannot be inherited. + 2 + + + Gets the sound associated with the Asterisk program event in the current Windows sound scheme. + A associated with the Asterisk program event in the current Windows sound scheme. + + + Gets the sound associated with the Beep program event in the current Windows sound scheme. + A associated with the Beep program event in the current Windows sound scheme. + + + Gets the sound associated with the Exclamation program event in the current Windows sound scheme. + A associated with the Exclamation program event in the current Windows sound scheme. + + + Gets the sound associated with the Hand program event in the current Windows sound scheme. + A associated with the Hand program event in the current Windows sound scheme. + + + Gets the sound associated with the Question program event in the current Windows sound scheme. + A associated with the Question program event in the current Windows sound scheme. + + + Manages the authentication modules called during the client authentication process. + + + Calls each registered authentication module to find the first module that can respond to the authentication request. + An instance of the class containing the result of the authorization attempt. If there is no authentication module to respond to the challenge, this method returns null. + The challenge returned by the Internet resource. + The that initiated the authentication challenge. + The associated with this request. + + is null.-or- is null.-or- is null. + + + + + + + Gets or sets the credential policy to be used for resource requests made using the class. + An object that implements the interface that determines whether credentials are sent with requests. The default value is null. + + + Gets the dictionary that contains Service Principal Names (SPNs) that are used to identify hosts during Kerberos authentication for requests made using and its derived classes. + A writable that contains the SPN values for keys composed of host information. + + + Preauthenticates a request. + An instance of the class if the request can be preauthenticated; otherwise, null. If is null, this method returns null. + A to an Internet resource. + The associated with the request. + + is null. + + + + + + + Registers an authentication module with the authentication manager. + The to register with the authentication manager. + + is null. + + + + + + + Gets a list of authentication modules that are registered with the authentication manager. + An that enables the registered authentication modules to be read. + + + + + + + Removes the specified authentication module from the list of registered modules. + The to remove from the list of registered modules. + + is null. + The specified is not registered. + + + + + + + Removes authentication modules with the specified authentication scheme from the list of registered modules. + The authentication scheme of the module to remove. + + is null. + A module for this authentication scheme is not registered. + + + + + + + Specifies protocols for authentication. + + + Specifies anonymous authentication. + + + Specifies basic authentication. + + + Specifies digest authentication. + + + Specifies Windows authentication. + + + Negotiates with the client to determine the authentication scheme. If both client and server support Kerberos, it is used; otherwise, NTLM is used. + + + No authentication is allowed. A client requesting an object with this flag set will always receive a 403 Forbidden status. Use this flag when a resource should never be served to a client. + + + Specifies NTLM authentication. + + + Selects the authentication scheme for an instance. + One of the values that indicates the method of authentication to use for the specified client request. + The instance for which to select an authentication scheme. + + + Contains an authentication message for an Internet server. + + + Creates a new instance of the class with the specified authorization message. + The encrypted authorization message expected by the server. + + + Creates a new instance of the class with the specified authorization message and completion status. + The encrypted authorization message expected by the server. + The completion status of the authorization attempt. true if the authorization attempt is complete; otherwise, false. + + + Creates a new instance of the class with the specified authorization message, completion status, and connection group identifier. + The encrypted authorization message expected by the server. + The completion status of the authorization attempt. true if the authorization attempt is complete; otherwise, false. + A unique identifier that can be used to create private client-server connections that are bound only to this authentication scheme. + + + Gets the completion status of the authorization. + true if the authentication process is complete; otherwise, false. + + + Gets a unique identifier for user-specific connections. + A unique string that associates a connection with an authenticating entity. + + + Gets the message returned to the server in response to an authentication challenge. + The message that will be returned to the server in response to an authentication challenge. + + + Gets or sets a value that indicates whether mutual authentication occurred. + true if both client and server were authenticated; otherwise, false. + + + Gets or sets the prefix for Uniform Resource Identifiers (URIs) that can be authenticated with the property. + An array of strings that contains URI prefixes. + + + Represents the method that specifies a local Internet Protocol address and port number for a . + The local to which the is bound. + The associated with the connection to be created. + The remote that specifies the remote host. + The number of times this delegate was called for a specified connection. + + is equal to + + + Provides a set of properties and methods that are used to manage cookies. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with a specified and . + The name of a . The following characters must not be used inside : equal sign, semicolon, comma, newline (\n), return (\r), tab (\t), and space character. The dollar sign character ("$") cannot be the first character. + The value of a . The following characters must not be used inside : semicolon, comma. + The parameter is null. -or- The parameter is of zero length. -or- The parameter contains an invalid character.-or- The parameter is null .-or - The parameter contains a string not enclosed in quotes that contains an invalid character. + + + Initializes a new instance of the class with a specified , , and . + The name of a . The following characters must not be used inside : equal sign, semicolon, comma, newline (\n), return (\r), tab (\t), and space character. The dollar sign character ("$") cannot be the first character. + The value of a . The following characters must not be used inside : semicolon, comma. + The subset of URIs on the origin server to which this applies. The default value is "/". + The parameter is null. -or- The parameter is of zero length. -or- The parameter contains an invalid character.-or- The parameter is null .-or - The parameter contains a string not enclosed in quotes that contains an invalid character. + + + Initializes a new instance of the class with a specified , , , and . + The name of a . The following characters must not be used inside : equal sign, semicolon, comma, newline (\n), return (\r), tab (\t), and space character. The dollar sign character ("$") cannot be the first character. + The value of a object. The following characters must not be used inside : semicolon, comma. + The subset of URIs on the origin server to which this applies. The default value is "/". + The optional internet domain for which this is valid. The default value is the host this has been received from. + The parameter is null. -or- The parameter is of zero length. -or- The parameter contains an invalid character.-or- The parameter is null .-or - The parameter contains a string not enclosed in quotes that contains an invalid character. + + + Gets or sets a comment that the server can add to a . + An optional comment to document intended usage for this . + + + Gets or sets a URI comment that the server can provide with a . + An optional comment that represents the intended usage of the URI reference for this . The value must conform to URI format. + + + Gets or sets the discard flag set by the server. + true if the client is to discard the at the end of the current session; otherwise, false. The default is false. + + + Gets or sets the URI for which the is valid. + The URI for which the is valid. + + + Overrides the method. + Returns true if the is equal to . Two instances are equal if their , , , , and properties are equal. and string comparisons are case-insensitive. + A reference to a . + + + Gets or sets the current state of the . + true if the has expired; otherwise, false. The default is false. + + + Gets or sets the expiration date and time for the as a . + The expiration date and time for the as a instance. + + + Overrides the method. + The 32-bit signed integer hash code for this instance. + + + Determines whether a page script or other active content can access this cookie. + Boolean value that determines whether a page script or other active content can access this cookie. + + + Gets or sets the name for the . + The name for the . + The value specified for a set operation is null or the empty string- or -The value specified for a set operation contained an illegal character. The following characters must not be used inside the property: equal sign, semicolon, comma, newline (\n), return (\r), tab (\t), and space character. The dollar sign character ("$") cannot be the first character. + + + Gets or sets the URIs to which the applies. + The URIs to which the applies. + + + Gets or sets a list of TCP ports that the applies to. + The list of TCP ports that the applies to. + The value specified for a set operation could not be parsed or is not enclosed in double quotes. + + + Gets or sets the security level of a . + true if the client is only to return the cookie in subsequent requests if those requests use Secure Hypertext Transfer Protocol (HTTPS); otherwise, false. The default is false. + + + Gets the time when the cookie was issued as a . + The time when the cookie was issued as a . + + + Overrides the method. + Returns a string representation of this object that is suitable for including in a HTTP Cookie: request header. + + + + + + Gets or sets the for the . + The for the . + + + Gets or sets the version of HTTP state maintenance to which the cookie conforms. + The version of HTTP state maintenance to which the cookie conforms. + The value specified for a version is not allowed. + + + Provides a collection container for instances of the class. + + + Initializes a new instance of the class. + + + Adds a to a . + The to be added to a . + + is null. + + + Adds the contents of a to the current instance. + The to be added. + + is null. + + + Copies the elements of a to an instance of the class, starting at a particular index. + The target to which the will be copied. + The zero-based index in the target where copying begins. + + is null. + + is less than zero. + + is multidimensional.-or- The number of elements in this is greater than the available space from to the end of the destination . + The elements in this cannot be cast automatically to the type of the destination . + + + Copies the elements of this to a array starting at the specified index of the target array. + The target array to which the will be copied. + The zero-based index in the target where copying begins. + + is null. + + is less than zero. + + is multidimensional.-or- The number of elements in this is greater than the available space from to the end of the destination . + The elements in this cannot be cast automatically to the type of the destination . + + + Gets the number of cookies contained in a . + The number of cookies contained in a . + + + Gets an enumerator that can iterate through a . + An instance of an implementation of an interface that can iterate through a . + + + Gets a value that indicates whether a is read-only. + true if this is a read-only ; otherwise, false. The default is true. + + + Gets a value that indicates whether access to a is thread safe. + true if access to the is thread safe; otherwise, false. The default is false. + + + Gets the with a specific index from a . + A with a specific index from a . + The zero-based index of the to be found. + + is less than 0 or is greater than or equal to . + + + Gets the with a specific name from a . + The with a specific name from a . + The name of the to be found. + + is null. + + + Gets an object to synchronize access to the . + An object to synchronize access to the . + + + Provides a container for a collection of objects. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with a specified value for the number of instances that the container can hold. + The number of instances that the can hold. + + is less than or equal to zero. + + + Initializes a new instance of the class with specific properties. + The number of instances that the can hold. + The number of instances per domain. + The maximum size in bytes for any single in a . + + is not equal to . and is less than or equal to zero or is greater than . + + is less than or equal to zero. + + + Adds a to a . This method uses the domain from the to determine which domain collection to associate the with. + The to be added to the . + + is null. + The domain for is null or the empty string (""). + + is larger than . -or- the domain for is not a valid URI. + + + + + + Adds the contents of a to the . + The to be added to the . + + is null. + + + + + + Adds a to the for a particular URI. + The URI of the to be added to the . + The to be added to the . + + is null or is null. + + is larger than . -or- The domain for is not a valid URI. + + + + + + Adds the contents of a to the for a particular URI. + The URI of the to be added to the . + The to be added to the . + + is null. + The domain for one of the cookies in is null. + One of the cookies in contains an invalid domain. + + + + + + Gets and sets the number of instances that a can hold. + The number of instances that a can hold. This is a hard limit and cannot be exceeded by adding a . + + is less than or equal to zero or (value is less than and is not equal to ). + + + Gets the number of instances that a currently holds. + The number of instances that a currently holds. This is the total of instances in all domains. + + + Represents the default maximum size, in bytes, of the instances that the can hold. This field is constant. + + + Represents the default maximum number of instances that the can hold. This field is constant. + + + Represents the default maximum number of instances that the can reference per domain. This field is constant. + + + Gets the HTTP cookie header that contains the HTTP cookies that represent the instances that are associated with a specific URI. + An HTTP cookie header, with strings representing instances delimited by semicolons. + The URI of the instances desired. + + is null. + + + + + + Gets a that contains the instances that are associated with a specific URI. + A that contains the instances that are associated with a specific URI. + The URI of the instances desired. + + is null. + + + + + + Represents the maximum allowed length of a . + The maximum allowed length, in bytes, of a . + + is less than or equal to zero. + + + Gets and sets the number of instances that a can hold per domain. + The number of instances that are allowed per domain. + + is less than or equal to zero. -or- is greater than the maximum allowable number of cookies instances, 300, and is not equal to ). + + + Adds instances for one or more cookies from an HTTP cookie header to the for a specific URI. + The URI of the . + The contents of an HTTP set-cookie header as returned by a HTTP server, with instances delimited by commas. + + is null. + + is null. + One of the cookies is invalid. -or- An error occurred while adding one of the cookies to the container. + + + The exception that is thrown when an error is made adding a to a . + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with specific values of and . + The to be used. + The to be used. + + + Populates a instance with the data needed to serialize the . + The object that holds the serialized object data. The to populate with data. + The contextual information about the source or destination. A that specifies the destination for this serialization. + + + Populates a instance with the data needed to serialize the . + The to be used. + The to be used. + + + Provides storage for multiple credentials. + + + Creates a new instance of the class. + + + Adds a instance for use with SMTP to the credential cache and associates it with a host computer, port, and authentication protocol. Credentials added using this method are valid for SMTP only. This method does not work for HTTP or FTP requests. + A that identifies the host computer. + A that specifies the port to connect to on . + A that identifies the authentication scheme used when connecting to using . See Remarks. + The to add to the credential cache. + + is null. -or- is null. + + not an accepted value. See Remarks. + + is less than zero. + + + Adds a instance to the credential cache for use with protocols other than SMTP and associates it with a Uniform Resource Identifier (URI) prefix and authentication protocol. + A that specifies the URI prefix of the resources that the credential grants access to. + The authentication scheme used by the resource named in . + The to add to the credential cache. + + is null. -or- is null. + The same credentials are added more than once. + + + Gets the system credentials of the application. + An that represents the system credentials of the application. + + + + + + Gets the network credentials of the current security context. + An that represents the network credentials of the current user or application. + + + Returns the instance associated with the specified host, port, and authentication protocol. + A or, if there is no matching credential in the cache, null. + A that identifies the host computer. + A that specifies the port to connect to on . + A that identifies the authentication scheme used when connecting to . See Remarks. + + is null. -or- is null. + + not an accepted value. See Remarks. -or- is equal to the empty string (""). + + is less than zero. + + + Returns the instance associated with the specified Uniform Resource Identifier (URI) and authentication type. + A or, if there is no matching credential in the cache, null. + A that specifies the URI prefix of the resources that the credential grants access to. + The authentication scheme used by the resource named in . + + or is null. + + + Returns an enumerator that can iterate through the instance. + An for the . + + + Deletes a instance from the cache if it is associated with the specified host, port, and authentication protocol. + A that identifies the host computer. + A that specifies the port to connect to on . + A that identifies the authentication scheme used when connecting to . See Remarks. + + + Deletes a instance from the cache if it is associated with the specified Uniform Resource Identifier (URI) prefix and authentication protocol. + A that specifies the URI prefix of the resources that the credential is used for. + The authentication scheme used by the host named in . + + + Represents the file compression and decompression encoding format to be used to compress the data received in response to an . + + + Use the deflate compression-decompression algorithm. + + + Use the gZip compression-decompression algorithm. + + + Do not use compression. + + + Provides simple domain name resolution functionality. + + + Asynchronously returns the Internet Protocol (IP) addresses for the specified host. + An instance that references the asynchronous request. + The host name or IP address to resolve. + An delegate that references the method to invoke when the operation is complete. + A user-defined object that contains information about the operation. This object is passed to the delegate when the operation is complete. + + is null. + The length of is greater than 255 characters. + An error is encountered when resolving . + + is an invalid IP address. + + + Begins an asynchronous request for information about the specified DNS host name. + An instance that references the asynchronous request. + The DNS name of the host. + An delegate that references the method to invoke when the operation is complete. + A user-defined object that contains information about the operation. This object is passed to the delegate when the operation is complete. + + is null. + An error was encountered executing the DNS query. + + + + + + + + + Asynchronously resolves an IP address to an instance. + An instance that references the asynchronous request. + The IP address to resolve. + An delegate that references the method to invoke when the operation is complete. + A user-defined object that contains information about the operation. This object is passed to the delegate when the operation is complete. + + is null. + An error is encountered when resolving . + + is an invalid IP address. + + + Asynchronously resolves a host name or IP address to an instance. + An instance that references the asynchronous request. + The host name or IP address to resolve. + An delegate that references the method to invoke when the operation is complete. + A user-defined object that contains information about the operation. This object is passed to the delegate when the operation is complete. + + is null. + The length of is greater than 255 characters. + An error is encountered when resolving . + + is an invalid IP address. + + + Begins an asynchronous request to resolve a DNS host name or IP address to an instance. + An instance that references the asynchronous request. + The DNS name of the host. + An delegate that references the method to invoke when the operation is complete. + A user-defined object that contains information about the operation. This object is passed to the delegate when the operation is complete. + + is null. + The caller does not have permission to access DNS information. + + + + + + + + + Ends an asynchronous request for DNS information. + An array of type that holds the IP addresses for the host specified by the parameter of . + An instance returned by a call to the method. + + + Ends an asynchronous request for DNS information. + An object that contains DNS information about a host. + An instance that is returned by a call to the method. + + is null. + + + + + + + + Ends an asynchronous request for DNS information. + An instance that contains address information about the host. + An instance returned by a call to an method. + + is null. + + + Ends an asynchronous request for DNS information. + An object that contains DNS information about a host. + An instance that is returned by a call to the method. + + is null. + + + + + + + + Returns the Internet Protocol (IP) addresses for the specified host. + An array of type that holds the IP addresses for the host that is specified by the parameter. + The host name or IP address to resolve. + + is null. + The length of is greater than 255 characters. + An error is encountered when resolving . + + is an invalid IP address. + + + Returns the Internet Protocol (IP) addresses for the specified host as an asynchronous operation. + Returns .The task object representing the asynchronous operation. The property on the task object returns an array of type that holds the IP addresses for the host that is specified by the parameter. + The host name or IP address to resolve. + + is null. + The length of is greater than 255 characters. + An error is encountered when resolving . + + is an invalid IP address. + + + Creates an instance from the specified . + An .An instance. + An . + + is null. + An error is encountered when resolving . + + + + + + + + + Creates an instance from an IP address. + An instance. + An IP address. + + is null. + An error is encountered when resolving . + + is not a valid IP address. + + + + + + + + + Gets the DNS information for the specified DNS host name. + An object that contains host information for the address specified in . + The DNS name of the host. + + is null. + The length of is greater than 255 characters. + An error is encountered when resolving . + + + + + + + + + Resolves an IP address to an instance. + An instance that contains address information about the host specified in . + An IP address. + + is null. + An error is encountered when resolving . + + is an invalid IP address. + + + Resolves a host name or IP address to an instance. + An instance that contains address information about the host specified in . + The host name or IP address to resolve. + The parameter is null. + The length of parameter is greater than 255 characters. + An error was encountered when resolving the parameter. + The parameter is an invalid IP address. + + + Resolves an IP address to an instance as an asynchronous operation. + Returns .The task object representing the asynchronous operation. The property on the task object returns an instance that contains address information about the host specified in . + An IP address. + + is null. + An error is encountered when resolving . + + is an invalid IP address. + + + Resolves a host name or IP address to an instance as an asynchronous operation. + Returns .The task object representing the asynchronous operation. The property on the task object returns an instance that contains address information about the host specified in . + The host name or IP address to resolve. + The parameter is null. + The length of parameter is greater than 255 characters. + An error was encountered when resolving the parameter. + The parameter is an invalid IP address. + + + Gets the host name of the local computer. + A string that contains the DNS host name of the local computer. + An error is encountered when resolving the local host name. + + + + + + Resolves a DNS host name or IP address to an instance. + An instance that contains address information about the host specified in . + A DNS-style host name or IP address. + + is null. + The length of is greater than 255 characters. + An error is encountered when resolving . + + + + + + + + + Represents a network endpoint as a host name or a string representation of an IP address and a port number. + + + Initializes a new instance of the class with the host name or string representation of an IP address and a port number. + The host name or a string representation of the IP address. + The port number associated with the address, or 0 to specify any available port. is in host order. + The parameter contains an empty string. + The parameter is a null. + + is less than .-or- is greater than . + + + Initializes a new instance of the class with the host name or string representation of an IP address, a port number, and an address family. + The host name or a string representation of the IP address. + The port number associated with the address, or 0 to specify any available port. is in host order. + One of the values. + The parameter contains an empty string.-or- is . + The parameter is a null. + + is less than .-or- is greater than . + + + Gets the Internet Protocol (IP) address family. + One of the values. + + + Compares two objects. + true if the two instances are equal; otherwise, false. + A instance to compare to the current instance. + + + Returns a hash value for a . + An integer hash value for the . + + + Gets the host name or string representation of the Internet Protocol (IP) address of the host. + A host name or string representation of an IP address. + + + Gets the port number of the . + An integer value in the range 0 to 0xffff indicating the port number of the . + + + Returns the host name or string representation of the IP address and port number of the . + A string containing the address family, host name or IP address string, and the port number of the specified . + + + Controls rights to access Domain Name System (DNS) servers on the network. + + + Creates a new instance of the class that either allows unrestricted DNS access or disallows DNS access. + One of the values. + + is not a valid value. + + + Creates an identical copy of the current permission instance. + A new instance of the class that is an identical copy of the current instance. + + + Reconstructs a instance from an XML encoding. + The XML encoding to use to reconstruct the instance. + + is null. + + is not a element. + + + Creates a permission instance that is the intersection of the current permission instance and the specified permission instance. + A instance that represents the intersection of the current instance with the specified instance, or null if the intersection is empty. If both the current instance and are unrestricted, this method returns a new instance that is unrestricted; otherwise, it returns null. + The instance to intersect with the current instance. + + is neither a nor null. + + + Determines whether the current permission instance is a subset of the specified permission instance. + false if the current instance is unrestricted and is either null or unrestricted; otherwise, true. + The second instance to be tested for the subset relationship. + + is neither a nor null. + + + Checks the overall permission state of the object. + true if the instance was created with ; otherwise, false. + + + Creates an XML encoding of a instance and its current state. + A instance that contains an XML-encoded representation of the security object, including state information. + + + Creates a permission instance that is the union of the current permission instance and the specified permission instance. + A instance that represents the union of the current instance with the specified instance. If is null, this method returns a copy of the current instance. If the current instance or is unrestricted, this method returns a instance that is unrestricted; otherwise, it returns a instance that is restricted. + The instance to combine with the current instance. + + is neither a nor null. + + + Specifies permission to request information from Domain Name Servers. + + + Initializes a new instance of the class with the specified value. + One of the values. + The parameter is not a valid . + + + Creates and returns a new instance of the class. + A that corresponds to the security declaration. + + + Provides data for the event. + + + Gets the data that is downloaded by a method. + A array that contains the downloaded data. + + + + + + Represents the method that will handle the event of a . + The source of the event. + A containing event data. + + + Provides data for the event of a . + + + Gets the number of bytes received. + An value that indicates the number of bytes received. + + + Gets the total number of bytes in a data download operation. + An value that indicates the number of bytes that will be received. + + + Represents the method that will handle the event of a . + The source of the event. + A containing event data. + + + Provides data for the event. + + + Gets the data that is downloaded by a method. + A that contains the downloaded data. + + + + + + Represents the method that will handle the event of a . + The source of the event. + A that contains event data. + + + Identifies a network address. This is an abstract class. + + + Initializes a new instance of the class. + + + Gets the address family to which the endpoint belongs. + One of the values. + Any attempt is made to get or set the property when the property is not overridden in a descendant class. + + + + + + Creates an instance from a instance. + A new instance that is initialized from the specified instance. + The socket address that serves as the endpoint for a connection. + Any attempt is made to access the method when the method is not overridden in a descendant class. + + + + + + Serializes endpoint information into a instance. + A instance that contains the endpoint information. + Any attempt is made to access the method when the method is not overridden in a descendant class. + + + + + + Defines an endpoint that is authorized by a instance. + + + Determines whether the specified is equal to the current instance. + true if the specified object is equal to the current object; otherwise, false. + The specified + + + Serves as a hash function for a particular instance. + A hash code for the current object. + + + + + + Gets the DNS host name or IP address of the server that is associated with this endpoint. + A string that contains the DNS host name or IP address of the server. + + + Gets the network port number that is associated with this endpoint. + The network port number that is associated with this request, or . + + + Returns a string that represents the current instance. + A string that represents the current instance. + + + + + + Gets the transport type that is associated with this endpoint. + One of the values. + + + Provides a file system implementation of the class. + + + Initializes a new instance of the class from the specified instances of the and classes. + A object that contains the information that is required to serialize the new object. + A object that contains the source of the serialized stream that is associated with the new object. + + + Cancels a request to an Internet resource. + + + Begins an asynchronous request for a object to use to write data. + An that references the asynchronous request. + The delegate. + An object that contains state information for this request. + The property is GET and the application writes to the stream. + The stream is being used by a previous call to . + No write stream is available. + The was aborted. + + + + + + Begins an asynchronous request for a file system resource. + An that references the asynchronous request. + The delegate. + An object that contains state information for this request. + The stream is already in use by a previous call to . + The was aborted. + + + + + + Gets or sets the name of the connection group for the request. This property is reserved for future use. + The name of the connection group for the request. + + + Gets or sets the content length of the data being sent. + The number of bytes of request data being sent. + + is less than 0. + + + Gets or sets the content type of the data being sent. This property is reserved for future use. + The content type of the data being sent. + + + Gets or sets the credentials that are associated with this request. This property is reserved for future use. + An that contains the authentication credentials that are associated with this request. The default is null. + + + Ends an asynchronous request for a instance that the application uses to write data. + A object that the application uses to write data. + An that references the pending request for a stream. + + is null. + + + Ends an asynchronous request for a file system resource. + A that contains the response from the file system resource. + An that references the pending request for a response. + + is null. + + + Populates a with the data needed to serialize the target object. + The to populate with data. + A that specifies the destination for this serialization. + + + Returns a object for writing data to the file system resource. + A for writing data to the file system resource. + The request times out. + + + + + + Returns a response to a file system request. + A that contains the response from the file system resource. + The request timed out. + + + + + + Gets a collection of the name/value pairs that are associated with the request. This property is reserved for future use. + A that contains header name/value pairs associated with this request. + + + Gets or sets the protocol method used for the request. This property is reserved for future use. + The protocol method to use in this request. + The method is invalid.- or -The method is not supported.- or -Multiple methods were specified. + + + Gets or sets a value that indicates whether to preauthenticate a request. This property is reserved for future use. + true to preauthenticate; otherwise, false. + + + Gets or sets the network proxy to use for this request. This property is reserved for future use. + An that indicates the network proxy to use for this request. + + + Gets the Uniform Resource Identifier (URI) of the request. + A that contains the URI of the request. + + + Populates a object with the required data to serialize the . + A that holds the serialized data for the . + A that contains the destination of the serialized stream that is associated with the new . + + + Gets or sets the length of time until the request times out. + The time, in milliseconds, until the request times out, or the value to indicate that the request does not time out. + The value specified is less than or equal to zero and is not . + + + Always throws a . + Always throws a . + Default credentials are not supported for file Uniform Resource Identifiers (URIs). + + + Provides a file system implementation of the class. + + + Initializes a new instance of the class from the specified instances of the and classes. + A instance that contains the information required to serialize the new instance. + An instance of the class that contains the source of the serialized stream associated with the new instance. + + + Closes the response stream. + + + Gets the length of the content in the file system resource. + The number of bytes returned from the file system resource. + + + Gets the content type of the file system resource. + The value "binary/octet-stream". + + + Populates a with the data needed to serialize the target object. + The to populate with data. + A that specifies the destination for this serialization. + + + Returns the data stream from the file system resource. + A for reading data from the file system resource. + + + Gets a collection of header name/value pairs associated with the response. + A that contains the header name/value pairs associated with the response. + + + Gets the URI of the file system resource that provided the response. + A that contains the URI of the file system resource that provided the response. + + + Gets a value that indicates whether the property is supported by the instance. + Returns .true if the property is supported by the instance; otherwise, false. + + + Populates a instance with the data needed to serialize the . + A , which will hold the serialized data for the . + A containing the destination of the serialized stream associated with the new . + + + Specifies the status codes returned for a File Transfer Protocol (FTP) operation. + + + Specifies that a user account on the server is required. + + + Specifies that an error occurred that prevented the request action from completing. + + + Specifies that the requested action cannot be taken because the specified page type is unknown. Page types are described in RFC 959 Section 3.1.2.3 + + + Specifies that the requested action cannot be performed on the specified file. + + + Specifies that the requested action cannot be performed on the specified file because the file is not available. + + + Specifies that the requested action cannot be performed on the specified file because the file is not available or is being used. + + + Specifies that the requested action cannot be performed because there is not enough space on the server. + + + Specifies that one or more command arguments has a syntax error. + + + Specifies that the sequence of commands is not in the correct order. + + + Specifies that the data connection cannot be opened. + + + Specifies that the server is closing the control connection. + + + Specifies that the server is closing the data connection and that the requested file action was successful. + + + Specifies that the command is not implemented by the server because it is not needed. + + + Specifies that the command is not implemented by the FTP server. + + + Specifies that the command completed successfully. + + + Specifies that the command has a syntax error or is not a command recognized by the server. + + + Specifies that the connection has been closed. + + + Specifies that the data connection is already open and the requested transfer is starting. + + + Specifies the status of a directory. + + + Specifies that the server is entering passive mode. + + + Specifies that the requested action cannot be performed. + + + Specifies that the requested file action completed successfully. + + + Specifies that the requested file action requires additional information. + + + Specifies the status of a file. + + + Specifies that the user is logged in and can send commands. + + + Specifies that the server requires a login account to be supplied. + + + Specifies that login information must be sent to the server. + + + Specifies that the server is opening the data connection. + + + Specifies that the requested path name was created. + + + Specifies that the response contains a restart marker reply. The text of the description that accompanies this status contains the user data stream marker and the server marker. + + + Specifies that the server expects a password to be supplied. + + + Specifies that the server is ready for a user login operation. + + + Specifies that the server accepts the authentication mechanism specified by the client, and the exchange of security data is complete. + + + Specifies that the service is not available. + + + Specifies that the service is not available now; try your request later. + + + Specifies the system type name using the system names published in the Assigned Numbers document published by the Internet Assigned Numbers Authority. + + + Included for completeness, this value is never returned by servers. + + + Implements a File Transfer Protocol (FTP) client. + + + Terminates an asynchronous FTP operation. + + + + + + + + + Begins asynchronously opening a request's content stream for writing. + An instance that indicates the status of the operation. + An delegate that references the method to invoke when the operation is complete. + A user-defined object that contains information about the operation. This object is passed to the delegate when the operation completes. + A previous call to this method or has not yet completed. + A connection to the FTP server could not be established. + The property is not set to . + + + + + + + + + + + Begins sending a request and receiving a response from an FTP server asynchronously. + An instance that indicates the status of the operation. + An delegate that references the method to invoke when the operation is complete. + A user-defined object that contains information about the operation. This object is passed to the delegate when the operation completes. + + or has already been called for this instance. + + + + + + + + + + + Gets or sets the certificates used for establishing an encrypted connection to the FTP server. + An object that contains the client certificates. + The value specified for a set operation is null. + + + Gets or sets the name of the connection group that contains the service point used to send the current request. + A value that contains a connection group name. + A new value was specified for this property for a request that is already in progress. + + + Gets or sets a value that is ignored by the class. + An value that should be ignored. + + + Gets or sets a byte offset into the file being downloaded by this request. + An instance that specifies the file offset, in bytes. The default value is zero. + A new value was specified for this property for a request that is already in progress. + The value specified for this property is less than zero. + + + Always throws a . + Always throws a . + Content type information is not supported for FTP. + + + Gets or sets the credentials used to communicate with the FTP server. + An instance; otherwise, null if the property has not been set. + The value specified for a set operation is null. + An of a type other than was specified for a set operation. + A new value was specified for this property for a request that is already in progress. + + + + + + Defines the default cache policy for all FTP requests. + A that defines the cache policy for FTP requests. + The caller tried to set this property to null. + + + Gets or sets a that specifies that an SSL connection should be used. + true if control and data transmissions are encrypted; otherwise, false. The default value is false. + The connection to the FTP server has already been established. + + + Ends a pending asynchronous operation started with . + A writable instance associated with this instance. + The object that was returned when the operation started. + + is null. + + was not obtained by calling . + This method was already called for the operation identified by . + + + + + + + + + Ends a pending asynchronous operation started with . + A reference that contains an instance. This object contains the FTP server's response to the request. + The that was returned when the operation started. + + is null. + + was not obtained by calling . + This method was already called for the operation identified by . + An error occurred using an HTTP proxy. + + + + + + + + + Retrieves the stream used to upload data to an FTP server. + A writable instance used to store data to be sent to the server by the current request. + + has been called and has not completed. - or -An HTTP proxy is enabled, and you attempted to use an FTP command other than , , or . + A connection to the FTP server could not be established. + The property is not set to or . + + + + + + + + + + + Returns the FTP server response. + A reference that contains an instance. This object contains the FTP server's response to the request. + + or has already been called for this instance.- or -An HTTP proxy is enabled, and you attempted to use an FTP command other than , , or . + + is set to true, but the server does not support this feature.- or -A was specified and the timeout has expired. + + + + + + + + + + + Gets an empty object. + An empty object. + + + + + + + + + Gets or sets a value that specifies whether the control connection to the FTP server is closed after the request completes. + true if the connection to the server should not be destroyed; otherwise, false. The default value is true. + A new value was specified for this property for a request that is already in progress. + + + Gets or sets the command to send to the FTP server. + A value that contains the FTP command to send to the server. The default value is . + A new value was specified for this property for a request that is already in progress. + The method is invalid.- or -The method is not supported.- or -Multiple methods were specified. + + + Always throws a . + Always throws a . + Preauthentication is not supported for FTP. + + + Gets or sets the proxy used to communicate with the FTP server. + An instance responsible for communicating with the FTP server. + This property cannot be set to null. + A new value was specified for this property for a request that is already in progress. + + + + + + Gets or sets a time-out when reading from or writing to a stream. + The number of milliseconds before the reading or writing times out. The default value is 300,000 milliseconds (5 minutes). + The request has already been sent. + The value specified for a set operation is less than or equal to zero and is not equal to . + + + Gets or sets the new name of a file being renamed. + The new name of the file being renamed. + The value specified for a set operation is null or an empty string. + A new value was specified for this property for a request that is already in progress. + + + Gets the URI requested by this instance. + A instance that identifies a resource that is accessed using the File Transfer Protocol. + + + Gets the object used to connect to the FTP server. + A object that can be used to customize connection behavior. + + + + + + + Gets or sets the number of milliseconds to wait for a request. + An value that contains the number of milliseconds to wait before a request times out. The default value is . + The value specified is less than zero and is not . + A new value was specified for this property for a request that is already in progress. + + + Gets or sets a value that specifies the data type for file transfers. + true to indicate to the server that the data to be transferred is binary; false to indicate that the data is text. The default value is true. + A new value was specified for this property for a request that is already in progress. + + + Always throws a . + Always throws a . + Default credentials are not supported for FTP. + + + Gets or sets the behavior of a client application's data transfer process. + false if the client application's data transfer process listens for a connection on the data port; otherwise, true if the client should initiate a connection on the data port. The default value is true. + A new value was specified for this property for a request that is already in progress. + + + Encapsulates a File Transfer Protocol (FTP) server's response to a request. + + + Gets the message sent by the FTP server when a connection is established prior to logon. + A that contains the banner message sent by the server; otherwise, if no message is sent. + + + Frees the resources held by the response. + + + + + + + + Gets the length of the data received from the FTP server. + An value that contains the number of bytes of data received from the FTP server. + + + Gets the message sent by the server when the FTP session is ending. + A that contains the exit message sent by the server; otherwise, if no message is sent. + + + Retrieves the stream that contains response data sent from an FTP server. + A readable instance that contains data returned with the response; otherwise, if no response data was returned by the server. + The response did not return a data stream. + + + + + + + + Gets an empty object. + An empty object. + + + Gets the date and time that a file on an FTP server was last modified. + A that contains the last modified date and time for a file. + + + + + + Gets the URI that sent the response to the request. + A instance that identifies the resource associated with this response. + + + Gets the most recent status code sent from the FTP server. + An value that indicates the most recent status code returned with this response. + + + Gets text that describes a status code sent from the FTP server. + A instance that contains the status code and message returned with this response. + + + Gets a value that indicates whether the property is supported by the instance. + Returns .true if the property is supported by the instance; otherwise, false. + + + Gets the message sent by the FTP server when authentication is complete. + A that contains the welcome message sent by the server; otherwise, if no message is sent. + + + Contains a global default proxy instance for all HTTP requests. + + + Initializes a new instance of the class. + + + Returns an empty proxy instance. + An that contains no information. + + + Gets or sets the global HTTP proxy. + An that every call to uses. + The value specified for a set operation was null. + The caller does not have permission for the requested operation. + + + Represents the method that notifies callers when a continue response is received by the client. + The numeric value of the HTTP status from the server. + The headers returned with the 100-continue response from the server. + + + Provides a simple, programmatically controlled HTTP protocol listener. This class cannot be inherited. + + + Initializes a new instance of the class. + This class cannot be used on the current operating system. Windows Server 2003 or Windows XP SP2 is required to use instances of this class. + + + Shuts down the object immediately, discarding all currently queued requests. + + + + + + + + Gets or sets the scheme used to authenticate clients. + A bitwise combination of enumeration values that indicates how clients are to be authenticated. The default value is . + This object has been closed. + + + Gets or sets the delegate called to determine the protocol used to authenticate clients. + An delegate that invokes the method used to select an authentication protocol. The default value is null. + This object has been closed. + + + Begins asynchronously retrieving an incoming request. + An object that indicates the status of the asynchronous operation. + An delegate that references the method to invoke when a client request is available. + A user-defined object that contains information about the operation. This object is passed to the delegate when the operation completes. + A Win32 function call failed. Check the exception's property to determine the cause of the exception. + This object has not been started or is currently stopped. + This object is closed. + + + Shuts down the . + + + + + + + + Gets a default list of Service Provider Names (SPNs) as determined by registered prefixes. + A that contains a list of SPNs. + + + Completes an asynchronous operation to retrieve an incoming client request. + An object that represents the client request. + An object that was obtained when the asynchronous operation was started. + + was not obtained by calling the method. + + is null. + The method was already called for the specified object. + This object is closed. + + + Get or set the to use for extended protection for a session. + A that specifies the policy to use for extended protection. + An attempt was made to set the property, but the property was not null. + An attempt was made to set the property to null. + An attempt was made to set the property after the method was already called. + This object is closed. + The property was set to on a platform that does not support extended protection. + + + Get or set the delegate called to determine the to use for each request. + A that specifies the policy to use for extended protection. + An attempt was made to set the property, but the property must be null. + An attempt was made to set the property to null. + An attempt was made to set the property after the method was already called. + This object is closed. + An attempt was made to set the property on a platform that does not support extended protection. + + + Waits for an incoming request and returns when one is received. + An object that represents a client request. + A Win32 function call failed. Check the exception's property to determine the cause of the exception. + This object has not been started or is currently stopped.-or-The does not have any Uniform Resource Identifier (URI) prefixes to respond to. See Remarks. + This object is closed. + + + Waits for an incoming request as an asynchronous operation. + Returns .The task object representing the asynchronous operation. The property on the task object returns an object that represents a client request. + + + Gets or sets a value that specifies whether your application receives exceptions that occur when an sends the response to the client. + true if this should not return exceptions that occur when sending the response to the client; otherwise false. The default value is false. + This object has been closed. + + + Gets a value that indicates whether has been started. + true if the was started; otherwise, false. + + + Gets a value that indicates whether can be used with the current operating system. + true if is supported; otherwise, false. + + + Gets the Uniform Resource Identifier (URI) prefixes handled by this object. + An that contains the URI prefixes that this object is configured to handle. + This object has been closed. + + + + + + + + Gets or sets the realm, or resource partition, associated with this object. + A value that contains the name of the realm associated with the object. + This object has been closed. + + + Allows this instance to receive incoming requests. + A Win32 function call failed. Check the exception's property to determine the cause of the exception. + This object is closed. + + + + + + + + Causes this instance to stop receiving incoming requests. + This object has been closed. + + + + + + + + Releases the resources held by this object. + + + The timeout manager for this instance. + Returns .The timeout manager for this instance. + + + Gets or sets a value that controls whether, when NTLM is used, additional requests using the same Transmission Control Protocol (TCP) connection are required to authenticate. + true if the of the first request will be used for subsequent requests on the same connection; otherwise, false. The default value is false. + This object has been closed. + + + A delegate called to determine the to use for each request. + An object that specifies the extended protection policy to use for this request. + The to determine the extended protection policy that the instance will use to provide extended protection. + + + Holds the user name and password from a basic authentication request. + + + Initializes a new instance of the class using the specified user name and password. + The user name. + The password. + + + Indicates the password from a basic authentication attempt. + A that holds the password. + + + Provides access to the request and response objects used by the class. This class cannot be inherited. + + + Accept a WebSocket connection as an asynchronous operation. + Returns .The task object representing the asynchronous operation. The property on the task object returns an object. + The supported WebSocket sub-protocol. + + is an empty string-or- contains illegal characters. + An error occurred when sending the response to complete the WebSocket handshake. + + + Accept a WebSocket connection specifying the supported WebSocket sub-protocol, receive buffer size, and WebSocket keep-alive interval as an asynchronous operation. + Returns .The task object representing the asynchronous operation. The property on the task object returns an object. + The supported WebSocket sub-protocol. + The receive buffer size in bytes. + The WebSocket protocol keep-alive interval in milliseconds. + + is an empty string-or- contains illegal characters. + + is too small.-or- is less than 16 bytes-or- is greater than 64K bytes. + An error occurred when sending the response to complete the WebSocket handshake. + + + Accept a WebSocket connection specifying the supported WebSocket sub-protocol, receive buffer size, WebSocket keep-alive interval, and the internal buffer as an asynchronous operation. + Returns .The task object representing the asynchronous operation. The property on the task object returns an object. + The supported WebSocket sub-protocol. + The receive buffer size in bytes. + The WebSocket protocol keep-alive interval in milliseconds. + An internal buffer to use for this operation. + + is an empty string-or- contains illegal characters. + + is too small.-or- is less than 16 bytes-or- is greater than 64K bytes. + An error occurred when sending the response to complete the WebSocket handshake. + + + Accept a WebSocket connection specifying the supported WebSocket sub-protocol and WebSocket keep-alive interval as an asynchronous operation. + Returns .The task object representing the asynchronous operation. The property on the task object returns an object. + The supported WebSocket sub-protocol. + The WebSocket protocol keep-alive interval in milliseconds. + + is an empty string-or- contains illegal characters. + + is too small. + An error occurred when sending the response to complete the WebSocket handshake. + + + Gets the that represents a client's request for a resource. + An object that represents the client request. + + + Gets the object that will be sent to the client in response to the client's request. + An object used to send a response back to the client. + + + Gets an object used to obtain identity, authentication information, and security roles for the client whose request is represented by this object. + An object that describes the client, or null if the that supplied this does not require authentication. + + + The exception that is thrown when an error occurs processing an HTTP request. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified error code. + A value that identifies the error that occurred. + + + Initializes a new instance of the class using the specified error code and message. + A value that identifies the error that occurred. + A that describes the error that occurred. + + + Initializes a new instance of the class from the specified instances of the and classes. + A object that contains the information required to deserialize the new object. + A object. + + + Gets a value that identifies the error that occurred. + A value. + + + Represents the collection used to store Uniform Resource Identifier (URI) prefixes for objects. + + + Adds a Uniform Resource Identifier (URI) prefix to the collection. + A that identifies the URI information that is compared in incoming requests. The prefix must be terminated with a forward slash ("/"). + + is null. + + does not use the http:// or https:// scheme. These are the only schemes supported for objects. -or- is not a correctly formatted URI prefix. Make sure the string is terminated with a "/". + The associated with this collection is closed. + A Windows function call failed. Check the exception's property to determine the cause of the exception. This exception is thrown if another has already added the prefix . + + + + + + + + + Removes all the Uniform Resource Identifier (URI) prefixes from the collection. + A Windows function call failed. Check the exception's property to determine the cause of the exception. + The associated with this collection is closed. + + + + + + + + Returns a value that indicates whether the specified prefix is contained in the collection. + true if this collection contains the prefix specified by ; otherwise, false. + A that contains the Uniform Resource Identifier (URI) prefix to test. + + is null. + + + Copies the contents of an to the specified array. + The one dimensional that receives the Uniform Resource Identifier (URI) prefix strings in this collection. + The zero-based index in at which copying begins. + + has more than one dimension. + This collection contains more elements than can be stored in starting at . + The associated with this collection is closed. + + cannot store string values. + + + Copies the contents of an to the specified string array. + The one dimensional string array that receives the Uniform Resource Identifier (URI) prefix strings in this collection. + The zero-based index in at which copying begins. + + has more than one dimension. + This collection contains more elements than can be stored in starting at . + The associated with this collection is closed. + + + Gets the number of prefixes contained in the collection. + An that contains the number of prefixes in this collection. + + + Returns an object that can be used to iterate through the collection. + An object that implements the interface and provides access to the strings in this collection. + + + Gets a value that indicates whether access to the collection is read-only. + Always returns false. + + + Gets a value that indicates whether access to the collection is synchronized (thread-safe). + This property always returns false. + + + Removes the specified Uniform Resource Identifier (URI) from the list of prefixes handled by the object. + true if the was found in the and removed; otherwise false. + A that contains the URI prefix to remove. + + is null. + A Windows function call failed. To determine the cause of the exception, check the exception's error code. + The associated with this collection is closed. + + + + + + + + Returns an object that can be used to iterate through the collection. + An object that implements the interface and provides access to the strings in this collection. + + + Describes an incoming HTTP request to an object. This class cannot be inherited. + + + Gets the MIME types accepted by the client. + A array that contains the type names specified in the request's Accept header or null if the client request did not include an Accept header. + + + Begins an asynchronous request for the client's X.509 v.3 certificate. + An that indicates the status of the operation. + An delegate that references the method to invoke when the operation is complete. + A user-defined object that contains information about the operation. This object is passed to the callback delegate when the operation completes. + + + Gets an error code that identifies a problem with the provided by the client. + An value that contains a Windows error code. + The client certificate has not been initialized yet by a call to the or methods-or - The operation is still in progress. + + + + + + Gets the content encoding that can be used with data sent with the request + An object suitable for use with the data in the property. + + + Gets the length of the body data included in the request. + The value from the request's Content-Length header. This value is -1 if the content length is not known. + + + Gets the MIME type of the body data included in the request. + A that contains the text of the request's Content-Type header. + + + Gets the cookies sent with the request. + A that contains cookies that accompany the request. This property returns an empty collection if the request does not contain cookies. + + + Ends an asynchronous request for the client's X.509 v.3 certificate. + The object that is returned when the operation started. + The pending request for the certificate. + + is null. + + was not obtained by calling + This method was already called for the operation identified by . + + + Retrieves the client's X.509 v.3 certificate. + A object that contains the client's X.509 v.3 certificate. + A call to this method to retrieve the client's X.509 v.3 certificate is in progress and therefore another call to this method cannot be made. + + + Retrieves the client's X.509 v.3 certificate as an asynchronous operation. + Returns .The task object representing the asynchronous operation. The property on the task object returns a object that contains the client's X.509 v.3 certificate. + + + Gets a value that indicates whether the request has associated body data. + true if the request has associated body data; otherwise, false. + + + + + + Gets the collection of header name/value pairs sent in the request. + A that contains the HTTP headers included in the request. + + + + + + Gets the HTTP method specified by the client. + A that contains the method used in the request. + + + Gets a stream that contains the body data sent by the client. + A readable object that contains the bytes sent by the client in the body of the request. This property returns if no data is sent with the request. + + + Gets a value that indicates whether the client sending this request is authenticated. + true if the client was authenticated; otherwise, false. + + + Gets a value that indicates whether the request is sent from the local computer. + true if the request originated on the same computer as the object that provided the request; otherwise, false. + + + Gets a value that indicates whether the TCP connection used to send the request is using the Secure Sockets Layer (SSL) protocol. + true if the TCP connection is using SSL; otherwise, false. + + + Gets a value that indicates whether the TCP connection was a WebSocket request. + Returns .true if the TCP connection is a WebSocket request; otherwise, false. + + + Gets a value that indicates whether the client requests a persistent connection. + true if the connection should be kept open; otherwise, false. + + + + + + Get the server IP address and port number to which the request is directed. + An that represents the IP address that the request is sent to. + + + + + + Gets the HTTP version used by the requesting client. + A that identifies the client's version of HTTP. + + + Gets the query string included in the request. + A object that contains the query data included in the request . + + + Gets the URL information (without the host and port) requested by the client. + A that contains the raw URL for this request. + + + Gets the client IP address and port number from which the request originated. + An that represents the IP address and port number from which the request originated. + + + + + + Gets the request identifier of the incoming HTTP request. + A object that contains the identifier of the HTTP request. + + + Gets the Service Provider Name (SPN) that the client sent on the request. + A that contains the SPN the client sent on the request. + + + Gets the for the client request. + A object for the client request. + + + Gets the object requested by the client. + A object that identifies the resource requested by the client. + + + Gets the Uniform Resource Identifier (URI) of the resource that referred the client to the server. + A object that contains the text of the request's header, or null if the header was not included in the request. + + + Gets the user agent presented by the client. + A object that contains the text of the request's User-Agent header. + + + Gets the server IP address and port number to which the request is directed. + A that contains the host address information. + + + Gets the DNS name and, if provided, the port number specified by the client. + A value that contains the text of the request's Host header. + + + Gets the natural languages that are preferred for the response. + A array that contains the languages specified in the request's header or null if the client request did not include an header. + + + Represents a response to a request being handled by an object. + + + Closes the connection to the client without sending a response. + + + + + + + + Adds the specified header and value to the HTTP headers for this response. + The name of the HTTP header to set. + The value for the header. + + is null or an empty string (""). + You are not allowed to specify a value for the specified header.-or- or contains invalid characters. + The length of is greater than 65,535 characters. + + + Adds the specified to the collection of cookies for this response. + The to add to the collection to be sent with this response + + is null. + + + Appends a value to the specified HTTP header to be sent with this response. + The name of the HTTP header to append to. + The value to append to the header. + + is null or an empty string ("").-or-You are not allowed to specify a value for the specified header.-or- or contains invalid characters. + The length of is greater than 65,535 characters. + + + Sends the response to the client and releases the resources held by this instance. + + + + + + + + Returns the specified byte array to the client and releases the resources held by this instance. + A array that contains the response to send to the client. + true to block execution while flushing the stream to the client; otherwise, false. + + is null. + This object is closed. + + + + + + + + Gets or sets the for this response's . + An object suitable for use with the data in the property, or null if no encoding is specified. + + + Gets or sets the number of bytes in the body data included in the response. + The value of the response's Content-Length header. + The value specified for a set operation is less than zero. + The response is already being sent. + This object is closed. + + + Gets or sets the MIME type of the content returned. + A instance that contains the text of the response's Content-Type header. + The value specified for a set operation is null. + The value specified for a set operation is an empty string (""). + This object is closed. + + + + + + Gets or sets the collection of cookies returned with the response. + A that contains cookies to accompany the response. The collection is empty if no cookies have been added to the response. + + + Copies properties from the specified to this response. + The instance to copy. + + + Gets or sets the collection of header name/value pairs returned by the server. + A instance that contains all the explicitly set HTTP headers to be included in the response. + The instance specified for a set operation is not valid for a response. + + + + + + Gets or sets a value indicating whether the server requests a persistent connection. + true if the server requests a persistent connection; otherwise, false. The default is true. + This object is closed. + + + Gets a object to which a response can be written. + A object to which a response can be written. + This object is closed. + + + Gets or sets the HTTP version used for the response. + A object indicating the version of HTTP used when responding to the client. Note that this property is now obsolete. + The value specified for a set operation is null. + The value specified for a set operation does not have its property set to 1 or does not have its property set to either 0 or 1. + This object is closed. + + + Configures the response to redirect the client to the specified URL. + The URL that the client should use to locate the requested resource. + + + Gets or sets the value of the HTTP Location header in this response. + A that contains the absolute URL to be sent to the client in the Location header. + The value specified for a set operation is an empty string (""). + This object is closed. + + + Gets or sets whether the response uses chunked transfer encoding. + true if the response is set to use chunked transfer encoding; otherwise, false. The default is false. + + + Adds or updates a in the collection of cookies sent with this response. + A for this response. + + is null. + The cookie already exists in the collection and could not be replaced. + + + Gets or sets the HTTP status code to be returned to the client. + An value that specifies the HTTP status code for the requested resource. The default is , indicating that the server successfully processed the client's request and included the requested resource in the response body. + This object is closed. + The value specified for a set operation is not valid. Valid values are between 100 and 999 inclusive. + + + Gets or sets a text description of the HTTP status code returned to the client. + The text description of the HTTP status code returned to the client. The default is the RFC 2616 description for the property value, or an empty string ("") if an RFC 2616 description does not exist. + The value specified for a set operation is null. + The value specified for a set operation contains non-printable characters. + + + Releases all resources used by the . + + + The timeout manager to use for an object. + + + Gets or sets the time, in seconds, allowed for the to drain the entity body on a Keep-Alive connection. + Returns .The time, in seconds, allowed for the to drain the entity body on a Keep-Alive connection. + + + Gets or sets the time, in seconds, allowed for the request entity body to arrive. + Returns .The time, in seconds, allowed for the request entity body to arrive. + + + Gets or sets the time, in seconds, allowed for the to parse the request header. + Returns .The time, in seconds, allowed for the to parse the request header. + + + Gets or sets the time, in seconds, allowed for an idle connection. + Returns .The time, in seconds, allowed for an idle connection. + + + Gets or sets the minimum send rate, in bytes-per-second, for the response. + Returns .The minimum send rate, in bytes-per-second, for the response. + + + Gets or sets the time, in seconds, allowed for the request to remain in the request queue before the picks it up. + Returns .The time, in seconds, allowed for the request to remain in the request queue before the picks it up. + + + The HTTP headers that may be specified in a client request. + + + The Accept header, which specifies the MIME types that are acceptable for the response. + + + The Accept-Charset header, which specifies the character sets that are acceptable for the response. + + + The Accept-Encoding header, which specifies the content encodings that are acceptable for the response. + + + The Accept-Langauge header, which specifies that natural languages that are preferred for the response. + + + The Allow header, which specifies the set of HTTP methods supported. + + + The Authorization header, which specifies the credentials that the client presents in order to authenticate itself to the server. + + + The Cache-Control header, which specifies directives that must be obeyed by all cache control mechanisms along the request/response chain. + + + The Connection header, which specifies options that are desired for a particular connection. + + + The Content-Encoding header, which specifies the encodings that have been applied to the accompanying body data. + + + The Content-Langauge header, which specifies the natural language(s) of the accompanying body data. + + + The Content-Length header, which specifies the length, in bytes, of the accompanying body data. + + + The Content-Location header, which specifies a URI from which the accompanying body may be obtained. + + + The Content-MD5 header, which specifies the MD5 digest of the accompanying body data, for the purpose of providing an end-to-end message integrity check. + + + The Content-Range header, which specifies where in the full body the accompanying partial body data should be applied. + + + The Content-Type header, which specifies the MIME type of the accompanying body data. + + + The Cookie header, which specifies cookie data presented to the server. + + + The Date header, which specifies the date and time at which the request originated. + + + The Expect header, which specifies particular server behaviors that are required by the client. + + + The Expires header, which specifies the date and time after which the accompanying body data should be considered stale. + + + The From header, which specifies an Internet E-mail address for the human user who controls the requesting user agent. + + + The Host header, which specifies the host name and port number of the resource being requested. + + + The If-Match header, which specifies that the requested operation should be performed only if the client's cached copy of the indicated resource is current. + + + The If-Modified-Since header, which specifies that the requested operation should be performed only if the requested resource has been modified since the indicated data and time. + + + The If-None-Match header, which specifies that the requested operation should be performed only if none of client's cached copies of the indicated resources are current. + + + The If-Range header, which specifies that only the specified range of the requested resource should be sent, if the client's cached copy is current. + + + The If-Unmodified-Since header, which specifies that the requested operation should be performed only if the requested resource has not been modified since the indicated date and time. + + + The Keep-Alive header, which specifies a parameter used into order to maintain a persistent connection. + + + The Last-Modified header, which specifies the date and time at which the accompanying body data was last modified. + + + The Max-Forwards header, which specifies an integer indicating the remaining number of times that this request may be forwarded. + + + The Pragma header, which specifies implementation-specific directives that might apply to any agent along the request/response chain. + + + The Proxy-Authorization header, which specifies the credentials that the client presents in order to authenticate itself to a proxy. + + + The Range header, which specifies the the sub-range(s) of the response that the client requests be returned in lieu of the entire response. + + + The Referer header, which specifies the URI of the resource from which the request URI was obtained. + + + The TE header, which specifies the transfer encodings that are acceptable for the response. + + + The Trailer header, which specifies the header fields present in the trailer of a message encoded with chunked transfer-coding. + + + The Transfer-Encoding header, which specifies what (if any) type of transformation that has been applied to the message body. + + + The Translate header, a Microsoft extension to the HTTP specification used in conjunction with WebDAV functionality. + + + The Upgrade header, which specifies additional communications protocols that the client supports. + + + The User-Agent header, which specifies information about the client agent. + + + The Via header, which specifies intermediate protocols to be used by gateway and proxy agents. + + + The Warning header, which specifies additional information about that status or transformation of a message that might not be reflected in the message. + + + The HTTP headers that can be specified in a server response. + + + The Accept-Ranges header, which specifies the range that is accepted by the server. + + + The Age header, which specifies the time, in seconds, since the response was generated by the originating server. + + + The Allow header, which specifies the set of HTTP methods that are supported. + + + The Cache-Control header, which specifies caching directives that must be obeyed by all caching mechanisms along the request/response chain. + + + The Connection header, which specifies options that are desired for a particular connection. + + + The Content-Encoding header, which specifies the encodings that have been applied to the accompanying body data. + + + The Content-Langauge header, which specifies the natural language or languages of the accompanying body data. + + + The Content-Length header, which specifies the length, in bytes, of the accompanying body data. + + + The Content-Location header, which specifies a URI from which the accompanying body can be obtained. + + + The Content-MD5 header, which specifies the MD5 digest of the accompanying body data, for the purpose of providing an end-to-end message integrity check. + + + The Range header, which specifies the subrange or subranges of the response that the client requests be returned in lieu of the entire response. + + + The Content-Type header, which specifies the MIME type of the accompanying body data. + + + The Date header, which specifies the date and time at which the response originated. + + + The Etag header, which specifies the current value for the requested variant. + + + The Expires header, which specifies the date and time after which the accompanying body data should be considered stale. + + + The Keep-Alive header, which specifies a parameter to be used to maintain a persistent connection. + + + The Last-Modified header, which specifies the date and time at which the accompanying body data was last modified. + + + The Location header, which specifies a URI to which the client is redirected to obtain the requested resource. + + + The Pragma header, which specifies implementation-specific directives that might apply to any agent along the request/response chain. + + + The Proxy-Authenticate header, which specifies that the client must authenticate itself to a proxy. + + + The Retry-After header, which specifies a time (in seconds), or a date and time, after which the client can retry its request. + + + The Server header, which specifies information about the originating server agent. + + + The Set-Cookie header, which specifies cookie data that is presented to the client. + + + The Trailer header, which specifies that the indicated header fields are present in the trailer of a message that is encoded with chunked transfer-coding. + + + The Transfer-Encoding header, which specifies what (if any) type of transformation has been applied to the message body. + + + The Upgrade header, which specifies additional communications protocols that the client supports. + + + The Vary header, which specifies the request headers that are used to determine whether a cached response is fresh. + + + The Via header, which specifies intermediate protocols to be used by gateway and proxy agents. + + + The Warning header, which specifies additional information about that status or transformation of a message that might not be reflected in the message. + + + The WWW-Authenticate header, which specifies that the client must authenticate itself to the server. + + + Contains the values of status codes defined for HTTP. + + + Equivalent to HTTP status 202. indicates that the request has been accepted for further processing. + + + Equivalent to HTTP status 300. indicates that the requested information has multiple representations. The default action is to treat this status as a redirect and follow the contents of the Location header associated with this response. + + + Equivalent to HTTP status 502. indicates that an intermediate proxy server received a bad response from another proxy or the origin server. + + + Equivalent to HTTP status 400. indicates that the request could not be understood by the server. is sent when no other error is applicable, or if the exact error is unknown or does not have its own error code. + + + Equivalent to HTTP status 409. indicates that the request could not be carried out because of a conflict on the server. + + + Equivalent to HTTP status 100. indicates that the client can continue with its request. + + + Equivalent to HTTP status 201. indicates that the request resulted in a new resource created before the response was sent. + + + Equivalent to HTTP status 417. indicates that an expectation given in an Expect header could not be met by the server. + + + Equivalent to HTTP status 403. indicates that the server refuses to fulfill the request. + + + Equivalent to HTTP status 302. indicates that the requested information is located at the URI specified in the Location header. The default action when this status is received is to follow the Location header associated with the response. When the original request method was POST, the redirected request will use the GET method. + + + Equivalent to HTTP status 504. indicates that an intermediate proxy server timed out while waiting for a response from another proxy or the origin server. + + + Equivalent to HTTP status 410. indicates that the requested resource is no longer available. + + + Equivalent to HTTP status 505. indicates that the requested HTTP version is not supported by the server. + + + Equivalent to HTTP status 500. indicates that a generic error has occurred on the server. + + + Equivalent to HTTP status 411. indicates that the required Content-length header is missing. + + + Equivalent to HTTP status 405. indicates that the request method (POST or GET) is not allowed on the requested resource. + + + Equivalent to HTTP status 301. indicates that the requested information has been moved to the URI specified in the Location header. The default action when this status is received is to follow the Location header associated with the response. When the original request method was POST, the redirected request will use the GET method. + + + Equivalent to HTTP status 301. indicates that the requested information has been moved to the URI specified in the Location header. The default action when this status is received is to follow the Location header associated with the response. + + + Equivalent to HTTP status 300. indicates that the requested information has multiple representations. The default action is to treat this status as a redirect and follow the contents of the Location header associated with this response. + + + Equivalent to HTTP status 204. indicates that the request has been successfully processed and that the response is intentionally blank. + + + Equivalent to HTTP status 203. indicates that the returned metainformation is from a cached copy instead of the origin server and therefore may be incorrect. + + + Equivalent to HTTP status 406. indicates that the client has indicated with Accept headers that it will not accept any of the available representations of the resource. + + + Equivalent to HTTP status 404. indicates that the requested resource does not exist on the server. + + + Equivalent to HTTP status 501. indicates that the server does not support the requested function. + + + Equivalent to HTTP status 304. indicates that the client's cached copy is up to date. The contents of the resource are not transferred. + + + Equivalent to HTTP status 200. indicates that the request succeeded and that the requested information is in the response. This is the most common status code to receive. + + + Equivalent to HTTP status 206. indicates that the response is a partial response as requested by a GET request that includes a byte range. + + + Equivalent to HTTP status 402. is reserved for future use. + + + Equivalent to HTTP status 412. indicates that a condition set for this request failed, and the request cannot be carried out. Conditions are set with conditional request headers like If-Match, If-None-Match, or If-Unmodified-Since. + + + Equivalent to HTTP status 407. indicates that the requested proxy requires authentication. The Proxy-authenticate header contains the details of how to perform the authentication. + + + Equivalent to HTTP status 302. indicates that the requested information is located at the URI specified in the Location header. The default action when this status is received is to follow the Location header associated with the response. When the original request method was POST, the redirected request will use the GET method. + + + Equivalent to HTTP status 307. indicates that the request information is located at the URI specified in the Location header. The default action when this status is received is to follow the Location header associated with the response. When the original request method was POST, the redirected request will also use the POST method. + + + Equivalent to HTTP status 303. automatically redirects the client to the URI specified in the Location header as the result of a POST. The request to the resource specified by the Location header will be made with a GET. + + + Equivalent to HTTP status 416. indicates that the range of data requested from the resource cannot be returned, either because the beginning of the range is before the beginning of the resource, or the end of the range is after the end of the resource. + + + Equivalent to HTTP status 413. indicates that the request is too large for the server to process. + + + Equivalent to HTTP status 408. indicates that the client did not send a request within the time the server was expecting the request. + + + Equivalent to HTTP status 414. indicates that the URI is too long. + + + Equivalent to HTTP status 205. indicates that the client should reset (not reload) the current resource. + + + Equivalent to HTTP status 303. automatically redirects the client to the URI specified in the Location header as the result of a POST. The request to the resource specified by the Location header will be made with a GET. + + + Equivalent to HTTP status 503. indicates that the server is temporarily unavailable, usually due to high load or maintenance. + + + Equivalent to HTTP status 101. indicates that the protocol version or protocol is being changed. + + + Equivalent to HTTP status 307. indicates that the request information is located at the URI specified in the Location header. The default action when this status is received is to follow the Location header associated with the response. When the original request method was POST, the redirected request will also use the POST method. + + + Equivalent to HTTP status 401. indicates that the requested resource requires authentication. The WWW-Authenticate header contains the details of how to perform the authentication. + + + Equivalent to HTTP status 415. indicates that the request is an unsupported type. + + + Equivalent to HTTP status 306. is a proposed extension to the HTTP/1.1 specification that is not fully specified. + + + Equivalent to HTTP status 426. indicates that the client should switch to a different protocol such as TLS/1.0. + + + Equivalent to HTTP status 305. indicates that the request should use the proxy server at the URI specified in the Location header. + + + Defines the HTTP version numbers that are supported by the and classes. + + + Initializes a new instance of the class. + + + Defines a instance for HTTP 1.0. + + + Defines a instance for HTTP 1.1. + + + Provides an HTTP-specific implementation of the class. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class from the specified instances of the and classes. + A object that contains the information required to serialize the new object. + A object that contains the source and destination of the serialized stream associated with the new object. + + + Cancels a request to an Internet resource. + + + + + + + + Gets or sets the value of the Accept HTTP header. + The value of the Accept HTTP header. The default value is null. + + + Adds a byte range header to a request for a specific range from the beginning or end of the requested data. + The starting or ending point of the range. + + is invalid. + The range header could not be added. + + + Adds a byte range header to the request for a specified range. + The position at which to start sending data. + The position at which to stop sending data. + + is invalid. + + is greater than -or- or is less than 0. + The range header could not be added. + + + Adds a byte range header to a request for a specific range from the beginning or end of the requested data. + The starting or ending point of the range. + + is invalid. + The range header could not be added. + + + Adds a byte range header to the request for a specified range. + The position at which to start sending data. + The position at which to stop sending data. + + is invalid. + + is greater than -or- or is less than 0. + The range header could not be added. + + + Adds a Range header to a request for a specific range from the beginning or end of the requested data. + The description of the range. + The starting or ending point of the range. + + is null. + + is invalid. + The range header could not be added. + + + Adds a range header to a request for a specified range. + The description of the range. + The position at which to start sending data. + The position at which to stop sending data. + + is null. + + is greater than -or- or is less than 0. + + is invalid. + The range header could not be added. + + + Adds a Range header to a request for a specific range from the beginning or end of the requested data. + The description of the range. + The starting or ending point of the range. + + is null. + + is invalid. + The range header could not be added. + + + Adds a range header to a request for a specified range. + The description of the range. + The position at which to start sending data. + The position at which to stop sending data. + + is null. + + is greater than -or- or is less than 0. + + is invalid. + The range header could not be added. + + + Gets the Uniform Resource Identifier (URI) of the Internet resource that actually responds to the request. + A that identifies the Internet resource that actually responds to the request. The default is the URI used by the method to initialize the request. + + + Gets or sets a value that indicates whether the request should follow redirection responses. + true if the request should automatically follow redirection responses from the Internet resource; otherwise, false. The default value is true. + + + Gets or sets a value that indicates whether to buffer the received from the Internet resource. + Returns .true to enable buffering of the data received from the Internet resource; false to disable buffering. The default is true. + + + Gets or sets a value that indicates whether to buffer the data sent to the Internet resource. + true to enable buffering of the data sent to the Internet resource; false to disable buffering. The default is true. + + + Gets or sets the type of decompression that is used. + A T:System.Net.DecompressionMethods object that indicates the type of decompression that is used. + The object's current state does not allow this property to be set. + + + Begins an asynchronous request for a object to use to write data. + An that references the asynchronous request. + The delegate. + The state object for this request. + The property is GET or HEAD.-or- is true, is false, is -1, is false, and is POST or PUT. + The stream is being used by a previous call to -or- is set to a value and is false.-or- The thread pool is running out of threads. + The request cache validator indicated that the response for this request can be served from the cache; however, requests that write data must not use the cache. This exception can occur if you are using a custom cache validator that is incorrectly implemented. + + was previously called. + In a .NET Compact Framework application, a request stream with zero content length was not obtained and closed correctly. For more information about handling zero content length requests, see Network Programming in the .NET Compact Framework. + + + + + + + + + + + Begins an asynchronous request to an Internet resource. + An that references the asynchronous request for a response. + The delegate + The state object for this request. + The stream is already in use by a previous call to -or- is set to a value and is false.-or- The thread pool is running out of threads. + + is GET or HEAD, and either is greater than zero or is true.-or- is true, is false, and either is -1, is false and is POST or PUT.-or- The has an entity body but the method is called without calling the method. -or- The is greater than zero, but the application does not write all of the promised data. + + was previously called. + + + + + + + + + + + Gets or sets the collection of security certificates that are associated with this request. + The that contains the security certificates associated with this request. + The value specified for a set operation is null. + + + Gets or sets the value of the Connection HTTP header. + The value of the Connection HTTP header. The default value is null. + The value of is set to Keep-alive or Close. + + + Gets or sets the name of the connection group for the request. + The name of the connection group for this request. The default value is null. + + + Gets or sets the Content-length HTTP header. + The number of bytes of data to send to the Internet resource. The default is -1, which indicates the property has not been set and that there is no request data to send. + The request has been started by calling the , , , or method. + The new value is less than 0. + + + Gets or sets the value of the Content-type HTTP header. + The value of the Content-type HTTP header. The default value is null. + + + Gets or sets the delegate method called when an HTTP 100-continue response is received from the Internet resource. + A delegate that implements the callback method that executes when an HTTP Continue response is returned from the Internet resource. The default value is null. + + + Gets or sets a timeout, in milliseconds, to wait until the 100-Continue is received from the server. + Returns .The timeout, in milliseconds, to wait until the 100-Continue is received. + + + Gets or sets the cookies associated with the request. + A that contains the cookies associated with this request. + + + Gets or sets authentication information for the request. + An that contains the authentication credentials associated with the request. The default is null. + + + + + + Get or set the Date HTTP header value to use in an HTTP request. + The Date header value in the HTTP request. + + + Gets or sets the default cache policy for this request. + A that specifies the cache policy in effect for this request when no other policy is applicable. + + + + + + + + Gets or sets the default maximum length of an HTTP error response. + An integer that represents the default maximum length of an HTTP error response. + The value is less than 0 and is not equal to -1. + + + Gets or sets the default for the property. + The length, in kilobytes (1024 bytes), of the default maximum for response headers received. The default configuration file sets this value to 64 kilobytes. + The value is not equal to -1 and is less than zero. + + + + + + Ends an asynchronous request for a object to use to write data. + A to use to write request data. + The pending request for a stream. + + is null. + The request did not complete, and no stream is available. + + was not returned by the current instance from a call to . + This method was called previously using . + + was previously called.-or- An error occurred while processing the request. + + + + + + + + Ends an asynchronous request for a object to use to write data and outputs the associated with the stream. + A to use to write request data. + The pending request for a stream. + The for the . + + was not returned by the current instance from a call to . + + is null. + This method was called previously using . + The request did not complete, and no stream is available. + + was previously called.-or- An error occurred while processing the request. + + + Ends an asynchronous request to an Internet resource. + A that contains the response from the Internet resource. + The pending request for a response. + + is null. + This method was called previously using -or- The property is greater than 0 but the data has not been written to the request stream. + + was previously called.-or- An error occurred while processing the request. + + was not returned by the current instance from a call to . + + + + + + + + Gets or sets the value of the Expect HTTP header. + The contents of the Expect HTTP header. The default value is null.NoteThe value for this property is stored in . If WebHeaderCollection is set, the property value is lost. + Expect is set to a string that contains "100-continue" as a substring. + + + Populates a with the data required to serialize the target object. + The to populate with data. + A that specifies the destination for this serialization. + + + Gets a object to use to write request data. + A to use to write request data. + The property is GET or HEAD.-or- is true, is false, is -1, is false, and is POST or PUT. + The method is called more than once.-or- is set to a value and is false. + The request cache validator indicated that the response for this request can be served from the cache; however, requests that write data must not use the cache. This exception can occur if you are using a custom cache validator that is incorrectly implemented. + + was previously called.-or- The time-out period for the request expired.-or- An error occurred while processing the request. + In a .NET Compact Framework application, a request stream with zero content length was not obtained and closed correctly. For more information about handling zero content length requests, see Network Programming in the .NET Compact Framework. + + + + + + + + + + + Gets a object to use to write request data and outputs the associated with the stream. + A to use to write request data. + The for the . + The method was unable to obtain the . + The method is called more than once.-or- is set to a value and is false. + The request cache validator indicated that the response for this request can be served from the cache; however, requests that write data must not use the cache. This exception can occur if you are using a custom cache validator that is incorrectly implemented. + The property is GET or HEAD.-or- is true, is false, is -1, is false, and is POST or PUT. + + was previously called.-or- The time-out period for the request expired.-or- An error occurred while processing the request. + + + Returns a response from an Internet resource. + A that contains the response from the Internet resource. + The stream is already in use by a previous call to .-or- is set to a value and is false. + + is GET or HEAD, and either is greater or equal to zero or is true.-or- is true, is false, is -1, is false, and is POST or PUT. -or- The has an entity body but the method is called without calling the method. -or- The is greater than zero, but the application does not write all of the promised data. + The request cache validator indicated that the response for this request can be served from the cache; however, this request includes data to be sent to the server. Requests that send data must not use the cache. This exception can occur if you are using a custom cache validator that is incorrectly implemented. + + was previously called.-or- The time-out period for the request expired.-or- An error occurred while processing the request. + + + + + + + + + + + Gets a value that indicates whether a response has been received from an Internet resource. + true if a response has been received; otherwise, false. + + + Specifies a collection of the name/value pairs that make up the HTTP headers. + A that contains the name/value pairs that make up the headers for the HTTP request. + The request has been started by calling the , , , or method. + + + + + + Get or set the Host header value to use in an HTTP request independent from the request URI. + The Host header value in the HTTP request. + The Host header cannot be set to null. + The Host header cannot be set to an invalid value. + The Host header cannot be set after the has already started to be sent. + + + Gets or sets the value of the If-Modified-Since HTTP header. + A that contains the contents of the If-Modified-Since HTTP header. The default value is the current date and time. + + + + + + Gets or sets a value that indicates whether to make a persistent connection to the Internet resource. + true if the request to the Internet resource should contain a Connection HTTP header with the value Keep-alive; otherwise, false. The default is true. + + + Gets or sets the maximum number of redirects that the request follows. + The maximum number of redirection responses that the request follows. The default value is 50. + The value is set to 0 or less. + + + Gets or sets the maximum allowed length of the response headers. + The length, in kilobytes (1024 bytes), of the response headers. + The property is set after the request has already been submitted. + The value is less than 0 and is not equal to -1. + + + Gets or sets the media type of the request. + The media type of the request. The default value is null. + + + Gets or sets the method for the request. + The request method to use to contact the Internet resource. The default value is GET. + No method is supplied.-or- The method string contains invalid characters. + + + Gets or sets a value that indicates whether to pipeline the request to the Internet resource. + true if the request should be pipelined; otherwise, false. The default is true. + + + Gets or sets a value that indicates whether to send an Authorization header with the request. + true to send an HTTP Authorization header with requests after authentication has taken place; otherwise, false. The default is false. + + + Gets or sets the version of HTTP to use for the request. + The HTTP version to use for the request. The default is . + The HTTP version is set to a value other than 1.0 or 1.1. + + + Gets or sets proxy information for the request. + The object to use to proxy the request. The default value is set by calling the property. + + is set to null. + The request has been started by calling , , , or . + The caller does not have permission for the requested operation. + + + + + + + + + Gets or sets a time-out in milliseconds when writing to or reading from a stream. + The number of milliseconds before the writing or reading times out. The default value is 300,000 milliseconds (5 minutes). + The request has already been sent. + The value specified for a set operation is less than or equal to zero and is not equal to + + + Gets or sets the value of the Referer HTTP header. + The value of the Referer HTTP header. The default value is null. + + + Gets the original Uniform Resource Identifier (URI) of the request. + A that contains the URI of the Internet resource passed to the method. + + + Gets or sets a value that indicates whether to send data in segments to the Internet resource. + true to send data to the Internet resource in segments; otherwise, false. The default value is false. + The request has been started by calling the , , , or method. + + + Gets or sets a callback function to validate the server certificate. + Returns .A callback function to validate the server certificate. + + + Gets the service point to use for the request. + A that represents the network connection to the Internet resource. + + + + + + + + Gets a value that indicates whether the request provides support for a . + Returns .true if a is supported; otherwise, false. + + + Populates a with the data needed to serialize the target object. + The to populate with data. + A that specifies the destination for this serialization. + + + Gets or sets the time-out value in milliseconds for the and methods. + The number of milliseconds to wait before the request times out. The default value is 100,000 milliseconds (100 seconds). + The value specified is less than zero and is not . + + + Gets or sets the value of the Transfer-encoding HTTP header. + The value of the Transfer-encoding HTTP header. The default value is null. + + is set when is false. + + is set to the value "Chunked". + + + Gets or sets a value that indicates whether to allow high-speed NTLM-authenticated connection sharing. + true to keep the authenticated connection open; otherwise, false. + + + + + + Gets or sets a value that controls whether default credentials are sent with requests. + true if the default credentials are used; otherwise false. The default value is false. + You attempted to set this property after the request was sent. + + + + + + Gets or sets the value of the User-agent HTTP header. + The value of the User-agent HTTP header. The default value is null.NoteThe value for this property is stored in . If WebHeaderCollection is set, the property value is lost. + + + Provides an HTTP-specific implementation of the class. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class from the specified and instances. + A that contains the information required to serialize the new . + A that contains the source of the serialized stream that is associated with the new . + + + Gets the character set of the response. + A string that contains the character set of the response. + The current instance has been disposed. + + + + + + Closes the response stream. + + + + + + + + Gets the method that is used to encode the body of the response. + A string that describes the method that is used to encode the body of the response. + The current instance has been disposed. + + + Gets the length of the content returned by the request. + The number of bytes returned by the request. Content length does not include header information. + The current instance has been disposed. + + + Gets the content type of the response. + A string that contains the content type of the response. + The current instance has been disposed. + + + Gets or sets the cookies that are associated with this response. + A that contains the cookies that are associated with this response. + The current instance has been disposed. + + + Releases the unmanaged resources used by the , and optionally disposes of the managed resources. + true to release both managed and unmanaged resources; false to releases only unmanaged resources. + + + Populates a with the data needed to serialize the target object. + The to populate with data. + A that specifies the destination for this serialization. + + + Gets the contents of a header that was returned with the response. + The contents of the specified header. + The header value to return. + The current instance has been disposed. + + + Gets the stream that is used to read the body of the response from the server. + A containing the body of the response. + There is no response stream. + The current instance has been disposed. + + + + + + + + Gets the headers that are associated with this response from the server. + A that contains the header information returned with the response. + The current instance has been disposed. + + + Gets a value that indicates whether both client and server were authenticated. + true if mutual authentication occurred; otherwise, false. + + + Gets the last date and time that the contents of the response were modified. + A that contains the date and time that the contents of the response were modified. + The current instance has been disposed. + + + + + + Gets the method that is used to return the response. + A string that contains the HTTP method that is used to return the response. + The current instance has been disposed. + + + Gets the version of the HTTP protocol that is used in the response. + A that contains the HTTP protocol version of the response. + The current instance has been disposed. + + + Gets the URI of the Internet resource that responded to the request. + A that contains the URI of the Internet resource that responded to the request. + The current instance has been disposed. + + + Gets the name of the server that sent the response. + A string that contains the name of the server that sent the response. + The current instance has been disposed. + + + Gets the status of the response. + One of the values. + The current instance has been disposed. + + + Gets the status description returned with the response. + A string that describes the status of the response. + The current instance has been disposed. + + + Gets a value that indicates if headers are supported. + Returns .true if headers are supported; otherwise, false. + + + Serializes this instance into the specified object. + The object into which this will be serialized. + The destination of the serialization. + + + Provides the base authentication interface for Web client authentication modules. + + + Returns an instance of the class in respose to an authentication challenge from a server. + An instance containing the authorization message for the request, or null if the challenge cannot be handled. + The authentication challenge sent by the server. + The instance associated with the challenge. + The credentials associated with the challenge. + + + Gets the authentication type provided by this authentication module. + A string indicating the authentication type provided by this authentication module. + + + Gets a value indicating whether the authentication module supports preauthentication. + true if the authorization module supports preauthentication; otherwise false. + + + Returns an instance of the class for an authentication request to a server. + An instance containing the authorization message for the request. + The instance associated with the authentication request. + The credentials associated with the authentication request. + + + Validates a server certificate. + + + Validates a server certificate. + true if the certificate should be honored; otherwise, false. + The that will use the certificate. + The certificate to validate. + The request that received the certificate. + The problem that was encountered when using the certificate. + + + Defines the credential policy to be used for resource requests that are made using and its derived classes. + + + Returns a that indicates whether the client's credentials are sent with a resource request made using an instance of the class. + true if the credentials are sent with the request; otherwise, false. + The that will receive the request. For more information, see the Remarks section. + The that represents the resource being requested. + The that will be sent with the request if this method returns true. + The that will conduct the authentication, if authentication is required. + + + Provides the base authentication interface for retrieving credentials for Web client authentication. + + + Returns a object that is associated with the specified URI, and authentication type. + The that is associated with the specified URI and authentication type, or, if no credentials are available, null. + The that the client is providing authentication for. + The type of authentication, as defined in the property. + + + Provides the interface for retrieving credentials for a host, port, and authentication type. + + + Returns the credential for the specified host, port, and authentication protocol. + A for the specified host, port, and authentication protocol, or null if there are no credentials available for the specified host, port, and authentication protocol. + The host computer that is authenticating the client. + The port on that the client will communicate with. + The authentication protocol. + + + Provides an Internet Protocol (IP) address. + + + Initializes a new instance of the class with the address specified as a array. + The byte array value of the IP address. + + is null. + + contains a bad IP address. + + + Initializes a new instance of the class with the address specified as a array and the specified scope identifier. + The byte array value of the IP address. + The long value of the scope identifier. + + is null. + + contains a bad IP address. + + < 0 or > 0x00000000FFFFFFFF + + + Initializes a new instance of the class with the address specified as an . + The long value of the IP address. For example, the value 0x2414188f in big-endian format would be the IP address "143.24.20.36". + + < 0 or > 0x00000000FFFFFFFF + + + An Internet Protocol (IP) address. + The long value of the IP address. + The address family is . + + + Gets the address family of the IP address. + Returns for IPv4 or for IPv6. + + + Provides an IP address that indicates that the server must listen for client activity on all network interfaces. This field is read-only. + + + Provides the IP broadcast address. This field is read-only. + + + Compares two IP addresses. + true if the two addresses are equal; otherwise, false. + An instance to compare to the current instance. + + + Provides a copy of the as an array of bytes. + A array. + + + Returns a hash value for an IP address. + An integer hash value. + + + + + + Converts a short value from host byte order to network byte order. + A short value, expressed in network byte order. + The number to convert, expressed in host byte order. + + + Converts an integer value from host byte order to network byte order. + An integer value, expressed in network byte order. + The number to convert, expressed in host byte order. + + + Converts a long value from host byte order to network byte order. + A long value, expressed in network byte order. + The number to convert, expressed in host byte order. + + + The method uses the field to indicate that a must listen for client activity on all network interfaces. + + + Provides the IP loopback address. This property is read-only. + + + Provides an IP address that indicates that no network interface should be used. This property is read-only. + + + Gets whether the IP address is an IPv4-mapped IPv6 address. + Returns .true if the IP address is an IPv4-mapped IPv6 address; otherwise, false. + + + Gets whether the address is an IPv6 link local address. + true if the IP address is an IPv6 link local address; otherwise, false. + + + Gets whether the address is an IPv6 multicast global address. + true if the IP address is an IPv6 multicast global address; otherwise, false. + + + Gets whether the address is an IPv6 site local address. + true if the IP address is an IPv6 site local address; otherwise, false. + + + Gets whether the address is an IPv6 Teredo address. + true if the IP address is an IPv6 Teredo address; otherwise, false. + + + Indicates whether the specified IP address is the loopback address. + true if is the loopback address; otherwise, false. + An IP address. + + + Provides the IP loopback address. This field is read-only. + + + Maps the object to an IPv4 address. + Returns .An IPv4 address. + + + Maps the object to an IPv6 address. + Returns .An IPv6 address. + + + Converts a short value from network byte order to host byte order. + A short value, expressed in host byte order. + The number to convert, expressed in network byte order. + + + Converts an integer value from network byte order to host byte order. + An integer value, expressed in host byte order. + The number to convert, expressed in network byte order. + + + Converts a long value from network byte order to host byte order. + A long value, expressed in host byte order. + The number to convert, expressed in network byte order. + + + Provides an IP address that indicates that no network interface should be used. This field is read-only. + + + Converts an IP address string to an instance. + An instance. + A string that contains an IP address in dotted-quad notation for IPv4 and in colon-hexadecimal notation for IPv6. + + is null. + + is not a valid IP address. + + + Gets or sets the IPv6 address scope identifier. + A long integer that specifies the scope of the address. + AddressFamily = InterNetwork. + + < 0- or - > 0x00000000FFFFFFFF + + + Converts an Internet address to its standard notation. + A string that contains the IP address in either IPv4 dotted-quad or in IPv6 colon-hexadecimal notation. + The address family is and the address is bad. + + + + + + Determines whether a string is a valid IP address. + true if is a valid IP address; otherwise, false. + The string to validate. + The version of the string. + + + Represents a network endpoint as an IP address and a port number. + + + Initializes a new instance of the class with the specified address and port number. + The IP address of the Internet host. + The port number associated with the , or 0 to specify any available port. is in host order. + + is less than .-or- is greater than .-or- is less than 0 or greater than 0x00000000FFFFFFFF. + + + Initializes a new instance of the class with the specified address and port number. + An . + The port number associated with the , or 0 to specify any available port. is in host order. + + is null. + + is less than .-or- is greater than .-or- is less than 0 or greater than 0x00000000FFFFFFFF. + + + Gets or sets the IP address of the endpoint. + An instance containing the IP address of the endpoint. + + + Gets the Internet Protocol (IP) address family. + Returns . + + + Creates an endpoint from a socket address. + An instance using the specified socket address. + The to use for the endpoint. + The AddressFamily of is not equal to the AddressFamily of the current instance.-or- .Size < 8. + + + + + + Determines whether the specified is equal to the current instance. + true if the specified object is equal to the current object; otherwise, false. + The specified to compare with the current instance. + + + Returns a hash value for a instance. + An integer hash value. + + + + + + Specifies the maximum value that can be assigned to the property. The MaxPort value is set to 0x0000FFFF. This field is read-only. + + + Specifies the minimum value that can be assigned to the property. This field is read-only. + + + Gets or sets the port number of the endpoint. + An integer value in the range to indicating the port number of the endpoint. + The value that was specified for a set operation is less than or greater than . + + + Serializes endpoint information into a instance. + A instance containing the socket address for the endpoint. + + + Returns the IP address and port number of the specified endpoint. + A string containing the IP address and the port number of the specified endpoint (for example, 192.168.1.2:80). + + + + + + Provides a container class for Internet host address information. + + + Initializes a new instance of the class. + + + Gets or sets a list of IP addresses that are associated with a host. + An array of type that contains IP addresses that resolve to the host names that are contained in the property. + + + Gets or sets a list of aliases that are associated with a host. + An array of strings that contain DNS names that resolve to the IP addresses in the property. + + + Gets or sets the DNS name of the host. + A string that contains the primary host name for the server. + + + Provides the base interface for implementation of proxy access for the class. + + + The credentials to submit to the proxy server for authentication. + An instance that contains the credentials that are needed to authenticate a request to the proxy server. + + + Returns the URI of a proxy. + A instance that contains the URI of the proxy used to contact . + A that specifies the requested Internet resource. + + + Indicates that the proxy should not be used for the specified host. + true if the proxy server should not be used for ; otherwise, false. + The of the host to check for proxy use. + + + Provides the base interface to load and execute scripts for automatic proxy detection. + + + Closes a script. + + + Loads a script. + A indicating whether the script was successfully loaded. + Internal only. + Internal only. + Internal only. + + + Runs a script. + A .An internal-only value returned. + Internal only. + Internal only. + + + Provides the base interface for creating instances. + + + Creates a instance. + A instance. + The uniform resource identifier (URI) of the Web resource. + The request scheme specified in is not supported by this instance. + + is null. + NoteIn the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, , instead.The URI specified in is not a valid URI. + + + Specifies network access permissions. + + + Indicates that the application is allowed to accept connections from the Internet on a local resource. Notice that this is a protection for the local host that uses Accept to grant access to a local resource (address/port). At the time a socket tries to bind to this local resource a permission check is performed to see if an Accept exists on that resource. + + + Indicates that the application is allowed to connect to specific Internet resources. Notice that, in the case of remote host resource, no check is performed to see that Connect permissions exist. This is because the port of a connecting remote host is unknown and not suitable permissions can be built in advance. It is the application responsibility to check the permissions of the remote host trying to connect to a listening socket. + + + Provides credentials for password-based authentication schemes such as basic, digest, NTLM, and Kerberos authentication. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with the specified user name and password. + The user name associated with the credentials. + The password for the user name associated with the credentials. + The class is not supported on this platform. + + + Initializes a new instance of the class with the specified user name, password, and domain. + The user name associated with the credentials. + The password for the user name associated with the credentials. + The domain associated with these credentials. + The class is not supported on this platform. + + + Initializes a new instance of the class with the specified user name and password. + The user name associated with the credentials. + The password for the user name associated with the credentials. + + + Initializes a new instance of the class with the specified user name, password, and domain. + The user name associated with the credentials. + The password for the user name associated with the credentials. + The domain associated with these credentials. + + + Gets or sets the domain or computer name that verifies the credentials. + The name of the domain associated with the credentials. + + + + + + Returns an instance of the class for the specified host, port, and authentication type. + A for the specified host, port, and authentication protocol, or null if there are no credentials available for the specified host, port, and authentication protocol. + The host computer that authenticates the client. + The port on the that the client communicates with. + The type of authentication requested, as defined in the property. + + + Returns an instance of the class for the specified Uniform Resource Identifier (URI) and authentication type. + A object. + The URI that the client provides authentication for. + The type of authentication requested, as defined in the property. + + + Gets or sets the password for the user name associated with the credentials. + The password associated with the credentials. If this instance was initialized with the parameter set to null, then the property will return an empty string. + + + + + + Gets or sets the password as a instance. + The password for the user name associated with the credentials. + The class is not supported on this platform. + + + Gets or sets the user name associated with the credentials. + The user name associated with the credentials. + + + + + + Provides data for the event. + + + Gets a readable stream that contains data downloaded by a method. + A that contains the downloaded data. + + + + + + Represents the method that will handle the event of a . + The source of the event. + A containing event data. + + + Provides data for the event. + + + Gets a writable stream that is used to send data to a server. + A where you can write data to be uploaded. + + + + + + Represents the method that will handle the event of a . + The source of the event. + A containing event data. + + + The exception that is thrown when an error is made while using a network protocol. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class from the specified and instances. + A that contains the information that is required to deserialize the . + A that contains the source of the serialized stream that is associated with the new . + + + Initializes a new instance of the class with the specified message. + The error message string. + + + Populates a with the data required to serialize the target object. + The to populate with data. + A that specifies the destination for this serialization. + + + Serializes this instance into the specified object. + The object into which this will be serialized. + The destination of the serialization. + + + Specifies the security protocols that are supported by the Schannel security package. + + + Specifies the Secure Socket Layer (SSL) 3.0 security protocol. + + + Specifies the Transport Layer Security (TLS) 1.0 security protocol. + + + Specifies the Transport Layer Security (TLS) 1.1 security protocol. + + + Specifies the Transport Layer Security (TLS) 1.2 security protocol. + + + Provides connection management for HTTP connections. + + + Gets the Uniform Resource Identifier (URI) of the server that this object connects to. + An instance of the class that contains the URI of the Internet server that this object connects to. + The is in host mode. + + + Specifies the delegate to associate a local with a . + A delegate that forces a to use a particular local Internet Protocol (IP) address and port number. The default value is null. + + + Gets the certificate received for this object. + An instance of the class that contains the security certificate received for this object. + + + Gets the last client certificate sent to the server. + An object that contains the public values of the last client certificate sent to the server. + + + Removes the specified connection group from this object. + A value that indicates whether the connection group was closed. + The name of the connection group that contains the connections to close and remove from this service point. + + + Gets or sets the number of milliseconds after which an active connection is closed. + A that specifies the number of milliseconds that an active connection remains open. The default is -1, which allows an active connection to stay connected indefinitely. Set this property to 0 to force connections to close after servicing a request. + The value specified for a set operation is a negative number less than -1. + + + Gets or sets the maximum number of connections allowed on this object. + The maximum number of connections allowed on this object. + The connection limit is equal to or less than 0. + + + + + + + + + Gets the connection name. + A that represents the connection name. + + + Gets the number of open connections associated with this object. + The number of open connections associated with this object. + + + Gets or sets a value that determines whether 100-Continue behavior is used. + true to expect 100-Continue responses for POST requests; otherwise, false. The default value is true. + + + Gets the date and time that the object was last connected to a host. + A object that contains the date and time at which the object was last connected. + + + Gets or sets the amount of time a connection associated with the object can remain idle before the connection is closed. + The length of time, in milliseconds, that a connection associated with the object can remain idle before it is closed and reused for another connection. + + is set to less than or greater than . + + + Gets the version of the HTTP protocol that the object uses. + A object that contains the HTTP protocol version that the object uses. + + + Gets or sets the size of the receiving buffer for the socket used by this . + A that contains the size, in bytes, of the receive buffer. The default is 8192. + The value specified for a set operation is greater than . + + + Enables or disables the keep-alive option on a TCP connection. + If set to true, then the TCP keep-alive option on a TCP connection will be enabled using the specified and values. If set to false, then the TCP keep-alive option is disabled and the remaining parameters are ignored.The default value is false. + Specifies the timeout, in milliseconds, with no activity until the first keep-alive packet is sent. The value must be greater than 0. If a value of less than or equal to zero is passed an is thrown. + Specifies the interval, in milliseconds, between when successive keep-alive packets are sent if no acknowledgement is received.The value must be greater than 0. If a value of less than or equal to zero is passed an is thrown. + The value specified for or parameter is less than or equal to 0. + + + Indicates whether the object supports pipelined connections. + true if the object supports pipelined connections; otherwise, false. + + + Gets or sets a value that determines whether the Nagle algorithm is used on connections managed by this object. + true to use the Nagle algorithm; otherwise, false. The default value is true. + + + Manages the collection of objects. + + + Gets or sets policy for server certificates. + An object that implements the interface. + + + + + + Gets or sets a value that indicates whether the certificate is checked against the certificate authority revocation list. + true if the certificate revocation list is checked; otherwise, false. + + + + + + + Gets or sets the maximum number of concurrent connections allowed by a object. + The maximum number of concurrent connections allowed by a object. The default value is 2. + + is less than or equal to 0. + + + + + + + + The default number of non-persistent connections (4) allowed on a object connected to an HTTP/1.0 or later server. This field is constant but is no longer used in the .NET Framework 2.0. + + + The default number of persistent connections (2) allowed on a object connected to an HTTP/1.1 or later server. This field is constant and is used to initialize the property if the value of the property has not been set either directly or through configuration. + + + Gets or sets a value that indicates how long a Domain Name Service (DNS) resolution is considered valid. + The time-out value, in milliseconds. A value of -1 indicates an infinite time-out period. The default value is 120,000 milliseconds (two minutes). + + + Gets or sets a value that indicates whether a Domain Name Service (DNS) resolution rotates among the applicable Internet Protocol (IP) addresses. + false if a DNS resolution always returns the first IP address for a particular host; otherwise true. The default is false. + + + Gets the for this instance. + The encryption policy to use for this instance. + + + Gets or sets a value that determines whether 100-Continue behavior is used. + true to enable 100-Continue behavior. The default value is true. + + + + + + + Finds an existing object or creates a new object to manage communications with the specified Uniform Resource Identifier (URI). + The object that manages communications for the request. + The URI of the Internet resource to be contacted. + The proxy data for this request. + The URI specified in is invalid. + The maximum number of objects defined in has been reached. + + + + + + + Finds an existing object or creates a new object to manage communications with the specified object. + The object that manages communications for the request. + The object of the Internet resource to contact. + + is null. + The maximum number of objects defined in has been reached. + + + + + + + Finds an existing object or creates a new object to manage communications with the specified object. + The object that manages communications for the request. + A object that contains the address of the Internet resource to contact. + The proxy data for this request. + + is null. + The maximum number of objects defined in has been reached. + + + + + + + Gets or sets the maximum idle time of a object. + The maximum idle time, in milliseconds, of a object. The default value is 100,000 milliseconds (100 seconds). + + is less than or greater than . + + + + + + Gets or sets the maximum number of objects to maintain at any time. + The maximum number of objects to maintain. The default value is 0, which means there is no limit to the number of objects. + + is less than 0 or greater than . + + + + + + Gets or sets the security protocol used by the objects managed by the object. + One of the values defined in the enumeration. + The value specified to set the property is not a valid enumeration value. + + + Gets or sets the callback to validate a server certificate. + A . The default value is null. + + + Enables or disables the keep-alive option on a TCP connection. + If set to true, then the TCP keep-alive option on a TCP connection will be enabled using the specified and values. If set to false, then the TCP keep-alive option is disabled and the remaining parameters are ignored.The default value is false. + Specifies the timeout, in milliseconds, with no activity until the first keep-alive packet is sent.The value must be greater than 0. If a value of less than or equal to zero is passed an is thrown. + Specifies the interval, in milliseconds, between when successive keep-alive packets are sent if no acknowledgement is received.The value must be greater than 0. If a value of less than or equal to zero is passed an is thrown. + The value specified for or parameter is less than or equal to 0. + + + Determines whether the Nagle algorithm is used by the service points managed by this object. + true to use the Nagle algorithm; otherwise, false. The default value is true. + + + + + + + Stores serialized information from derived classes. + + + Creates a new instance of the class for the given address family. + An enumerated value. + + + Creates a new instance of the class using the specified address family and buffer size. + An enumerated value. + The number of bytes to allocate for the underlying buffer. + + is less than 2. These 2 bytes are needed to store . + + + Determines whether the specified is equal to the current instance. + true if the specified object is equal to the current object; otherwise, false. + The specified to compare with the current instance. + + + Gets the enumerated value of the current . + One of the enumerated values. + + + Serves as a hash function for a particular type, suitable for use in hashing algorithms and data structures like a hash table. + A hash code for the current object. + + + Gets or sets the specified index element in the underlying buffer. + The value of the specified index element in the underlying buffer. + The array index element of the desired information. + The specified index does not exist in the buffer. + + + Gets the underlying buffer size of the . + The underlying buffer size of the . + + + Returns information about the socket address. + A string that contains information about the . + + + + + + Controls rights to make or accept connections on a transport address. + + + Initializes a new instance of the class for the given transport address with the specified permission. + One of the values. + One of the values. + The host name for the transport address. + The port number for the transport address. + + is null. + + + Initializes a new instance of the class that allows unrestricted access to the or disallows access to the . + One of the values. + + + Gets a list of instances that identifies the endpoints that can be accepted under this permission instance. + An instance that implements the interface that contains instances. + + + Adds a permission to the set of permissions for a transport address. + One of the values. + One of the values. + The host name for the transport address. + The port number for the transport address. + + is null. + + + Defines a constant that represents all ports. + + + Gets a list of instances that identifies the endpoints that can be connected to under this permission instance. + An instance that implements the interface that contains instances. + + + Creates a copy of a instance. + A new instance of the class that is a copy of the current instance. + + + Reconstructs a instance for an XML encoding. + The XML encoding used to reconstruct the instance. + The is null. + The is not a permission element for this type. + + + Returns the logical intersection between two instances. + The instance that represents the intersection of two instances. If the intersection is empty, the method returns null. If the parameter is a null reference, the method returns null. + The instance to intersect with the current instance. + The parameter is not a . + + is not granted to the method caller. + + + + + + + + + Determines if the current permission is a subset of the specified permission. + If is null, this method returns true if the current instance defines no permissions; otherwise, false. If is not null, this method returns true if the current instance defines a subset of permissions; otherwise, false. + A that is to be tested for the subset relationship. + + is not a . + + is not granted to the method caller. + + + + + + + + + Checks the overall permission state of the object. + true if the instance is created with the Unrestricted value from ; otherwise, false. + + + Creates an XML encoding of a instance and its current state. + A instance that contains an XML-encoded representation of the instance, including state information. + + + + + + Returns the logical union between two instances. + The instance that represents the union of two instances. If parameter is null, it returns a copy of the current instance. + The instance to combine with the current instance. + + is not a . + + + Specifies security actions to control connections. This class cannot be inherited. + + + Initializes a new instance of the class with the specified value. + One of the values. + + is not a valid value. + + + Gets or sets the network access method that is allowed by this . + A string that contains the network access method that is allowed by this instance of . Valid values are "Accept" and "Connect." + The property is not null when you attempt to set the value. To specify more than one Access method, use an additional attribute declaration statement. + + + Creates and returns a new instance of the class. + An instance of the class that corresponds to the security declaration. + One or more of the current instance's , , , or properties is null. + + + + + + Gets or sets the DNS host name or IP address that is specified by this . + A string that contains the DNS host name or IP address that is associated with this instance of . + + is not null when you attempt to set the value. To specify more than one host, use an additional attribute declaration statement. + + + Gets or sets the port number that is associated with this . + A string that contains the port number that is associated with this instance of . + The property is null when you attempt to set the value. To specify more than one port, use an additional attribute declaration statement. + + + Gets or sets the that is specified by this . + A string that contains the that is associated with this . + + is not null when you attempt to set the value. To specify more than one transport type, use an additional attribute declaration statement. + + + The class provides additional context about the underlying transport layer. + + + Creates a new instance of the class + + + Retrieves the requested channel binding. + The requested , or null if the channel binding is not supported by the current transport or by the operating system. + The type of channel binding to retrieve. + + is must be for use with the retrieved from the property. + + + Defines transport types for the and classes. + + + All transport types. + + + The transport type is connectionless, such as UDP. Specifying this value has the same effect as specifying . + + + The transport is connection oriented, such as TCP. Specifying this value has the same effect as specifying . + + + TCP transport. + + + UDP transport. + + + Provides data for the event. + + + Gets the server reply to a data upload operation started by calling an method. + A array containing the server reply. + + + + + + Represents the method that will handle the event of a . + The source of the event. + A containing event data. + + + Provides data for the event. + + + Gets the server reply to a data upload operation that is started by calling an method. + A array that contains the server reply. + + + + + + Represents the method that will handle the event of a . + The source of the event. + A that contains event data. + + + Provides data for the event of a . + + + Gets the number of bytes received. + An value that indicates the number of bytes received. + + + Gets the number of bytes sent. + An value that indicates the number of bytes sent. + + + Gets the total number of bytes in a data upload operation. + An value that indicates the number of bytes that will be received. + + + Gets the total number of bytes to send. + An value that indicates the number of bytes that will be sent. + + + Represents the method that will handle the event of a . + The source of the event. + A containing event data. + + + Provides data for the event. + + + Gets the server reply to a string upload operation that is started by calling an method. + A array that contains the server reply. + + + + + + Represents the method that will handle the event of a . + The source of the event. + A containing event data. + + + Provides data for the event. + + + Gets the server reply to a data upload operation started by calling an method. + A array containing the server reply. + + + + + + Represents the method that will handle the event of a . + The source of the event. + A that contains event data. + + + Provides common methods for sending data to and receiving data from a resource identified by a URI. + + + Initializes a new instance of the class. + + + Gets or sets a value that indicates whether to buffer the data read from the Internet resource for a instance. + Returns .true to enable buffering of the data received from the Internet resource; false to disable buffering. The default is true. + + + Gets or sets a value that indicates whether to buffer the data written to the Internet resource for a instance. + Returns .true to enable buffering of the data written to the Internet resource; false to disable buffering. The default is true. + + + Gets or sets the base URI for requests made by a . + A containing the base URI for requests made by a or if no base address has been specified. + + is set to an invalid URI. The inner exception may contain information that will help you locate the error. + + + + + + Gets or sets the application's cache policy for any resources obtained by this WebClient instance using objects. + A object that represents the application's caching requirements. + + + Cancels a pending asynchronous operation. + + + + + + Gets or sets the network credentials that are sent to the host and used to authenticate the request. + An containing the authentication credentials for the request. The default is null. + + + + + + Downloads the resource as a array from the URI specified. + A array containing the downloaded resource. + The URI from which to download data. + The parameter is null. + The URI formed by combining and is invalid.-or- An error occurred while downloading data. + The method has been called simultaneously on multiple threads. + + + + + + + + Downloads the resource as a array from the URI specified. + A array containing the downloaded resource. + The URI represented by the object, from which to download data. + The parameter is null. + + + Downloads the resource as a array from the URI specified as an asynchronous operation. + A containing the URI to download. + The parameter is null. + The URI formed by combining and is invalid.-or- An error occurred while downloading the resource. + + + Downloads the resource as a array from the URI specified as an asynchronous operation. + A containing the URI to download. + A user-defined object that is passed to the method invoked when the asynchronous operation completes. + The parameter is null. + The URI formed by combining and is invalid.-or- An error occurred while downloading the resource. + + + Occurs when an asynchronous data download operation completes. + + + Downloads the resource as a array from the URI specified as an asynchronous operation using a task object. + Returns .The task object representing the asynchronous operation. The property on the task object returns a array containing the downloaded resource. + The URI of the resource to download. + The parameter is null. + The URI formed by combining and is invalid.-or- An error occurred while downloading the resource. + + + Downloads the resource as a array from the URI specified as an asynchronous operation using a task object. + Returns .The task object representing the asynchronous operation. The property on the task object returns a array containing the downloaded resource. + The URI of the resource to download. + The parameter is null. + The URI formed by combining and is invalid.-or- An error occurred while downloading the resource. + + + Downloads the resource with the specified URI to a local file. + The URI from which to download data. + The name of the local file that is to receive the data. + The parameter is null. + The URI formed by combining and is invalid.-or- is null or .-or-The file does not exist.-or- An error occurred while downloading data. + The method has been called simultaneously on multiple threads. + + + + + + + + Downloads the resource with the specified URI to a local file. + The URI specified as a , from which to download data. + The name of the local file that is to receive the data. + The parameter is null. -or-The parameter is null. + The URI formed by combining and is invalid.-or- is null or .-or- The file does not exist. -or- An error occurred while downloading data. + The method has been called simultaneously on multiple threads. + + + Downloads, to a local file, the resource with the specified URI. This method does not block the calling thread. + The URI of the resource to download. + The name of the file to be placed on the local computer. + The parameter is null. -or-The parameter is null. + The URI formed by combining and is invalid.-or- An error occurred while downloading the resource. + The local file specified by is in use by another thread. + + + Downloads, to a local file, the resource with the specified URI. This method does not block the calling thread. + The URI of the resource to download. + The name of the file to be placed on the local computer. + A user-defined object that is passed to the method invoked when the asynchronous operation completes. + The parameter is null. -or-The parameter is null. + The URI formed by combining and is invalid.-or- An error occurred while downloading the resource. + The local file specified by is in use by another thread. + + + Occurs when an asynchronous file download operation completes. + + + Downloads the specified resource to a local file as an asynchronous operation using a task object. + Returns .The task object representing the asynchronous operation. + The URI of the resource to download. + The name of the file to be placed on the local computer. + The parameter is null. -or-The parameter is null. + The URI formed by combining and is invalid.-or- An error occurred while downloading the resource. + The local file specified by is in use by another thread. + + + Downloads the specified resource to a local file as an asynchronous operation using a task object. + Returns .The task object representing the asynchronous operation. + The URI of the resource to download. + The name of the file to be placed on the local computer. + The parameter is null. -or-The parameter is null. + The URI formed by combining and is invalid.-or- An error occurred while downloading the resource. + The local file specified by is in use by another thread. + + + Occurs when an asynchronous download operation successfully transfers some or all of the data. + + + Downloads the requested resource as a . The resource to download is specified as a containing the URI. + A containing the requested resource. + A containing the URI to download. + The parameter is null. + The URI formed by combining and is invalid.-or- An error occurred while downloading the resource. + The method has been called simultaneously on multiple threads. + + + + + + + + Downloads the requested resource as a . The resource to download is specified as a . + A containing the requested resource. + A object containing the URI to download. + The parameter is null. + The URI formed by combining and is invalid.-or- An error occurred while downloading the resource. + The method has been called simultaneously on multiple threads. + + + Downloads the resource specified as a . This method does not block the calling thread. + A containing the URI to download. + The parameter is null. + The URI formed by combining and is invalid.-or- An error occurred while downloading the resource. + + + Downloads the specified string to the specified resource. This method does not block the calling thread. + A containing the URI to download. + A user-defined object that is passed to the method invoked when the asynchronous operation completes. + The parameter is null. + The URI formed by combining and is invalid.-or- An error occurred while downloading the resource. + + + Occurs when an asynchronous resource-download operation completes. + + + Downloads the resource as a from the URI specified as an asynchronous operation using a task object. + Returns .The task object representing the asynchronous operation. The property on the task object returns a array containing the downloaded resource. + The URI of the resource to download. + The parameter is null. + The URI formed by combining and is invalid.-or- An error occurred while downloading the resource. + + + Downloads the resource as a from the URI specified as an asynchronous operation using a task object. + Returns .The task object representing the asynchronous operation. The property on the task object returns a array containing the downloaded resource. + The URI of the resource to download. + The parameter is null. + The URI formed by combining and is invalid.-or- An error occurred while downloading the resource. + + + Gets and sets the used to upload and download strings. + A that is used to encode strings. The default value of this property is the encoding returned by . + + + Returns a object for the specified resource. + A new object for the specified resource. + A that identifies the resource to request. + + + Returns the for the specified . + A containing the response for the specified . + A that is used to obtain the response. + + + Returns the for the specified using the specified . + A containing the response for the specified . + A that is used to obtain the response. + An object obtained from a previous call to . + + + Gets or sets a collection of header name/value pairs associated with the request. + A containing header name/value pairs associated with this request. + + + Gets whether a Web request is in progress. + true if the Web request is still in progress; otherwise false. + + + Raises the event. + A object that contains event data. + + + Raises the event. + An object containing event data. + + + Raises the event. + A object containing event data. + + + Raises the event. + A object containing event data. + + + Raises the event. + A object containing event data. + + + Raises the event. + A object containing event data. + + + Raises the event. + A object containing event data. + + + Raises the event. + An object containing event data. + + + Raises the event. + An object containing event data. + + + Raises the event. + An object containing event data. + + + Raises the event. + A object containing event data. + + + Raises the event. + A object containing event data. + + + Opens a readable stream for the data downloaded from a resource with the URI specified as a . + A used to read data from a resource. + The URI specified as a from which to download data. + The parameter is null. + The URI formed by combining , is invalid.-or- An error occurred while downloading data. + + + + + + + + Opens a readable stream for the data downloaded from a resource with the URI specified as a + A used to read data from a resource. + The URI specified as a from which to download data. + The parameter is null. + The URI formed by combining , is invalid.-or- An error occurred while downloading data. + + + Opens a readable stream containing the specified resource. This method does not block the calling thread. + The URI of the resource to retrieve. + The parameter is null. + The URI formed by combining and address is invalid.-or- An error occurred while downloading the resource. -or- An error occurred while opening the stream. + + + Opens a readable stream containing the specified resource. This method does not block the calling thread. + The URI of the resource to retrieve. + A user-defined object that is passed to the method invoked when the asynchronous operation completes. + The parameter is null. + The URI formed by combining and address is invalid.-or- An error occurred while downloading the resource. -or- An error occurred while opening the stream. + + + Occurs when an asynchronous operation to open a stream containing a resource completes. + + + Opens a readable stream containing the specified resource as an asynchronous operation using a task object. + Returns .The task object representing the asynchronous operation. The property on the task object returns a used to read data from a resource. + The URI of the resource to retrieve. + The parameter is null. + The URI formed by combining and address is invalid.-or- An error occurred while downloading the resource. -or- An error occurred while opening the stream. + + + Opens a readable stream containing the specified resource as an asynchronous operation using a task object. + Returns .The task object representing the asynchronous operation. The property on the task object returns a used to read data from a resource. + The URI of the resource to retrieve. + The parameter is null. + The URI formed by combining and address is invalid.-or- An error occurred while downloading the resource. -or- An error occurred while opening the stream. + + + Opens a stream for writing data to the specified resource. + A used to write data to the resource. + The URI of the resource to receive the data. + The parameter is null. + The URI formed by combining , and is invalid.-or- An error occurred while opening the stream. + + + + + + + + Opens a stream for writing data to the specified resource, using the specified method. + A used to write data to the resource. + The URI of the resource to receive the data. + The method used to send the data to the resource. If null, the default is POST for http and STOR for ftp. + The parameter is null. + The URI formed by combining , and is invalid.-or- An error occurred while opening the stream. + + + + + + + + Opens a stream for writing data to the specified resource. + A used to write data to the resource. + The URI of the resource to receive the data. + The parameter is null. + The URI formed by combining , and is invalid.-or- An error occurred while opening the stream. + + + Opens a stream for writing data to the specified resource, by using the specified method. + A used to write data to the resource. + The URI of the resource to receive the data. + The method used to send the data to the resource. If null, the default is POST for http and STOR for ftp. + The parameter is null. + The URI formed by combining , and is invalid.-or- An error occurred while opening the stream. + + + Opens a stream for writing data to the specified resource. This method does not block the calling thread. + The URI of the resource to receive the data. + The parameter is null. + + + Opens a stream for writing data to the specified resource. This method does not block the calling thread. + The URI of the resource to receive the data. + The method used to send the data to the resource. If null, the default is POST for http and STOR for ftp. + The parameter is null. + + + Opens a stream for writing data to the specified resource, using the specified method. This method does not block the calling thread. + The URI of the resource to receive the data. + The method used to send the data to the resource. If null, the default is POST for http and STOR for ftp. + A user-defined object that is passed to the method invoked when the asynchronous operation completes + The parameter is null. + The URI formed by combining and is invalid.-or- An error occurred while opening the stream. + + + Occurs when an asynchronous operation to open a stream to write data to a resource completes. + + + Opens a stream for writing data to the specified resource as an asynchronous operation using a task object. + Returns .The task object representing the asynchronous operation. The property on the task object returns a used to write data to the resource. + The URI of the resource to receive the data. + The parameter is null. + The URI formed by combining and is invalid.-or- An error occurred while opening the stream. + + + Opens a stream for writing data to the specified resource as an asynchronous operation using a task object. + Returns .The task object representing the asynchronous operation. The property on the task object returns a used to write data to the resource. + The URI of the resource to receive the data. + The method used to send the data to the resource. If null, the default is POST for http and STOR for ftp. + The parameter is null. + The URI formed by combining and is invalid.-or- An error occurred while opening the stream. + + + Opens a stream for writing data to the specified resource as an asynchronous operation using a task object. + Returns .The task object representing the asynchronous operation. The property on the task object returns a used to write data to the resource. + The URI of the resource to receive the data. + The parameter is null. + The URI formed by combining and is invalid.-or- An error occurred while opening the stream. + + + Opens a stream for writing data to the specified resource as an asynchronous operation using a task object. + Returns .The task object representing the asynchronous operation. The property on the task object returns a used to write data to the resource. + The URI of the resource to receive the data. + The method used to send the data to the resource. If null, the default is POST for http and STOR for ftp. + The parameter is null. + The URI formed by combining and is invalid.-or- An error occurred while opening the stream. + + + Gets or sets the proxy used by this object. + An instance used to send requests. + + is set to null. + + + Gets or sets a collection of query name/value pairs associated with the request. + A that contains query name/value pairs associated with the request. If no pairs are associated with the request, the value is an empty . + + + + + + Gets a collection of header name/value pairs associated with the response. + A containing header name/value pairs associated with the response, or null if no response has been received. + + + + + + Uploads a data buffer to a resource identified by a URI. + A array containing the body of the response from the resource. + The URI of the resource to receive the data. + The data buffer to send to the resource. + The parameter is null. + The URI formed by combining , and is invalid.-or- is null. -or-An error occurred while sending the data.-or- There was no response from the server hosting the resource. + + + + + + + + Uploads a data buffer to the specified resource, using the specified method. + A array containing the body of the response from the resource. + The URI of the resource to receive the data. + The HTTP method used to send the data to the resource. If null, the default is POST for http and STOR for ftp. + The data buffer to send to the resource. + The parameter is null. + The URI formed by combining , and is invalid.-or- is null.-or- An error occurred while uploading the data.-or- There was no response from the server hosting the resource. + + + + + + + + Uploads a data buffer to a resource identified by a URI. + A array containing the body of the response from the resource. + The URI of the resource to receive the data. + The data buffer to send to the resource. + The parameter is null. + The URI formed by combining , and is invalid.-or- is null. -or-An error occurred while sending the data.-or- There was no response from the server hosting the resource. + + + Uploads a data buffer to the specified resource, using the specified method. + A array containing the body of the response from the resource. + The URI of the resource to receive the data. + The HTTP method used to send the data to the resource. If null, the default is POST for http and STOR for ftp. + The data buffer to send to the resource. + The parameter is null. + The URI formed by combining , and is invalid.-or- is null.-or- An error occurred while uploading the data.-or- There was no response from the server hosting the resource. + + + Uploads a data buffer to a resource identified by a URI, using the POST method. This method does not block the calling thread. + The URI of the resource to receive the data. + The data buffer to send to the resource. + The parameter is null. + The URI formed by combining and is invalid.-or- An error occurred while opening the stream.-or- There was no response from the server hosting the resource. + + + Uploads a data buffer to a resource identified by a URI, using the specified method. This method does not block the calling thread. + The URI of the resource to receive the data. + The method used to send the data to the resource. If null, the default is POST for http and STOR for ftp. + The data buffer to send to the resource. + The parameter is null. + The URI formed by combining and is invalid.-or- An error occurred while opening the stream.-or- There was no response from the server hosting the resource. + + + Uploads a data buffer to a resource identified by a URI, using the specified method and identifying token. + The URI of the resource to receive the data. + The method used to send the data to the resource. If null, the default is POST for http and STOR for ftp. + The data buffer to send to the resource. + A user-defined object that is passed to the method invoked when the asynchronous operation completes. + The parameter is null. + The URI formed by combining and is invalid.-or- An error occurred while opening the stream.-or- There was no response from the server hosting the resource. + + + Occurs when an asynchronous data-upload operation completes. + + + Uploads a data buffer that contains a array to the URI specified as an asynchronous operation using a task object. + Returns .The task object representing the asynchronous operation. The property on the task object returns a array containing the body of the response received from the resource when the data buffer was uploaded. + The URI of the resource to receive the data. + The data buffer to send to the resource. + The parameter is null. + The URI formed by combining and is invalid.-or- An error occurred while opening the stream.-or- There was no response from the server hosting the resource. + + + Uploads a data buffer that contains a array to the URI specified as an asynchronous operation using a task object. + Returns .The task object representing the asynchronous operation. The property on the task object returns a array containing the body of the response received from the resource when the data buffer was uploaded. + The URI of the resource to receive the data. + The method used to send the data to the resource. If null, the default is POST for http and STOR for ftp. + The data buffer to send to the resource. + The parameter is null. + The URI formed by combining and is invalid.-or- An error occurred while opening the stream.-or- There was no response from the server hosting the resource. + + + Uploads a data buffer that contains a array to the URI specified as an asynchronous operation using a task object. + Returns .The task object representing the asynchronous operation. The property on the task object returns a array containing the body of the response received from the resource when the data buffer was uploaded. + The URI of the resource to receive the data. + The data buffer to send to the resource. + The parameter is null. + The URI formed by combining and is invalid.-or- An error occurred while opening the stream.-or- There was no response from the server hosting the resource. + + + Uploads a data buffer that contains a array to the URI specified as an asynchronous operation using a task object. + Returns .The task object representing the asynchronous operation. The property on the task object returns a array containing the body of the response received from the resource when the data buffer was uploaded. + The URI of the resource to receive the data. + The method used to send the data to the resource. If null, the default is POST for http and STOR for ftp. + The data buffer to send to the resource. + The parameter is null. + The URI formed by combining and is invalid.-or- An error occurred while opening the stream.-or- There was no response from the server hosting the resource. + + + Uploads the specified local file to a resource with the specified URI. + A array containing the body of the response from the resource. + The URI of the resource to receive the file. For example, ftp://localhost/samplefile.txt. + The file to send to the resource. For example, "samplefile.txt". + The parameter is null. -or-The parameter is null. + The URI formed by combining , and is invalid.-or- is null, is , contains invalid characters, or does not exist.-or- An error occurred while uploading the file.-or- There was no response from the server hosting the resource.-or- The Content-type header begins with multipart. + + + + + + + + Uploads the specified local file to the specified resource, using the specified method. + A array containing the body of the response from the resource. + The URI of the resource to receive the file. + The method used to send the file to the resource. If null, the default is POST for http and STOR for ftp. + The file to send to the resource. + The parameter is null. -or-The parameter is null. + The URI formed by combining , and is invalid.-or- is null, is , contains invalid characters, or does not exist.-or- An error occurred while uploading the file.-or- There was no response from the server hosting the resource.-or- The Content-type header begins with multipart. + + + + + + + + Uploads the specified local file to a resource with the specified URI. + A array containing the body of the response from the resource. + The URI of the resource to receive the file. For example, ftp://localhost/samplefile.txt. + The file to send to the resource. For example, "samplefile.txt". + The parameter is null. -or-The parameter is null. + The URI formed by combining , and is invalid.-or- is null, is , contains invalid characters, or does not exist.-or- An error occurred while uploading the file.-or- There was no response from the server hosting the resource.-or- The Content-type header begins with multipart. + + + Uploads the specified local file to the specified resource, using the specified method. + A array containing the body of the response from the resource. + The URI of the resource to receive the file. + The method used to send the file to the resource. If null, the default is POST for http and STOR for ftp. + The file to send to the resource. + The parameter is null. -or-The parameter is null. + The URI formed by combining , and is invalid.-or- is null, is , contains invalid characters, or does not exist.-or- An error occurred while uploading the file.-or- There was no response from the server hosting the resource.-or- The Content-type header begins with multipart. + + + Uploads the specified local file to the specified resource, using the POST method. This method does not block the calling thread. + The URI of the resource to receive the file. For HTTP resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page. + The file to send to the resource. + The parameter is null. -or-The parameter is null. + The URI formed by combining and is invalid.-or- is null, is , contains invalid character, or the specified path to the file does not exist.-or- An error occurred while opening the stream.-or- There was no response from the server hosting the resource.-or- The Content-type header begins with multipart. + + + Uploads the specified local file to the specified resource, using the POST method. This method does not block the calling thread. + The URI of the resource to receive the file. For HTTP resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page. + The method used to send the data to the resource. If null, the default is POST for http and STOR for ftp. + The file to send to the resource. + The parameter is null. -or-The parameter is null. + The URI formed by combining and is invalid.-or- is null, is , contains invalid character, or the specified path to the file does not exist.-or- An error occurred while opening the stream.-or- There was no response from the server hosting the resource.-or- The Content-type header begins with multipart. + + + Uploads the specified local file to the specified resource, using the POST method. This method does not block the calling thread. + The URI of the resource to receive the file. For HTTP resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page. + The method used to send the data to the resource. If null, the default is POST for http and STOR for ftp. + The file to send to the resource. + A user-defined object that is passed to the method invoked when the asynchronous operation completes. + The parameter is null. -or-The parameter is null. + The URI formed by combining and is invalid.-or- is null, is , contains invalid character, or the specified path to the file does not exist.-or- An error occurred while opening the stream.-or- There was no response from the server hosting the resource.-or- The Content-type header begins with multipart. + + + Occurs when an asynchronous file-upload operation completes. + + + Uploads the specified local file to a resource as an asynchronous operation using a task object. + Returns .The task object representing the asynchronous operation. The property on the task object returns a array containing the body of the response received from the resource when the file was uploaded. + The URI of the resource to receive the file. For HTTP resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page. + The local file to send to the resource. + The parameter is null. -or-The parameter is null. + The URI formed by combining and is invalid.-or- is null, is , contains invalid character, or the specified path to the file does not exist.-or- An error occurred while opening the stream.-or- There was no response from the server hosting the resource.-or- The Content-type header begins with multipart. + + + Uploads the specified local file to a resource as an asynchronous operation using a task object. + Returns .The task object representing the asynchronous operation. The property on the task object returns a array containing the body of the response received from the resource when the file was uploaded. + The URI of the resource to receive the file. For HTTP resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page. + The method used to send the data to the resource. If null, the default is POST for http and STOR for ftp. + The local file to send to the resource. + The parameter is null. -or-The parameter is null. + The URI formed by combining and is invalid.-or- is null, is , contains invalid character, or the specified path to the file does not exist.-or- An error occurred while opening the stream.-or- There was no response from the server hosting the resource.-or- The Content-type header begins with multipart. + + + Uploads the specified local file to a resource as an asynchronous operation using a task object. + Returns .The task object representing the asynchronous operation. The property on the task object returns a array containing the body of the response received from the resource when the file was uploaded. + The URI of the resource to receive the file. For HTTP resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page. + The local file to send to the resource. + The parameter is null. -or-The parameter is null. + The URI formed by combining and is invalid.-or- is null, is , contains invalid character, or the specified path to the file does not exist.-or- An error occurred while opening the stream.-or- There was no response from the server hosting the resource.-or- The Content-type header begins with multipart. + + + Uploads the specified local file to a resource as an asynchronous operation using a task object. + Returns .The task object representing the asynchronous operation. The property on the task object returns a array containing the body of the response received from the resource when the file was uploaded. + The URI of the resource to receive the file. For HTTP resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page. + The method used to send the data to the resource. If null, the default is POST for http and STOR for ftp. + The local file to send to the resource. + The parameter is null. -or-The parameter is null. + The URI formed by combining and is invalid.-or- is null, is , contains invalid character, or the specified path to the file does not exist.-or- An error occurred while opening the stream.-or- There was no response from the server hosting the resource.-or- The Content-type header begins with multipart. + + + Occurs when an asynchronous upload operation successfully transfers some or all of the data. + + + Uploads the specified string to the specified resource, using the POST method. + A containing the response sent by the server. + The URI of the resource to receive the string. For Http resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page. + The string to be uploaded. + The parameter is null.-or-The parameter is null. + The URI formed by combining and is invalid.-or- There was no response from the server hosting the resource. + + + + + + + + Uploads the specified string to the specified resource, using the specified method. + A containing the response sent by the server. + The URI of the resource to receive the string. This URI must identify a resource that can accept a request sent with the method. + The HTTP method used to send the string to the resource. If null, the default is POST for http and STOR for ftp. + The string to be uploaded. + The parameter is null.-or-The parameter is null. + The URI formed by combining and is invalid.-or- There was no response from the server hosting the resource.-or- cannot be used to send content. + + + + + + + + Uploads the specified string to the specified resource, using the POST method. + A containing the response sent by the server. + The URI of the resource to receive the string. For Http resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page. + The string to be uploaded. + The parameter is null.-or-The parameter is null. + The URI formed by combining and is invalid.-or- There was no response from the server hosting the resource. + + + Uploads the specified string to the specified resource, using the specified method. + A containing the response sent by the server. + The URI of the resource to receive the string. This URI must identify a resource that can accept a request sent with the method. + The HTTP method used to send the string to the resource. If null, the default is POST for http and STOR for ftp. + The string to be uploaded. + The parameter is null.-or-The parameter is null. + The URI formed by combining and is invalid.-or- There was no response from the server hosting the resource.-or- cannot be used to send content. + + + Uploads the specified string to the specified resource. This method does not block the calling thread. + The URI of the resource to receive the string. For HTTP resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page. + The string to be uploaded. + + is null. + The parameter is null.-or-The parameter is null. + The URI formed by combining and is invalid.-or- There was no response from the server hosting the resource. + + + Uploads the specified string to the specified resource. This method does not block the calling thread. + The URI of the resource to receive the string. For HTTP resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page. + The HTTP method used to send the file to the resource. If null, the default is POST for http and STOR for ftp. + The string to be uploaded. + The parameter is null.-or-The parameter is null. + The URI formed by combining and is invalid.-or- cannot be used to send content.-or- There was no response from the server hosting the resource. + + + Uploads the specified string to the specified resource. This method does not block the calling thread. + The URI of the resource to receive the string. For HTTP resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page. + The HTTP method used to send the file to the resource. If null, the default is POST for http and STOR for ftp. + The string to be uploaded. + A user-defined object that is passed to the method invoked when the asynchronous operation completes. + The parameter is null.-or-The parameter is null. + The URI formed by combining and is invalid.-or- cannot be used to send content.-or- There was no response from the server hosting the resource. + + + Occurs when an asynchronous string-upload operation completes. + + + Uploads the specified string to the specified resource as an asynchronous operation using a task object. + Returns .The task object representing the asynchronous operation. The property on the task object returns a containing the response sent by the server. + The URI of the resource to receive the string. For HTTP resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page. + The string to be uploaded. + + is null. + The parameter is null.-or-The parameter is null. + The URI formed by combining and is invalid.-or- There was no response from the server hosting the resource. + + + Uploads the specified string to the specified resource as an asynchronous operation using a task object. + Returns .The task object representing the asynchronous operation. The property on the task object returns a containing the response sent by the server. + The URI of the resource to receive the string. For HTTP resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page. + The HTTP method used to send the file to the resource. If null, the default is POST for http and STOR for ftp. + The string to be uploaded. + + is null. + The parameter is null.-or-The parameter is null. + The URI formed by combining and is invalid.-or- cannot be used to send content.-or- There was no response from the server hosting the resource. + + + Uploads the specified string to the specified resource as an asynchronous operation using a task object. + Returns .The task object representing the asynchronous operation. The property on the task object returns a containing the response sent by the server. + The URI of the resource to receive the string. For HTTP resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page. + The string to be uploaded. + + is null. + The parameter is null.-or-The parameter is null. + The URI formed by combining and is invalid.-or- There was no response from the server hosting the resource. + + + Uploads the specified string to the specified resource as an asynchronous operation using a task object. + Returns .The task object representing the asynchronous operation. The property on the task object returns a containing the response sent by the server. + The URI of the resource to receive the string. For HTTP resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page. + The HTTP method used to send the file to the resource. If null, the default is POST for http and STOR for ftp. + The string to be uploaded. + + is null. + The parameter is null.-or-The parameter is null. + The URI formed by combining and is invalid.-or- cannot be used to send content.-or- There was no response from the server hosting the resource. + + + Uploads the specified name/value collection to the resource identified by the specified URI. + A array containing the body of the response from the resource. + The URI of the resource to receive the collection. + The to send to the resource. + The parameter is null.-or-The parameter is null. + The URI formed by combining , and is invalid.-or- is null.-or- There was no response from the server hosting the resource.-or- An error occurred while opening the stream.-or- The Content-type header is not null or "application/x-www-form-urlencoded". + + + + + + + + Uploads the specified name/value collection to the resource identified by the specified URI, using the specified method. + A array containing the body of the response from the resource. + The URI of the resource to receive the collection. + The HTTP method used to send the file to the resource. If null, the default is POST for http and STOR for ftp. + The to send to the resource. + The parameter is null.-or-The parameter is null. + The URI formed by combining , and is invalid.-or- is null.-or- An error occurred while opening the stream.-or- There was no response from the server hosting the resource.-or- The Content-type header value is not null and is not application/x-www-form-urlencoded. + + + + + + + + Uploads the specified name/value collection to the resource identified by the specified URI. + A array containing the body of the response from the resource. + The URI of the resource to receive the collection. + The to send to the resource. + The parameter is null.-or-The parameter is null. + The URI formed by combining , and is invalid.-or- is null.-or- There was no response from the server hosting the resource.-or- An error occurred while opening the stream.-or- The Content-type header is not null or "application/x-www-form-urlencoded". + + + Uploads the specified name/value collection to the resource identified by the specified URI, using the specified method. + A array containing the body of the response from the resource. + The URI of the resource to receive the collection. + The HTTP method used to send the file to the resource. If null, the default is POST for http and STOR for ftp. + The to send to the resource. + The parameter is null.-or-The parameter is null. + The URI formed by combining , and is invalid.-or- is null.-or- An error occurred while opening the stream.-or- There was no response from the server hosting the resource.-or- The Content-type header value is not null and is not application/x-www-form-urlencoded. + + + Uploads the data in the specified name/value collection to the resource identified by the specified URI. This method does not block the calling thread. + The URI of the resource to receive the collection. This URI must identify a resource that can accept a request sent with the default method. See remarks. + The to send to the resource. + The parameter is null.-or-The parameter is null. + The URI formed by combining and is invalid.-or- There was no response from the server hosting the resource. + + + Uploads the data in the specified name/value collection to the resource identified by the specified URI, using the specified method. This method does not block the calling thread. + The URI of the resource to receive the collection. This URI must identify a resource that can accept a request sent with the method. + The method used to send the string to the resource. If null, the default is POST for http and STOR for ftp. + The to send to the resource. + The parameter is null.-or-The parameter is null. + The URI formed by combining and is invalid.-or- There was no response from the server hosting the resource.-or- cannot be used to send content. + + + Uploads the data in the specified name/value collection to the resource identified by the specified URI, using the specified method. This method does not block the calling thread, and allows the caller to pass an object to the method that is invoked when the operation completes. + The URI of the resource to receive the collection. This URI must identify a resource that can accept a request sent with the method. + The HTTP method used to send the string to the resource. If null, the default is POST for http and STOR for ftp. + The to send to the resource. + A user-defined object that is passed to the method invoked when the asynchronous operation completes. + The parameter is null.-or-The parameter is null. + The URI formed by combining and is invalid.-or- There was no response from the server hosting the resource.-or- cannot be used to send content. + + + Occurs when an asynchronous upload of a name/value collection completes. + + + Uploads the specified name/value collection to the resource identified by the specified URI as an asynchronous operation using a task object. + Returns .The task object representing the asynchronous operation. The property on the task object returns a array containing the response sent by the server. + The URI of the resource to receive the collection. + The to send to the resource. + The parameter is null.-or-The parameter is null. + The URI formed by combining , and is invalid.-or- There was no response from the server hosting the resource.-or- An error occurred while opening the stream.-or- The Content-type header is not null or "application/x-www-form-urlencoded". + + + Uploads the specified name/value collection to the resource identified by the specified URI as an asynchronous operation using a task object. + Returns .The task object representing the asynchronous operation. The property on the task object returns a array containing the response sent by the server. + The URI of the resource to receive the collection. + The HTTP method used to send the collection to the resource. If null, the default is POST for http and STOR for ftp. + The to send to the resource. + The parameter is null.-or-The parameter is null. + The URI formed by combining , and is invalid.-or- cannot be used to send content.-or- There was no response from the server hosting the resource.-or- An error occurred while opening the stream.-or- The Content-type header is not null or "application/x-www-form-urlencoded". + + + Uploads the specified name/value collection to the resource identified by the specified URI as an asynchronous operation using a task object. + Returns .The task object representing the asynchronous operation. The property on the task object returns a array containing the response sent by the server. + The URI of the resource to receive the collection. + The to send to the resource. + The parameter is null.-or-The parameter is null. + The URI formed by combining , and is invalid.-or- An error occurred while opening the stream.-or- There was no response from the server hosting the resource.-or- The Content-type header value is not null and is not application/x-www-form-urlencoded. + + + Uploads the specified name/value collection to the resource identified by the specified URI as an asynchronous operation using a task object. + Returns .The task object representing the asynchronous operation. The property on the task object returns a array containing the response sent by the server. + The URI of the resource to receive the collection. + The HTTP method used to send the collection to the resource. If null, the default is POST for http and STOR for ftp. + The to send to the resource. + The parameter is null.-or-The parameter is null. + The URI formed by combining , and is invalid.-or- cannot be used to send content.-or- There was no response from the server hosting the resource.-or- An error occurred while opening the stream.-or- The Content-type header is not null or "application/x-www-form-urlencoded". + + + Gets or sets a value that controls whether the are sent with requests. + true if the default credentials are used; otherwise false. The default value is false. + + + + + + Occurs when an asynchronous operation to write data to a resource using a write stream is closed. + + + The exception that is thrown when an error occurs while accessing the network through a pluggable protocol. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class from the specified and instances. + A that contains the information required to serialize the new . + A that contains the source of the serialized stream that is associated with the new . + + + Initializes a new instance of the class with the specified error message. + The text of the error message. + + + Initializes a new instance of the class with the specified error message and nested exception. + The text of the error message. + A nested exception. + + + Initializes a new instance of the class with the specified error message, nested exception, status, and response. + The text of the error message. + A nested exception. + One of the values. + A instance that contains the response from the remote host. + + + Initializes a new instance of the class with the specified error message and status. + The text of the error message. + One of the values. + + + Populates a instance with the data needed to serialize the . + The to be used. + The to be used. + + + Gets the response that the remote host returned. + If a response is available from the Internet resource, a instance that contains the error response from an Internet resource; otherwise, null. + + + Gets the status of the response. + One of the values. + + + Serializes this instance into the specified object. + The object into which this will be serialized. + The destination of the serialization. + + + Defines status codes for the class. + + + The specified cache entry was not found. + + + The remote service point could not be contacted at the transport level. + + + The connection was prematurely closed. + + + The connection for a request that specifies the Keep-alive header was closed unexpectedly. + + + A message was received that exceeded the specified limit when sending a request or receiving a response from the server. + + + The name resolver service could not resolve the host name. + + + An internal asynchronous request is pending. + + + The request was a piplined request and the connection was closed before the response was received. + + + The response received from the server was complete but indicated a protocol-level error. For example, an HTTP protocol error such as 401 Access Denied would use this status. + + + The name resolver service could not resolve the proxy host name. + + + A complete response was not received from the remote server. + + + The request was canceled, the method was called, or an unclassifiable error occurred. This is the default value for . + + + The request was not permitted by the cache policy. In general, this occurs when a request is not cacheable and the effective policy prohibits sending the request to the server. You might receive this status if a request method implies the presence of a request body, a request method requires direct interaction with the server, or a request contains a conditional header. + + + This request was not permitted by the proxy. + + + An error occurred while establishing a connection using SSL. + + + A complete request could not be sent to the remote server. + + + The server response was not a valid HTTP response. + + + No error was encountered. + + + No response was received during the time-out period for a request. + + + A server certificate could not be validated. + + + An exception of unknown type has occurred. + + + Contains protocol headers associated with a request or response. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class from the specified instances of the and classes. + A containing the information required to serialize the . + A containing the source of the serialized stream associated with the new . + + contains invalid characters. + + is a null reference or . + + + Inserts the specified header with the specified value into the collection. + The header to add to the collection. + The content of the header. + The length of is greater than 65535. + This instance does not allow instances of . + + + Inserts the specified header with the specified value into the collection. + The header to add to the collection. + The content of the header. + The length of is greater than 65535. + This instance does not allow instances of . + + + Inserts the specified header into the collection. + The header to add, with the name and value separated by a colon. + + is null or . + + does not contain a colon (:) character.The length of is greater than 65535.-or- The name part of is or contains invalid characters.-or- is a restricted header that should be set with a property.-or- The value part of contains invalid characters. + The length the string after the colon (:) is greater than 65535. + + + Inserts a header with the specified name and value into the collection. + The header to add to the collection. + The content of the header. + + is null, , or contains invalid characters.-or- is a restricted header that must be set with a property setting.-or- contains invalid characters. + The length of is greater than 65535. + + + Inserts a header into the collection without checking whether the header is on the restricted header list. + The header to add to the collection. + The content of the header. + + is null, , or contains invalid characters.-or- contains invalid characters. + + is not null and the length of is too long (greater than 65,535 characters). + + + Gets all header names (keys) in the collection. + An array of type containing all header names in a Web request. + + + Removes all headers from the collection. + + + Gets the number of headers in the collection. + An indicating the number of headers in a request. + + + Get the value of a particular header in the collection, specified by an index into the collection. + A containing the value of the specified header. + The zero-based index of the key to get from the collection. + + is negative. -or- exceeds the size of the collection. + + + Get the value of a particular header in the collection, specified by the name of the header. + A holding the value of the specified header. + The name of the Web header. + + + Returns an enumerator that can iterate through the instance. + An for the . + + + Get the header name at the specified position in the collection. + A holding the header name. + The zero-based index of the key to get from the collection. + + is negative. -or- exceeds the size of the collection. + + + Populates a with the data needed to serialize the target object. + The to populate with data. + A that specifies the destination for this serialization. + + + Gets an array of header values stored in the position of the header collection. + An array of header strings. + The header index to return. + + + Gets an array of header values stored in a header. + An array of header strings. + The header to return. + + + Tests whether the specified HTTP header can be set for the request. + true if the header is restricted; otherwise false. + The header to test. + + is null or . + + contains invalid characters. + + + Tests whether the specified HTTP header can be set for the request or the response. + true if the header is restricted; otherwise, false. + The header to test. + Does the Framework test the response or the request? + + is null or . + + contains invalid characters. + + + Gets or sets the specified request header. + A instance containing the specified header value. + The request header value. + This instance does not allow instances of . + + + + + + Gets or sets the specified response header. + A instance containing the specified header. + The response header value. + The length of is greater than 65535. + This instance does not allow instances of . + + + + + + Gets the collection of header names (keys) in the collection. + A containing all header names in a Web request. + + + Implements the interface and raises the deserialization event when the deserialization is complete. + The source of the deserialization event. + + + Removes the specified header from the collection. + The instance to remove from the collection. + This instance does not allow instances of . + + + + + + Removes the specified header from the collection. + The instance to remove from the collection. + This instance does not allow instances of . + + + + + + Removes the specified header from the collection. + The name of the header to remove from the collection. + + is null. + + is a restricted header.-or- contains invalid characters. + + + Sets the specified header to the specified value. + The value to set. + The content of the header to set. + The length of is greater than 65535. + This instance does not allow instances of . + + + Sets the specified header to the specified value. + The value to set. + The content of the header to set. + The length of is greater than 65535. + This instance does not allow instances of . + + + Sets the specified header to the specified value. + The header to set. + The content of the header to set. + + is null or . + The length of is greater than 65535. + + is a restricted header.-or- or contain invalid characters. + + + Serializes this instance into the specified object. + The object into which this will be serialized. + The destination of the serialization. + + + Converts the to a byte array.. + A array holding the header collection. + + + This method is obsolete. + The representation of the collection. + + + Controls rights to access HTTP Internet resources. + + + Creates a new instance of the class. + + + Initializes a new instance of the class with the specified access rights for the specified URI. + A NetworkAccess value that indicates what kind of access to grant to the specified URI. indicates that the application is allowed to accept connections from the Internet on a local resource. indicates that the application is allowed to connect to specific Internet resources. + A URI string to which access rights are granted. + + is null. + + + Initializes a new instance of the class with the specified access rights for the specified URI regular expression. + A value that indicates what kind of access to grant to the specified URI. indicates that the application is allowed to accept connections from the Internet on a local resource. indicates that the application is allowed to connect to specific Internet resources. + A regular expression that describes the URI to which access is to be granted. + + + Creates a new instance of the class that passes all demands or fails all demands. + A value. + + + This property returns an enumeration of a single accept permissions held by this . The possible objects types contained in the returned enumeration are and . + The interface that contains accept permissions. + + + Adds the specified URI string with the specified access rights to the current . + A that specifies the access rights that are granted to the URI. + A string that describes the URI to which access rights are granted. + + is null. + + + Adds the specified URI with the specified access rights to the current . + A NetworkAccess that specifies the access rights that are granted to the URI. + A regular expression that describes the set of URIs to which access rights are granted. + The parameter is null. + + + This property returns an enumeration of a single connect permissions held by this . The possible objects types contained in the returned enumeration are and . + The interface that contains connect permissions. + + + Creates a copy of a . + A new instance of the class that has the same values as the original. + + + Reconstructs a from an XML encoding. + The XML encoding from which to reconstruct the . + The parameter is null. + + is not a permission element for this type. + + + + + + + Returns the logical intersection of two instances. + A new that represents the intersection of the current instance and the parameter. If the intersection is empty, the method returns null. + The to compare with the current instance. + + is not null or of type + + + + + + + Determines whether the current is a subset of the specified object. + true if the current instance is a subset of the parameter; otherwise, false. If the target is null, the method returns true for an empty current permission that is not unrestricted and false otherwise. + The to compare to the current . + The target parameter is not an instance of . + The current instance contains a Regex-encoded right and there is not exactly the same right found in the target instance. + + + Checks the overall permission state of the . + true if the was created with the ; otherwise, false. + + + Creates an XML encoding of a and its current state. + A that contains an XML-encoded representation of the , including state information. + + + Returns the logical union between two instances of the class. + A that represents the union of the current instance and the parameter. If either WebPermission is , the method returns a that is . If the target is null, the method returns a copy of the current . + The to combine with the current . + target is not null or of type . + + + Specifies permission to access Internet resources. This class cannot be inherited. + + + Initializes a new instance of the class with a value that specifies the security actions that can be performed on this class. + One of the values. + + is not a valid value. + + + Gets or sets the URI string accepted by the current . + A string containing the URI accepted by the current . + + is not null when you attempt to set the value. If you wish to specify more than one Accept URI, use an additional attribute declaration statement. + + + Gets or sets a regular expression pattern that describes the URI accepted by the current . + A string containing a regular expression pattern that describes the URI accepted by the current . This string must be escaped according to the rules for encoding a constructor string. + + is not null when you attempt to set the value. If you wish to specify more than one Accept URI, use an additional attribute declaration statement. + + + + + + + Gets or sets the URI connection string controlled by the current . + A string containing the URI connection controlled by the current . + + is not null when you attempt to set the value. If you wish to specify more than one Connect URI, use an additional attribute declaration statement. + + + Gets or sets a regular expression pattern that describes the URI connection controlled by the current . + A string containing a regular expression pattern that describes the URI connection controlled by this . + + is not null when you attempt to set the value. If you wish to specify more than one connect URI, use an additional attribute declaration statement. + + + + + + + Creates and returns a new instance of the class. + A corresponding to the security declaration. + + + + + + Contains HTTP proxy settings for the class. + + + Initializes an empty instance of the class. + + + Initializes an instance of the class using previously serialized content. + The serialization data. + The context for the serialized data. + + + Initializes a new instance of the class with the specified URI. + The URI of the proxy server. + + is an invalid URI. + + + Initializes a new instance of the class with the specified URI and bypass setting. + The URI of the proxy server. + true to bypass the proxy for local addresses; otherwise, false. + + is an invalid URI. + + + Initializes a new instance of the class with the specified URI, bypass setting, and list of URIs to bypass. + The URI of the proxy server. + true to bypass the proxy for local addresses; otherwise, false. + An array of regular expression strings that contain the URIs of the servers to bypass. + + is an invalid URI. + + + Initializes a new instance of the class with the specified URI, bypass setting, list of URIs to bypass, and credentials. + The URI of the proxy server. + true to bypass the proxy for local addresses; otherwise, false. + An array of regular expression strings that contains the URIs of the servers to bypass. + An instance to submit to the proxy server for authentication. + + is an invalid URI. + + + Initializes a new instance of the class with the specified host and port number. + The name of the proxy host. + The port number on to use. + The URI formed by combining and is not a valid URI. + + + Initializes a new instance of the class from the specified instance. + A instance that contains the address of the proxy server. + + + Initializes a new instance of the class with the instance and bypass setting. + A instance that contains the address of the proxy server. + true to bypass the proxy for local addresses; otherwise, false. + + + Initializes a new instance of the class with the specified instance, bypass setting, and list of URIs to bypass. + A instance that contains the address of the proxy server. + true to bypass the proxy for local addresses; otherwise, false. + An array of regular expression strings that contains the URIs of the servers to bypass. + + + Initializes a new instance of the class with the specified instance, bypass setting, list of URIs to bypass, and credentials. + A instance that contains the address of the proxy server. + true to bypass the proxy for local addresses; otherwise, false. + An array of regular expression strings that contains the URIs of the servers to bypass. + An instance to submit to the proxy server for authentication. + + + Gets or sets the address of the proxy server. + A instance that contains the address of the proxy server. + + + Gets a list of addresses that do not use the proxy server. + An that contains a list of arrays that represents URIs that do not use the proxy server when accessed. + + + Gets or sets an array of addresses that do not use the proxy server. + An array that contains a list of regular expressions that describe URIs that do not use the proxy server when accessed. + + + Gets or sets a value that indicates whether to bypass the proxy server for local addresses. + true to bypass the proxy server for local addresses; otherwise, false. The default value is false. + + + Gets or sets the credentials to submit to the proxy server for authentication. + An instance that contains the credentials to submit to the proxy server for authentication. + You attempted to set this property when the property was set to true. + + + + + + Reads the Internet Explorer nondynamic proxy settings. + A instance that contains the nondynamic proxy settings from Internet Explorer 5.5 and later. + + + + + + + + + + Populates a with the data that is needed to serialize the target object. + The to populate with data. + A that specifies the destination for this serialization. + + + Returns the proxied URI for a request. + The instance of the Internet resource, if the resource is on the bypass list; otherwise, the instance of the proxy. + The instance of the requested Internet resource. + The parameter is null. + + + Indicates whether to use the proxy server for the specified host. + true if the proxy server should not be used for ; otherwise, false. + The instance of the host to check for proxy use. + The parameter is null. + + + Creates the serialization data and context that are used by the system to serialize a object. + The object to populate with data. + A structure that indicates the destination for this serialization. + + + Gets or sets a value that controls whether the are sent with requests. + true if the default credentials are used; otherwise, false. The default value is false. + You attempted to set this property when the property contains credentials other than the default credentials. For more information, see the Remarks section. + + + + + + Makes a request to a Uniform Resource Identifier (URI). This is an abstract class. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class from the specified instances of the and classes. + A that contains the information required to serialize the new instance. + A that indicates the source of the serialized stream associated with the new instance. + Any attempt is made to access the constructor, when the constructor is not overridden in a descendant class. + + + Aborts the Request + Any attempt is made to access the method, when the method is not overridden in a descendant class. + + + + + + Gets or sets values indicating the level of authentication and impersonation used for this request. + A bitwise combination of the values. The default value is .In mutual authentication, both the client and server present credentials to establish their identity. The and values are relevant for Kerberos authentication. Kerberos authentication can be supported directly, or can be used if the Negotiate security protocol is used to select the actual security protocol. For more information about authentication protocols, see Internet Authentication.To determine whether mutual authentication occurred, check the property. If you specify the authentication flag value and mutual authentication does not occur, your application will receive an with a inner exception indicating that mutual authentication failed. + + + When overridden in a descendant class, provides an asynchronous version of the method. + An that references the asynchronous request. + The delegate. + An object containing state information for this asynchronous request. + Any attempt is made to access the method, when the method is not overridden in a descendant class. + + + When overridden in a descendant class, begins an asynchronous request for an Internet resource. + An that references the asynchronous request. + The delegate. + An object containing state information for this asynchronous request. + Any attempt is made to access the method, when the method is not overridden in a descendant class. + + + Gets or sets the cache policy for this request. + A object that defines a cache policy. + + + When overridden in a descendant class, gets or sets the name of the connection group for the request. + The name of the connection group for the request. + Any attempt is made to get or set the property, when the property is not overridden in a descendant class. + + + + + + When overridden in a descendant class, gets or sets the content length of the request data being sent. + The number of bytes of request data being sent. + Any attempt is made to get or set the property, when the property is not overridden in a descendant class. + + + + + + When overridden in a descendant class, gets or sets the content type of the request data being sent. + The content type of the request data. + Any attempt is made to get or set the property, when the property is not overridden in a descendant class. + + + + + + Initializes a new instance for the specified URI scheme. + A descendant for the specific URI scheme. + The URI that identifies the Internet resource. + The request scheme specified in has not been registered. + + is null. + The caller does not have permission to connect to the requested URI or a URI that the request is redirected to. + NoteIn the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, , instead.The URI specified in is not a valid URI. + + + + + + + + Initializes a new instance for the specified URI scheme. + A descendant for the specified URI scheme. + A containing the URI of the requested resource. + The request scheme specified in is not registered. + + is null. + The caller does not have permission to connect to the requested URI or a URI that the request is redirected to. + + + + + + + + Initializes a new instance for the specified URI scheme. + A descendant for the specified URI scheme. + A containing the URI of the requested resource. + The request scheme specified in is not registered. + + is null. + The caller does not have permission to connect to the requested URI or a URI that the request is redirected to. + + + + + + + + Initializes a new instance for the specified URI string. + Returns .An instance for the specific URI string. + A URI string that identifies the Internet resource. + The request scheme specified in is the http or https scheme. + + is null. + The caller does not have permission to connect to the requested URI or a URI that the request is redirected to. + The URI specified in is not a valid URI. + + + Initializes a new instance for the specified URI. + Returns .An instance for the specific URI string. + A URI that identifies the Internet resource. + The request scheme specified in is the http or https scheme. + + is null. + The caller does not have permission to connect to the requested URI or a URI that the request is redirected to. + The URI specified in is not a valid URI. + + + When overridden in a descendant class, gets the factory object derived from the class used to create the instantiated for making the request to the specified URI. + Returns .The derived type returned by the method. + + + When overridden in a descendant class, gets or sets the network credentials used for authenticating the request with the Internet resource. + An containing the authentication credentials associated with the request. The default is null. + Any attempt is made to get or set the property, when the property is not overridden in a descendant class. + + + + + + Gets or sets the default cache policy for this request. + A that specifies the cache policy in effect for this request when no other policy is applicable. + + + Gets or sets the global HTTP proxy. + An used by every call to instances of . + + + When overridden in a descendant class, returns a for writing data to the Internet resource. + A to write data to. + An that references a pending request for a stream. + Any attempt is made to access the method, when the method is not overridden in a descendant class. + + + When overridden in a descendant class, returns a . + A that contains a response to the Internet request. + An that references a pending request for a response. + Any attempt is made to access the method, when the method is not overridden in a descendant class. + + + Populates a with the data needed to serialize the target object. + The to populate with data. + A that specifies the destination for this serialization. + + + When overridden in a descendant class, returns a for writing data to the Internet resource. + A for writing data to the Internet resource. + Any attempt is made to access the method, when the method is not overridden in a descendant class. + + + + + + When overridden in a descendant class, returns a for writing data to the Internet resource as an asynchronous operation. + Returns .The task object representing the asynchronous operation. + + + When overridden in a descendant class, returns a response to an Internet request. + A containing the response to the Internet request. + Any attempt is made to access the method, when the method is not overridden in a descendant class. + + + + + + When overridden in a descendant class, returns a response to an Internet request as an asynchronous operation. + Returns .The task object representing the asynchronous operation. + + + Returns a proxy configured with the Internet Explorer settings of the currently impersonated user. + An used by every call to instances of . + + + When overridden in a descendant class, gets or sets the collection of header name/value pairs associated with the request. + A containing the header name/value pairs associated with this request. + Any attempt is made to get or set the property, when the property is not overridden in a descendant class. + + + + + + Gets or sets the impersonation level for the current request. + A value. + + + When overridden in a descendant class, gets or sets the protocol method to use in this request. + The protocol method to use in this request. + If the property is not overridden in a descendant class, any attempt is made to get or set the property. + + + + + + When overridden in a descendant class, indicates whether to pre-authenticate the request. + true to pre-authenticate; otherwise, false. + Any attempt is made to get or set the property, when the property is not overridden in a descendant class. + + + + + + When overridden in a descendant class, gets or sets the network proxy to use to access this Internet resource. + The to use to access the Internet resource. + Any attempt is made to get or set the property, when the property is not overridden in a descendant class. + + + + + + Register an object. + The object to register. + + + Registers a descendant for the specified URI. + true if registration is successful; otherwise, false. + The complete URI or URI prefix that the descendant services. + The create method that the calls to create the descendant. + + is null-or- is null. + + + + + + + + When overridden in a descendant class, gets the URI of the Internet resource associated with the request. + A representing the resource associated with the request + Any attempt is made to get or set the property, when the property is not overridden in a descendant class. + + + + + + When overridden in a descendant class, populates a instance with the data needed to serialize the . + A , which holds the serialized data for the . + A that contains the destination of the serialized stream associated with the new . + An attempt is made to serialize the object, when the interface is not overridden in a descendant class. + + + Gets or sets the length of time, in milliseconds, before the request times out. + The length of time, in milliseconds, until the request times out, or the value to indicate that the request does not time out. The default value is defined by the descendant class. + Any attempt is made to get or set the property, when the property is not overridden in a descendant class. + + + + + + When overridden in a descendant class, gets or sets a value that controls whether are sent with requests. + true if the default credentials are used; otherwise false. The default value is false. + You attempted to set this property after the request was sent. + Any attempt is made to access the property, when the property is not overridden in a descendant class. + + + + + + Container class for , , and classes. This class cannot be inherited + + + Represents the types of file protocol methods that can be used with a FILE request. This class cannot be inherited. + + + Represents the FILE GET protocol method that is used to retrieve a file from a specified location. + + + Represents the FILE PUT protocol method that is used to copy a file to a specified location. + + + Represents the types of FTP protocol methods that can be used with an FTP request. This class cannot be inherited. + + + Represents the FTP APPE protocol method that is used to append a file to an existing file on an FTP server. + + + Represents the FTP DELE protocol method that is used to delete a file on an FTP server. + + + Represents the FTP RETR protocol method that is used to download a file from an FTP server. + + + Represents the FTP MDTM protocol method that is used to retrieve the date-time stamp from a file on an FTP server. + + + Represents the FTP SIZE protocol method that is used to retrieve the size of a file on an FTP server. + + + Represents the FTP NLIST protocol method that gets a short listing of the files on an FTP server. + + + Represents the FTP LIST protocol method that gets a detailed listing of the files on an FTP server. + + + Represents the FTP MKD protocol method creates a directory on an FTP server. + + + Represents the FTP PWD protocol method that prints the name of the current working directory. + + + Represents the FTP RMD protocol method that removes a directory. + + + Represents the FTP RENAME protocol method that renames a directory. + + + Represents the FTP STOR protocol method that uploads a file to an FTP server. + + + Represents the FTP STOU protocol that uploads a file with a unique name to an FTP server. + + + Represents the types of HTTP protocol methods that can be used with an HTTP request. + + + Represents the HTTP CONNECT protocol method that is used with a proxy that can dynamically switch to tunneling, as in the case of SSL tunneling. + + + Represents an HTTP GET protocol method. + + + Represents an HTTP HEAD protocol method. The HEAD method is identical to GET except that the server only returns message-headers in the response, without a message-body. + + + Represents an HTTP MKCOL request that creates a new collection (such as a collection of pages) at the location specified by the request-Uniform Resource Identifier (URI). + + + Represents an HTTP POST protocol method that is used to post a new entity as an addition to a URI. + + + Represents an HTTP PUT protocol method that is used to replace an entity identified by a URI. + + + Provides a response from a Uniform Resource Identifier (URI). This is an abstract class. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class from the specified instances of the and classes. + An instance of the class that contains the information required to serialize the new instance. + An instance of the class that indicates the source of the serialized stream that is associated with the new instance. + Any attempt is made to access the constructor, when the constructor is not overridden in a descendant class. + + + When overridden by a descendant class, closes the response stream. + Any attempt is made to access the method, when the method is not overridden in a descendant class. + + + + + + When overridden in a descendant class, gets or sets the content length of data being received. + The number of bytes returned from the Internet resource. + Any attempt is made to get or set the property, when the property is not overridden in a descendant class. + + + + + + When overridden in a derived class, gets or sets the content type of the data being received. + A string that contains the content type of the response. + Any attempt is made to get or set the property, when the property is not overridden in a descendant class. + + + + + + Releases the unmanaged resources used by the object. + + + Releases the unmanaged resources used by the object, and optionally disposes of the managed resources. + true to release both managed and unmanaged resources; false to releases only unmanaged resources. + + + Populates a with the data that is needed to serialize the target object. + The to populate with data. + A that specifies the destination for this serialization. + + + When overridden in a descendant class, returns the data stream from the Internet resource. + An instance of the class for reading data from the Internet resource. + Any attempt is made to access the method, when the method is not overridden in a descendant class. + + + + + + When overridden in a derived class, gets a collection of header name-value pairs associated with this request. + An instance of the class that contains header values associated with this response. + Any attempt is made to get or set the property, when the property is not overridden in a descendant class. + + + + + + Gets a value that indicates whether this response was obtained from the cache. + true if the response was taken from the cache; otherwise, false. + + + Gets a value that indicates whether mutual authentication occurred. + true if both client and server were authenticated; otherwise, false. + + + When overridden in a derived class, gets the URI of the Internet resource that actually responded to the request. + An instance of the class that contains the URI of the Internet resource that actually responded to the request. + Any attempt is made to get or set the property, when the property is not overridden in a descendant class. + + + + + + Gets a value that indicates if headers are supported. + Returns .true if headers are supported; otherwise, false. + + + Populates a instance with the data that is needed to serialize . + A that will hold the serialized data for the . + A that contains the destination of the serialized stream that is associated with the new . + + + Provides methods for encoding and decoding URLs when processing Web requests. + + + Converts a string that has been HTML-encoded for HTTP transmission into a decoded string. + A decoded string. + The string to decode. + + + Converts a string that has been HTML-encoded into a decoded string, and sends the decoded string to a output stream. + The string to decode. + A stream of output. + The parameter cannot be null if the parameter is not null. + + + Converts a string to an HTML-encoded string. + An encoded string. + The string to encode. + + + Converts a string into an HTML-encoded string, and returns the output as a stream of output. + The string to encode. + A output stream. + The parameter cannot be null if the parameter is not null. + + + Converts a string that has been encoded for transmission in a URL into a decoded string. + Returns .A decoded string. + A URL-encoded string to decode. + + + Converts an encoded byte array that has been encoded for transmission in a URL into a decoded byte array. + Returns .A decoded array. + A URL-encoded array to decode. + The offset, in bytes, from the start of the array to decode. + The count, in bytes, to decode from the array. + + + Converts a text string into a URL-encoded string. + Returns .A URL-encoded string. + The text to URL-encode. + + + Converts a byte array into a URL-encoded byte array. + Returns .An encoded array. + The array to URL-encode. + The offset, in bytes, from the start of the array to encode. + The count, in bytes, to encode from the array. + + + Provides data for the event. + + + Initializes a new instance of the class. + + + Gets the error value when a write stream is closed. + Returns . + + + Represents the method that will handle the event of a . + + + Specifies the meaning of time values that control caching behavior for resources obtained using objects. + + + Content can be taken from the cache until it is older than the age specified with this value. + + + + and . + + + + and . + + + Content can be taken from the cache after it has expired, until the time specified with this value elapses. + + + Content can be taken from the cache if the time remaining before expiration is greater than or equal to the time specified with this value. + + + For internal use only. The Framework will throw an if you try to use this member. + + + Specifies caching behavior for resources obtained using the Hypertext Transfer protocol (HTTP). + + + Satisfies a request by using the server. No entries are taken from caches, added to caches, or removed from caches between the client and server. No entries are taken from caches, added to caches, or removed from caches between the client and server. This is the default cache behavior specified in the machine configuration file that ships with the .NET Framework. + + + Satisfies a request for a resource from the cache if the resource is available; otherwise, sends a request for a resource to the server. If the requested item is available in any cache between the client and the server, the request might be satisfied by the intermediate cache. + + + Satisfies a request using the locally cached resource; does not send a request for an item that is not in the cache. When this cache policy level is specified, a exception is thrown if the item is not in the client cache. + + + Satisfies a request for a resource either from the local computer's cache or a remote cache on the local area network. If the request cannot be satisfied, a exception is thrown. In the HTTP caching protocol, this is achieved using the only-if-cached cache control directive. + + + Satisfies a request for a resource either by using the cached copy of the resource or by sending a request for the resource to the server. The action taken is determined by the current cache policy and the age of the content in the cache. This is the cache level that should be used by most applications. + + + Never satisfies a request by using resources from the cache and does not cache resources. If the resource is present in the local cache, it is removed. This policy level indicates to intermediate caches that they should remove the resource. In the HTTP caching protocol, this is achieved using the no-cache cache control directive. + + + Satisfies a request by using the server or a cache other than the local cache. Before the request can be satisfied by an intermediate cache, that cache must revalidate its cached entry with the server. In the HTTP caching protocol, this is achieved using the max-age = 0 cache control directive and the no-cache Pragma header. + + + Satisfies a request by using the server. The response might be saved in the cache. In the HTTP caching protocol, this is achieved using the no-cache cache control directive and the no-cache Pragma header. + + + Compares the copy of the resource in the cache with the copy on the server. If the copy on the server is newer, it is used to satisfy the request and replaces the copy in the cache. If the copy in the cache is the same as the server copy, the cached copy is used. In the HTTP caching protocol, this is achieved using a conditional request. + + + Defines an application's caching requirements for resources obtained by using objects. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified cache synchronization date. + A object that specifies the time when resources stored in the cache must be revalidated. + + + Initializes a new instance of the class using the specified age control and time values. + One of the following enumeration values: , , or . + A value that specifies an amount of time. See the Remarks section for more information. + The value specified for the parameter cannot be used with this constructor. + + + Initializes a new instance of the class using the specified maximum age, age control value, and time value. + An value. + A value that specifies the maximum age for resources. + A value that specifies an amount of time. See the Remarks section for more information.   + The value specified for the parameter is not valid. + + + Initializes a new instance of the class using the specified maximum age, age control value, time value, and cache synchronization date. + An value. + A value that specifies the maximum age for resources. + A value that specifies an amount of time. See the Remarks section for more information.   + A object that specifies the time when resources stored in the cache must be revalidated. + + + Initializes a new instance of the class using the specified cache policy. + An value. + + + Gets the cache synchronization date for this instance. + A value set to the date specified when this instance was created. If no date was specified, this property's value is . + + + Gets the value that was specified when this instance was created. + A value that specifies the cache behavior for resources that were obtained using objects. + + + Gets the maximum age permitted for a resource returned from the cache. + A value that is set to the maximum age value specified when this instance was created. If no date was specified, this property's value is . + + + Gets the maximum staleness value that is permitted for a resource returned from the cache. + A value that is set to the maximum staleness value specified when this instance was created. If no date was specified, this property's value is . + + + Gets the minimum freshness that is permitted for a resource returned from the cache. + A value that specifies the minimum freshness specified when this instance was created. If no date was specified, this property's value is . + + + Returns a string representation of this instance. + A value that contains the property values for this instance. + + + Specifies caching behavior for resources obtained using and its derived classes. + + + Satisfies a request by using the server. No entries are taken from caches, added to caches, or removed from caches between the client and server. This is the default cache behavior specified in the machine configuration file that ships with the .NET Framework. + + + Satisfies a request for a resource from the cache, if the resource is available; otherwise, sends a request for a resource to the server. If the requested item is available in any cache between the client and the server, the request might be satisfied by the intermediate cache. + + + Satisfies a request using the locally cached resource; does not send a request for an item that is not in the cache. When this cache policy level is specified, a exception is thrown if the item is not in the client cache. + + + Satisfies a request for a resource either by using the cached copy of the resource or by sending a request for the resource to the server. The action taken is determined by the current cache policy and the age of the content in the cache. This is the cache level that should be used by most applications. + + + Never satisfies a request by using resources from the cache and does not cache resources. If the resource is present in the local cache, it is removed. This policy level indicates to intermediate caches that they should remove the resource. In the HTTP caching protocol, this is achieved using the no-cache cache control directive. + + + Satisfies a request by using the server. The response might be saved in the cache. In the HTTP caching protocol, this is achieved using the no-cache cache control directive and the no-cache Pragma header. + + + Satisfies a request by using the cached copy of the resource if the timestamp is the same as the timestamp of the resource on the server; otherwise, the resource is downloaded from the server, presented to the caller, and stored in the cache. + + + Defines an application's caching requirements for resources obtained by using objects. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. using the specified cache policy. + A that specifies the cache behavior for resources obtained using objects. + level is not a valid .value. + + + Gets the value specified when this instance was constructed. + A value that specifies the cache behavior for resources obtained using objects. + + + Returns a string representation of this instance. + A containing the for this instance. + + + Represents the type information for an authentication module. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with the specified type information. + A string that identifies the type and the assembly that contains it. + + + Gets or sets the type and assembly information for the current instance. + A string that identifies a type that implements an authentication module or null if no value has been specified. + + + Represents a container for authentication module configuration elements. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Adds an element to the collection. + The to add to the collection. + + + Removes all elements from the collection. + + + Returns the index of the specified configuration element. + The zero-based index of . + A . + + + Gets or sets the element at the specified position in the collection. + The at the specified location. + The zero-based index of the element. + + + Gets or sets the element with the specified key. + The with the specified key or null if there is no element with the specified key. + The key for an element in the collection. + + + Removes the specified configuration element from the collection. + The to remove. + + + Removes the element with the specified key. + The key of the element to remove. + + + Removes the element at the specified index. + The zero-based index of the element to remove. + + + Represents the configuration section for authentication modules. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Gets the collection of authentication modules in the section. + A that contains the registered authentication modules. + + + Represents the address information for resources that are not retrieved using a proxy server. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with the specified type information. + A string that identifies the address of a resource. + + + Gets or sets the addresses of resources that bypass the proxy server. + A string that identifies a resource. + + + Represents a container for the addresses of resources that bypass the proxy server. This class cannot be inherited. + + + Initializes an empty instance of the class. + + + Adds an element to the collection. + The to add to the collection. + + + Removes all elements from the collection. + + + Returns the index of the specified configuration element. + The zero-based index of . + A . + + + Gets or sets the element at the specified position in the collection. + The at the specified location. + The zero-based index of the element. + + + Gets or sets the element with the specified key. + The with the specified key, or null if there is no element with the specified key. + The key for an element in the collection. + + + Removes the specified configuration element from the collection. + The to remove. + + + Removes the element with the specified key. + The key of the element to remove. + + + Removes the element at the specified index. + The zero-based index of the element to remove. + + + Represents the maximum number of connections to a remote computer. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with the specified address and connection limit information. + A string that identifies the address of a remote computer. + An integer that identifies the maximum number of connections allowed to from the local computer. + + + Gets or sets the address for remote computers. + A string that contains a regular expression describing an IP address or DNS name. + + + Gets or sets the maximum number of connections that can be made to a remote computer. + An integer that specifies the maximum number of connections. + + + Represents a container for connection management configuration elements. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Adds an element to the collection. + The to add to the collection. + + + Removes all elements from the collection. + + + Returns the index of the specified configuration element. + The zero-based index of . + A . + + + Gets or sets the element at the specified position in the collection. + The at the specified location. + The zero-based index of the element. + + + Gets or sets the element with the specified key. + The with the specified key or null if there is no element with the specified key. + The key for an element in the collection. + + + Removes the specified configuration element from the collection. + The to remove. + + + Removes the element with the specified key. + The key of the element to remove. + + + Removes the element at the specified index. + The zero-based index of the element to remove. + + + Represents the configuration section for connection management. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Gets the collection of connection management objects in the section. + A that contains the connection management information for the local computer. + + + Represents the configuration section for Web proxy server usage. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Gets the collection of resources that are not obtained using the Web proxy server. + A that contains the addresses of resources that bypass the Web proxy server. + + + Gets or sets whether a Web proxy is used. + true if a Web proxy will be used; otherwise, false. + + + Gets the type information for a custom Web proxy implementation. + A . The type information for a custom Web proxy implementation. + + + Gets the URI that identifies the Web proxy server to use. + A . The URI that identifies the Web proxy server. + + + Gets or sets whether default credentials are to be used to access a Web proxy server. + true if default credentials are to be used; otherwise, false. + + + Represents the default FTP cache policy for network resources. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Gets or sets FTP caching behavior for the local machine. + A value that specifies the cache behavior. + + + Represents the default HTTP cache policy for network resources. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Gets or sets the maximum age permitted for a resource returned from the cache. + A value that specifies the maximum age for cached resources specified in the configuration file. + + + Gets or sets the maximum staleness value permitted for a resource returned from the cache. + A value that is set to the maximum staleness value specified in the configuration file. + + + Gets or sets the minimum freshness permitted for a resource returned from the cache. + A value that specifies the minimum freshness specified in the configuration file. + + + Gets or sets HTTP caching behavior for the local machine. + A value that specifies the cache behavior. + + + Represents the HttpListener element in the configuration file. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Gets the default timeout elements used for an object. + Returns .The timeout elements used for an object. + + + Gets a value that indicates if uses the raw unescaped URI instead of the converted URI. + A Boolean value that indicates if uses the raw unescaped URI, rather than the converted URI. + + + Represents the timeouts element in the configuration file. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Gets the time, in seconds, allowed for the to drain the entity body on a Keep-Alive connection. + Returns .The time, in seconds, allowed for the to drain the entity body on a Keep-Alive connection. + + + Gets the time, in seconds, allowed for the request entity body to arrive. + Returns .The time, in seconds, allowed for the request entity body to arrive. + + + Gets the time, in seconds, allowed for the to parse the request header. + Returns .The time, in seconds, allowed for the to parse the request header. + + + Gets the time, in seconds, allowed for an idle connection. + Returns .The time, in seconds, allowed for an idle connection. + + + Gets the minimum send rate, in bytes-per-second, for the response. + Returns .The minimum send rate, in bytes-per-second, for the response. + + + Gets the time, in seconds, allowed for the request to remain in the request queue before the picks it up. + Returns .The time, in seconds, allowed for the request to remain in the request queue before the picks it up. + + + Represents the maximum length for response headers. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Gets or sets the maximum allowed length of an error response. + A 32-bit signed integer containing the maximum length in kilobytes (1024 bytes) of the error response. The default value is 64. + + + Gets or sets the maximum allowed length of the response headers. + A 32-bit signed integer containing the maximum length in kilobytes (1024 bytes) of the response headers. The default value is 64. + + + Gets or sets the maximum length of an upload in response to an unauthorized error code. + A 32-bit signed integer containing the maximum length (in multiple of 1,024 byte units) of an upload in response to an unauthorized error code. A value of -1 indicates that no size limit will be imposed on the upload. Setting the property to any other value will only send the request body if it is smaller than the number of bytes specified. So a value of 1 would indicate to only send the request body if it is smaller than 1,024 bytes. The default value for this property is -1. + + + Setting this property ignores validation errors that occur during HTTP parsing. + Boolean that indicates whether this property has been set. + + + Determines whether Internet Protocol version 6 is enabled on the local computer. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Gets or sets a Boolean value that indicates whether Internet Protocol version 6 is enabled on the local computer. + true if IPv6 is enabled; otherwise, false. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + + Gets the SMTP settings for the local computer. + A object that contains configuration information for the local computer. + + + Represents the type information for a custom module. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Gets or sets the type and assembly information for the current instance. + A string that identifies a type that implements the interface or null if no value has been specified. + + + Gets the section group information for the networking namespaces. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Gets the configuration section containing the authentication modules registered for the local computer. + A object. + + + Gets the configuration section containing the connection management settings for the local computer. + A object. + + + Gets the configuration section containing the default Web proxy server settings for the local computer. + A object. + + + Gets the System.Net configuration section group from the specified configuration file. + A that represents the System.Net settings in . + A that represents a configuration file. + + + Gets the configuration section containing the SMTP client e-mail settings for the local computer. + A object. + + + Gets the configuration section containing the cache configuration settings for the local computer. + A object. + + + Gets the configuration section containing the network settings for the local computer. + A object. + + + Gets the configuration section containing the modules registered for use with the class. + A object. + + + Represents the performance counter element in the System.Net configuration file that determines whether networking performance counters are enabled. This class cannot be inherited. + + + Instantiates a object. + + + Gets or sets whether performance counters are enabled. + true if performance counters are enabled; otherwise, false. + + + Identifies the configuration settings for Web proxy server. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Gets or sets an value that controls whether the Web proxy is automatically detected. + + if the is automatically detected; if the is not automatically detected; or . + + + Gets or sets a value that indicates whether local resources are retrieved by using a Web proxy server. + A .Avalue that indicates whether local resources are retrieved by using a Web proxy server. + + + Gets or sets the URI that identifies the Web proxy server to use. + A containing a URI. + + + Gets or sets an value that specifies the location of the automatic proxy detection script. + A specifying the location of the automatic proxy detection script. + + + Gets or sets a value that controls whether the Internet Explorer Web proxy settings are used. + true if the Internet Explorer LAN settings are used to detect and configure the default used for requests; otherwise, false. + + + Specifies whether the proxy is automatically detected. + + + The proxy is not automatically detected. + + + The proxy is automatically detected. + + + Unspecified. + + + Specifies whether the proxy is bypassed for local resources. + + + All requests for local resources should go through the proxy + + + Access local resources directly. + + + Unspecified. + + + Specifies whether to use the local system proxy settings to determine whether the proxy is bypassed for local resources. + + + Do not use system default proxy setting values + + + Use system default proxy setting values. + + + The system default proxy setting is unspecified. + + + Represents the configuration section for cache behavior. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Gets the default FTP caching behavior for the local computer. + A that defines the default cache policy. + + + Gets the default caching behavior for the local computer. + A that defines the default cache policy. + + + Gets or sets the default cache policy level. + A enumeration value. + + + Gets or sets a Boolean value that enables caching on the local computer. + true if caching is disabled on the local computer; otherwise, false. + + + Gets or sets a Boolean value that indicates whether the local computer cache is private. + true if the cache provides user isolation; otherwise, false. + + + Gets or sets a value used as the maximum age for cached resources that do not have expiration information. + A that provides a default maximum age for cached resources. + + + Represents the default settings used to create connections to a remote computer. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Gets or sets a Boolean value that controls checking host name information in an X509 certificate. + true to specify host name checking; otherwise, false. + + + Gets or sets a Boolean value that indicates whether the certificate is checked against the certificate authority revocation list. + true if the certificate revocation list is checked; otherwise, false.The default value is false. + + + Gets or sets the amount of time after which address information is refreshed. + A that specifies when addresses are resolved using DNS. + + + Gets or sets a Boolean value that controls using different IP addresses on connections to the same server. + true to enable DNS round-robin behavior; otherwise, false. + + + Gets or sets the to use. + The encryption policy to use for a instance. + + + Gets or sets a Boolean value that determines whether 100-Continue behavior is used. + true to expect 100-Continue responses for POST requests; otherwise, false. The default value is true. + + + Gets or sets a Boolean value that determines whether the Nagle algorithm is used. + true to use the Nagle algorithm; otherwise, false. The default value is true. + + + Represents the configuration section for sockets, IPv6, response headers, and service points. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Gets the configuration element that controls the settings used by an object. + An object.The configuration element that controls the settings used by an object. + + + Gets the configuration element that controls the settings used by an object. + A object.The configuration element that controls the maximum response header length and other settings used by an object. + + + Gets the configuration element that enables Internet Protocol version 6 (IPv6). + A .The configuration element that controls setting used by IPv6. + + + Gets the configuration element that controls whether network performance counters are enabled. + A .The configuration element that controls setting used network performance counters. + + + Gets the configuration element that controls settings for connections to remote host computers. + A object.The configuration element that that controls setting used network performance counters for connections to remote host computers. + + + Gets the configuration element that controls settings for sockets. + A object.The configuration element that controls settings for sockets. + + + Gets the configuration element that controls the execution timeout and download timeout of Web proxy scripts. + A object.The configuration element that controls settings for the execution timeout and download timeout used by the Web proxy scripts. + + + Gets the configuration element that controls the settings used by an object. + Returns .The configuration element that controls the settings used by an object. + + + Represents the network element in the SMTP configuration file. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Gets or sets the client domain name used in the initial SMTP protocol request to connect to an SMTP mail server. + A string that represents the client domain name used in the initial SMTP protocol request to connect to an SMTP mail server. + + + Determines whether or not default user credentials are used to access an SMTP server. The default value is false. + true indicates that default user credentials will be used to access the SMTP server; otherwise, false. + + + Gets or sets whether SSL is used to access an SMTP mail server. The default value is false. + true indicates that SSL will be used to access the SMTP mail server; otherwise, false. + + + Gets or sets the name of the SMTP server. + A string that represents the name of the SMTP server to connect to. + + + Gets or sets the user password to use to connect to an SMTP mail server. + A string that represents the password to use to connect to an SMTP mail server. + + + Gets or sets the port that SMTP clients use to connect to an SMTP mail server. The default value is 25. + A string that represents the port to connect to an SMTP mail server. + + + Gets or sets the Service Provider Name (SPN) to use for authentication when using extended protection to connect to an SMTP mail server. + A string that represents the SPN to use for authentication when using extended protection to connect to an SMTP mail server. + + + Gets or sets the user name to connect to an SMTP mail server. + A string that represents the user name to connect to an SMTP mail server. + + + Represents the SMTP section in the System.Net configuration file. + + + Initializes a new instance of the class. + + + Gets or sets the delivery format to use for sending outgoing e-mail using the Simple Mail Transport Protocol (SMTP). + Returns .The delivery format to use for sending outgoing e-mail using SMTP. + + + Gets or sets the Simple Mail Transport Protocol (SMTP) delivery method. The default delivery method is . + A string that represents the SMTP delivery method. + + + Gets or sets the default value that indicates who the email message is from. + A string that represents the default value indicating who a mail message is from. + + + Gets the configuration element that controls the network settings used by the Simple Mail Transport Protocol (SMTP). file.. + A object.The configuration element that controls the network settings used by SMTP. + + + Gets the pickup directory that will be used by the SMPT client. + A object that specifies the pickup directory folder. + + + Represents an SMTP pickup directory configuration element. + + + Initializes a new instance of the class. + + + Gets or sets the folder where applications save mail messages to be processed by the SMTP server. + A string that specifies the pickup directory for e-mail messages. + + + Represents information used to configure objects. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Gets or sets a Boolean value that specifies whether completion ports are used when accepting connections. + true to use completion ports; otherwise, false. + + + Gets or sets a Boolean value that specifies whether completion ports are used when making connections. + true to use completion ports; otherwise, false. + + + Gets or sets a value that specifies the default to use for a socket. + The value of the for the current instance. + + + Controls how Unicode characters are interpreted by the methods. + + + Use automatic behavior. The decoding behavior is determined by current application's target Framework. For .NET Framework 4.5 and later, the Unicode encoding decoding is strict. + + + Use compatible behavior. Specifies that incoming data is not checked for validity before being decoded. For example, an input string of "&amp;#xD84C;" would decode as U+D84C, which is an unpaired surrogate. Additionally, the decoder does not understand code points in the SMP unless they're represented as HTML-encoded surrogates, so the inputstring "&#144308;" would result in the output string "&#144308;". + + + Use loose behavior. Similar to in that there are no validity checks, but the decoder also understands code points. The input string "&#144308;" would decode into the character U+233B4 correctly. This switch is meant to provide maximum interoperability when the decoder doesn't know which format the provider is using to generate the encoded string. + + + Use strict behavior. Specifies that the incoming encoded data is checked for validity before being decoded. For example, an input string of "&#144308;" would decode as U+233B4, but an input string of "&#xD84C;&#xDFB4;" would fail to decode properly. Already-decoded data in the string is not checked for validity. For example, an input string of "\ud800" will result in an output string of "\ud800", as the already-decoded surrogate is skipped during decoding, even though it is unpaired. + + + Controls how Unicode characters are output by the methods. + + + Use automatic behavior. The Unicode encoding behavior is determined by current application's target Framework. For .NET Framework 4.5 and later, the Unicode encoding behavior is strict.        + + + Use compatible behavior. Specifies that individual UTF-16 surrogate code points are output as-is when one of methods is called. For example, given a string "\uD84C\uDFB4" (or "\U000233B4"), the output of is "\uD84C\uDFB4" (the input is not encoded). + + + Use strict behavior. Specifies that individual UTF-16 surrogate code points are combined into a single code point when one of the methods is called. For example, given the input string "\uD84C\uDFB4" (or "\U000233B4"), the output of the methods is "&#144308;". If the input is a malformed UTF-16 string (it contains unpaired surrogates, for example), the bad code points will be replaced with U+FFFD (Unicode replacement char) before being HTML-encoded. + + + Represents information used to configure Web proxy scripts. This class cannot be inherited. + + + Initializes an instance of the class. + + + Gets or sets the Web proxy script download timeout using the format hours:minutes:seconds. + A object that contains the timeout value. The default download timeout is one minute. + + + Represents a URI prefix and the associated class that handles creating Web requests for the prefix. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified URI prefix and type information. + A string containing a URI prefix. + A string containing the type and assembly information for the class that handles creating requests for resources that use the URI prefix. For more information, see the Remarks section. + + + Initializes a new instance of the class using the specified URI prefix and type identifier. + A string containing a URI prefix. + A that identifies the class that handles creating requests for resources that use the URI prefix. + + + Gets or sets the URI prefix for the current Web request module. + A string that contains a URI prefix. + + + Gets or sets a class that creates Web requests. + A instance that identifies a Web request module. + + + Represents a container for Web request module configuration elements. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Adds an element to the collection. + The to add to the collection. + + + Removes all elements from the collection. + + + Returns the index of the specified configuration element. + The zero-based index of . + A . + + + Gets or sets the element at the specified position in the collection. + The at the specified location. + The zero-based index of the element. + + + Gets or sets the element with the specified key. + The with the specified key or null if there is no element with the specified key. + The key for an element in the collection. + + + Removes the specified configuration element from the collection. + The to remove. + + + Removes the element with the specified key. + The key of the element to remove. + + + Removes the element at the specified index. + The zero-based index of the element to remove. + + + Represents the configuration section for Web request modules. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Gets the collection of Web request modules in the section. + A containing the registered Web request modules. + + + Represents the WebUtility element in the configuration file. + + + Initializes a new instance of the class. + + + Gets the default Unicode decoding conformance behavior used for an object. + Returns .The default Unicode decoding behavior. + + + Gets the default Unicode encoding conformance behavior used for an object. + Returns .The default Unicode encoding behavior. + + + Represents the format to view an email message. + + + Initializes a new instance of with the specified . + A stream that contains the content for this view. + + is null. + + + Initializes a new instance of with the specified and . + A stream that contains the content for this attachment. + The type of the content. + + is null. + + is not a valid value. + + + Initializes a new instance of with the specified and media type. + A stream that contains the content for this attachment. + The MIME media type of the content. + + is null. + + is not a valid value. + + + Initializes a new instance of with the specified file name. + The name of the file that contains the content for this alternate view. + + is null. + The caller does not have the required permission. + An I/O error occurred, such as a disk error. + The access requested is not permitted by the operating system for the specified file handle, such as when access is Write or ReadWrite and the file handle is set for read-only access. + + + Initializes a new instance of with the specified file name and content type. + The name of the file that contains the content for this alternate view. + The type of the content. + + is null. + + is not a valid value. + The caller does not have the required permission. + An I/O error occurred, such as a disk error. + The access requested is not permitted by the operating system for the specified file handle, such as when access is Write or ReadWrite and the file handle is set for read-only access. + + + Initializes a new instance of with the specified file name and media type. + The name of the file that contains the content for this alternate view. + The MIME media type of the content. + + is null. + + is not a valid value. + The caller does not have the required permission. + An I/O error occurred, such as a disk error. + The access requested is not permitted by the operating system for the specified file handle, such as when access is Write or ReadWrite and the file handle is set for read-only access. + + + Gets or sets the base URI to use for resolving relative URIs in the . + A .The base . + + + Creates a of an email message using the content specified in a . + An object that represents an alternate view of an email message. + The that contains the content of the email message. + + is null. + + + Creates an of an email message using the content specified in a and the specified MIME media type of the content. + An object that represents an alternate view of an email message. + A that contains the content for this attachment. + A that describes the data in . + + is null. + + + Creates an of an email message using the content specified in a , the specified text encoding, and MIME media type of the content. + An object that represents an alternate view of an email message. + A that contains the content for this attachment. + An . This value can be null. + The MIME media type of the content. + + is null. + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Gets the set of embedded resources referred to by this attachment. + A object that stores the collection of linked resources to be sent as part of an e-mail message. + + + Represents a collection of objects. + + + Releases all resources used by the . + + + Represents an attachment to an e-mail. + + + Initializes a new instance of the class with the specified stream and content type. + A readable that contains the content for this attachment. + A that describes the data in . + + is null.-or- is null. + + + Initializes a new instance of the class with the specified stream and name. + A readable that contains the content for this attachment. + A that contains the value for the property of the associated with this attachment. This value can be null. + + is null. + + + Initializes a new instance of the class with the specified stream, name, and MIME type information. + A readable that contains the content for this attachment. + A that contains the value for the property of the associated with this attachment. This value can be null. + A that contains the MIME Content-Header information for this attachment. This value can be null. + + is null. + + is not in the correct format. + + + Initializes a new instance of the class with the specified content string. + A that contains a file path to use to create this attachment. + + is null. + + is empty. + + + Initializes a new instance of the class with the specified content string and . + A that contains a file path to use to create this attachment. + A that describes the data in . + + is null. + + is not in the correct format. + + + Initializes a new instance of the class with the specified content string and MIME type information. + A that contains the content for this attachment. + A that contains the MIME Content-Header information for this attachment. This value can be null. + + is null. + + is not in the correct format. + + + Gets the MIME content disposition for this attachment. + A that provides the presentation information for this attachment. + + + Creates a mail attachment using the content from the specified string, and the specified . + An object of type . + A that contains the content for this attachment. + A object that represents the Multipurpose Internet Mail Exchange (MIME) protocol Content-Type header to be used. + + + Creates a mail attachment using the content from the specified string, and the specified MIME content type name. + An object of type . + A that contains the content for this attachment. + The MIME content type name value in the content type associated with this attachment. + + + Creates a mail attachment using the content from the specified string, the specified MIME content type name, character encoding, and MIME header information for the attachment. + An object of type . + A that contains the content for this attachment. + The MIME content type name value in the content type associated with this attachment. + An . This value can be null. + A that contains the MIME Content-Header information for this attachment. This value can be null. + + + Gets or sets the MIME content type name value in the content type associated with this attachment. + A that contains the value for the content type represented by the property. + The value specified for a set operation is null. + The value specified for a set operation is (""). + + + Specifies the encoding for the . + An value that specifies the type of name encoding. The default value is determined from the name of the attachment. + + + Base class that represents an email attachment. Classes , , and derive from this class. + + + Instantiates an with the specified . + A stream containing the content for this attachment. + + is null. + + + Instantiates an with the specified and . + A stream containing the content for this attachment. + The type of the content. + + is null. + + is not a valid value. + + + Instantiates an with the specified and media type. + A stream containing the content for this attachment. + The MIME media type of the content. + + is null. + + is not a valid value. + + + Instantiates an with the specified file name. + The file name holding the content for this attachment. + + is null. + + + Instantiates an with the specified file name and content type. + The file name holding the content for this attachment. + The type of the content. + + is null. + + is not a valid value. + + + Instantiates an with the specified file name and media type. + The file name holding the content for this attachment. + The MIME media type of the content. + + is null. + + is not a valid value. + + + Gets or sets the MIME content ID for this attachment. + A holding the content ID. + Attempted to set to null. + + + Gets the content stream of this attachment. + A .The content stream of this attachment. + + + Gets the content type of this attachment. + A .The content type for this attachment. + + + Releases the resources used by the . + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Gets or sets the encoding of this attachment. + A .The encoding for this attachment. + + + Stores attachments to be sent as part of an e-mail message. + + + Releases all resources used by the . + + + Describes the delivery notification options for e-mail. + + + Notify if the delivery is delayed. + + + A notification should not be generated under any circumstances. + + + No notification information will be sent. The mail server will utilize its configured behavior to determine whether it should generate a delivery notification. + + + Notify if the delivery is unsuccessful. + + + Notify if the delivery is successful. + + + Represents an embedded external resource in an email attachment, such as an image in an HTML attachment. + + + Initializes a new instance of using the supplied . + A stream that contains the content for this embedded resource. + + is null. + + + Initializes a new instance of with the values supplied by and . + A stream that contains the content for this embedded resource. + The type of the content. + + is null. + + is not a valid value. + + + Initializes a new instance of with the specified and media type. + A stream that contains the content for this embedded resource. + The MIME media type of the content. + + is null. + + is not a valid value. + + + Initializes a new instance of using the specified file name. + The file name holding the content for this embedded resource. + + is null. + + + Initializes a new instance of with the specified file name and content type. + The file name that holds the content for this embedded resource. + The type of the content. + + is null. + + is not a valid value. + + + Initializes a new instance of with the specified file name and media type. + The file name that holds the content for this embedded resource. + The MIME media type of the content. + + is null. + + is not a valid value. + + + Gets or sets a URI that the resource must match. + If is a relative URI, the recipient of the message must resolve it. + + + Creates a object from a string to be included in an email attachment as an embedded resource. The default media type is plain text, and the default content type is ASCII. + A object that contains the embedded resource to be included in the email attachment. + A string that contains the embedded resource to be included in the email attachment. + The specified content string is null. + + + Creates a object from a string to be included in an email attachment as an embedded resource, with the specified content type, and media type as plain text. + A object that contains the embedded resource to be included in the email attachment. + A string that contains the embedded resource to be included in the email attachment. + The type of the content. + The specified content string is null. + + + Creates a object from a string to be included in an email attachment as an embedded resource, with the specified content type, and media type. + A object that contains the embedded resource to be included in the email attachment. + A string that contains the embedded resource to be included in the email attachment. + The type of the content. + The MIME media type of the content. + The specified content string is null. + + + Stores linked resources to be sent as part of an e-mail message. + + + Releases all resources used by the . + + + Represents the address of an electronic mail sender or recipient. + + + Initializes a new instance of the class using the specified address. + A that contains an e-mail address. + + is null. + + is (""). + + is not in a recognized format. + + + Initializes a new instance of the class using the specified address and display name. + A that contains an e-mail address. + A that contains the display name associated with . This parameter can be null. + + is null. + + is (""). + + is not in a recognized format.-or- contains non-ASCII characters. + + + Initializes a new instance of the class using the specified address, display name, and encoding. + A that contains an e-mail address. + A that contains the display name associated with . + The that defines the character set used for . + + is null.-or- is null. + + is ("").-or- is (""). + + is not in a recognized format.-or- contains non-ASCII characters. + + + Gets the e-mail address specified when this instance was created. + A that contains the e-mail address. + + + Gets the display name composed from the display name and address information specified when this instance was created. + A that contains the display name; otherwise, ("") if no display name information was specified when this instance was created. + + + Compares two mail addresses. + true if the two mail addresses are equal; otherwise, false. + A instance to compare to the current instance. + + + Returns a hash value for a mail address. + An integer hash value. + + + Gets the host portion of the address specified when this instance was created. + A that contains the name of the host computer that accepts e-mail for the property. + + + Returns a string representation of this instance. + A that contains the contents of this . + + + Gets the user information from the address specified when this instance was created. + A that contains the user name portion of the . + + + Store e-mail addresses that are associated with an e-mail message. + + + Initializes an empty instance of the class. + + + Add a list of e-mail addresses to the collection. + The e-mail addresses to add to the . Multiple e-mail addresses must be separated with a comma character (","). + The parameter is null. + The parameter is an empty string. + The parameter contains an e-mail address that is invalid or not supported. + + + Inserts an e-mail address into the , at the specified location. + The location at which to insert the e-mail address that is specified by . + The e-mail address to be inserted into the collection. + The parameter is null. + + + Replaces the element at the specified index. + The index of the e-mail address element to be replaced. + An e-mail address that will replace the element in the collection. + The parameter is null. + + + Returns a string representation of the e-mail addresses in this object. + A containing the e-mail addresses in this collection. + + + Represents an e-mail message that can be sent using the class. + + + Initializes an empty instance of the class. + + + Initializes a new instance of the class by using the specified class objects. + A that contains the address of the sender of the e-mail message. + A that contains the address of the recipient of the e-mail message. + + is null.-or- is null. + + or is malformed. + + + Initializes a new instance of the class by using the specified class objects. + A that contains the address of the sender of the e-mail message. + A that contains the addresses of the recipients of the e-mail message. + + is null.-or- is null. + + is ("").-or- is (""). + + or is malformed. + + + Initializes a new instance of the class. + A that contains the address of the sender of the e-mail message. + A that contains the address of the recipient of the e-mail message. + A that contains the subject text. + A that contains the message body. + + is null.-or- is null. + + is ("").-or- is (""). + + or is malformed. + + + Gets the attachment collection used to store alternate forms of the message body. + A writable . + + + Gets the attachment collection used to store data attached to this e-mail message. + A writable . + + + Gets the address collection that contains the blind carbon copy (BCC) recipients for this e-mail message. + A writable object. + + + Gets or sets the message body. + A value that contains the body text. + + + Gets or sets the encoding used to encode the message body. + An applied to the contents of the . + + + Gets or sets the transfer encoding used to encode the message body. + Returns .A applied to the contents of the . + + + Gets the address collection that contains the carbon copy (CC) recipients for this e-mail message. + A writable object. + + + Gets or sets the delivery notifications for this e-mail message. + A value that contains the delivery notifications for this message. + + + Releases all resources used by the . + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Gets or sets the from address for this e-mail message. + A that contains the from address information. + + + Gets the e-mail headers that are transmitted with this e-mail message. + A that contains the e-mail headers. + + + Gets or sets the encoding used for the user-defined custom headers for this e-mail message. + The encoding used for user-defined custom headers for this e-mail message. + + + Gets or sets a value indicating whether the mail message body is in Html. + true if the message body is in Html; else false. The default is false. + + + Gets or sets the priority of this e-mail message. + A that contains the priority of this message. + + + Gets or sets the ReplyTo address for the mail message. + A MailAddress that indicates the value of the field. + + + Gets or sets the list of addresses to reply to for the mail message. + The list of the addresses to reply to for the mail message. + + + Gets or sets the sender's address for this e-mail message. + A that contains the sender's address information. + + + Gets or sets the subject line for this e-mail message. + A that contains the subject content. + + + Gets or sets the encoding used for the subject content for this e-mail message. + An that was used to encode the property. + + + Gets the address collection that contains the recipients of this e-mail message. + A writable object. + + + Specifies the priority of a . + + + The email has high priority. + + + The email has low priority. + + + The email has normal priority. + + + Represents the method that will handle the event. + The source of the event. + An containing event data. + + + Specifies the level of access allowed to a Simple Mail Transport Protocol (SMTP) server. + + + Connection to an SMTP host on the default port (port 25). + + + Connection to an SMTP host on any port. + + + No access to an SMTP host. + + + Allows applications to send e-mail by using the Simple Mail Transfer Protocol (SMTP). + + + Initializes a new instance of the class by using configuration file settings. + + + Initializes a new instance of the class that sends e-mail by using the specified SMTP server. + A that contains the name or IP address of the host computer used for SMTP transactions. + + + Initializes a new instance of the class that sends e-mail by using the specified SMTP server and port. + A that contains the name or IP address of the host used for SMTP transactions. + An greater than zero that contains the port to be used on . + + cannot be less than zero. + + + Specify which certificates should be used to establish the Secure Sockets Layer (SSL) connection. + An , holding one or more client certificates. The default value is derived from the mail configuration attributes in a configuration file. + + + Gets or sets the credentials used to authenticate the sender. + An that represents the credentials to use for authentication; or null if no credentials have been specified. + You cannot change the value of this property when an email is being sent. + + + Gets or sets the delivery format used by to send e-mail. + Returns .The delivery format used by . + + + Specifies how outgoing email messages will be handled. + An that indicates how email messages are delivered. + + + Sends a QUIT message to the SMTP server, gracefully ends the TCP connection, and releases all resources used by the current instance of the class. + + + Sends a QUIT message to the SMTP server, gracefully ends the TCP connection, releases all resources used by the current instance of the class, and optionally disposes of the managed resources. + true to release both managed and unmanaged resources; false to releases only unmanaged resources. + + + Specify whether the uses Secure Sockets Layer (SSL) to encrypt the connection. + true if the uses SSL; otherwise, false. The default is false. + + + Gets or sets the name or IP address of the host used for SMTP transactions. + A that contains the name or IP address of the computer to use for SMTP transactions. + The value specified for a set operation is null. + The value specified for a set operation is equal to (""). + You cannot change the value of this property when an email is being sent. + + + Raises the event. + An that contains event data. + + + Gets or sets the folder where applications save mail messages to be processed by the local SMTP server. + A that specifies the pickup directory for mail messages. + + + Gets or sets the port used for SMTP transactions. + An that contains the port number on the SMTP host. The default value is 25. + The value specified for a set operation is less than or equal to zero. + You cannot change the value of this property when an email is being sent. + + + Sends the specified message to an SMTP server for delivery. + A that contains the message to send. + + is null. + This has a call in progress.-or- is null.-or- There are no recipients specified in , , and properties.-or- property is set to and is null.-or- property is set to and is equal to the empty string ("").-or- property is set to and is zero, a negative number, or greater than 65,535. + This object has been disposed. + The connection to the SMTP server failed.-or-Authentication failed.-or-The operation timed out.-or- is set to true but the property is set to or .-or- is set to true, but the SMTP mail server did not advertise STARTTLS in the response to the EHLO command. + The could not be delivered to one or more of the recipients in , , or . + + + Sends the specified e-mail message to an SMTP server for delivery. The message sender, recipients, subject, and message body are specified using objects. + A that contains the address information of the message sender. + A that contains the addresses that the message is sent to. + A that contains the subject line for the message. + A that contains the message body. + + is null.-or- is null. + + is .-or- is . + This has a call in progress.-or- property is set to and is null.-or- property is set to and is equal to the empty string ("").-or- property is set to and is zero, a negative number, or greater than 65,535. + This object has been disposed. + The connection to the SMTP server failed.-or-Authentication failed.-or-The operation timed out.-or- is set to true but the property is set to or .-or- is set to true, but the SMTP mail server did not advertise STARTTLS in the response to the EHLO command. + The message could not be delivered to one or more of the recipients in . + + + Sends the specified e-mail message to an SMTP server for delivery. This method does not block the calling thread and allows the caller to pass an object to the method that is invoked when the operation completes. + A that contains the message to send. + A user-defined object that is passed to the method invoked when the asynchronous operation completes. + + is null.-or- is null. + This has a call in progress.-or- There are no recipients specified in , , and properties.-or- property is set to and is null.-or- property is set to and is equal to the empty string ("").-or- property is set to and is zero, a negative number, or greater than 65,535. + This object has been disposed. + The connection to the SMTP server failed.-or-Authentication failed.-or-The operation timed out.-or- is set to true but the property is set to or .-or- is set to true, but the SMTP mail server did not advertise STARTTLS in the response to the EHLO command.-or-The could not be delivered to one or more of the recipients in , , or . + + + Sends an e-mail message to an SMTP server for delivery. The message sender, recipients, subject, and message body are specified using objects. This method does not block the calling thread and allows the caller to pass an object to the method that is invoked when the operation completes. + A that contains the address information of the message sender. + A that contains the address that the message is sent to. + A that contains the subject line for the message. + A that contains the message body. + A user-defined object that is passed to the method invoked when the asynchronous operation completes. + + is null.-or- is null. + + is .-or- is . + This has a call in progress.-or- property is set to and is null.-or- property is set to and is equal to the empty string ("").-or- property is set to and is zero, a negative number, or greater than 65,535. + This object has been disposed. + The connection to the SMTP server failed.-or-Authentication failed.-or-The operation timed out.-or- is set to true but the property is set to or .-or- is set to true, but the SMTP mail server did not advertise STARTTLS in the response to the EHLO command.-or-The message could not be delivered to one or more of the recipients in . + + + Cancels an asynchronous operation to send an e-mail message. + This object has been disposed. + + + Occurs when an asynchronous e-mail send operation completes. + + + Sends the specified message to an SMTP server for delivery as an asynchronous operation. + Returns .The task object representing the asynchronous operation. + A that contains the message to send. + + is null. + + + Sends the specified message to an SMTP server for delivery as an asynchronous operation. . The message sender, recipients, subject, and message body are specified using objects. + Returns .The task object representing the asynchronous operation. + A that contains the address information of the message sender. + A that contains the addresses that the message is sent to. + A that contains the subject line for the message. + A that contains the message body. + + is null.-or- is null. + + is .-or- is . + + + Gets the network connection used to transmit the e-mail message. + A that connects to the property used for SMTP. + + is null or the empty string ("").-or- is zero. + + + Gets or sets the Service Provider Name (SPN) to use for authentication when using extended protection. + A that specifies the SPN to use for extended protection. The default value for this SPN is of the form "SMTPSVC/<host>" where <host> is the hostname of the SMTP mail server. + + + Gets or sets a value that specifies the amount of time after which a synchronous call times out. + An that specifies the time-out value in milliseconds. The default value is 100,000 (100 seconds). + The value specified for a set operation was less than zero. + You cannot change the value of this property when an email is being sent. + + + Gets or sets a value that controls whether the are sent with requests. + true if the default credentials are used; otherwise false. The default value is false. + You cannot change the value of this property when an e-mail is being sent. + + + The delivery format to use for sending outgoing e-mail using the Simple Mail Transport Protocol (SMTP). + + + A delivery format where non-ASCII characters in the envelope and header fields used in the Simple Mail Transport Protocol (SMTP) for mail messages are encoded with UTF-8 characters. The extensions to support international e-mail are defined in IETF RFC 6530, 6531, and 6532. + + + A delivery format using 7-bit ASCII. The traditional delivery format used in the Simple Mail Transport Protocol (SMTP) for mail messages. + + + Specifies how email messages are delivered. + + + Email is sent through the network to an SMTP server. + + + Email is copied to the pickup directory used by a local Internet Information Services (IIS) for delivery. + + + Email is copied to the directory specified by the property for delivery by an external application. + + + Represents the exception that is thrown when the is not able to complete a or operation. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with the specified status code. + An value. + + + Initializes a new instance of the class with the specified status code and error message. + An value. + A that describes the error that occurred. + + + Initializes a new instance of the class from the specified instances of the and classes. + A that contains the information required to serialize the new . + A that contains the source and destination of the serialized stream associated with the new instance. + + + Initializes a new instance of the class with the specified error message. + A that describes the error that occurred. + + + Initializes a new instance of the class with the specified error message and inner exception. + A that describes the error that occurred. + The exception that is the cause of the current exception. + + + Populates a instance with the data needed to serialize the . + The to populate with data. + A that specifies the destination for this serialization. + + + Gets the status code returned by an SMTP server when an e-mail message is transmitted. + An value that indicates the error that occurred. + + + Populates a instance with the data needed to serialize the . + A , which holds the serialized data for the . + A that contains the destination of the serialized stream associated with the new . + + + Represents the exception that is thrown when the is not able to complete a or operation to a particular recipient. + + + Initializes an empty instance of the class. + + + Initializes a new instance of the class with the specified status code and e-mail address. + An value. + A that contains the e-mail address. + + + Initializes a new instance of the class with the specified status code, e-mail address, and server response. + An value. + A that contains the e-mail address. + A that contains the server response. + + + Initializes a new instance of the class from the specified instances of the and classes. + A that contains the information required to serialize the new . + A that contains the source and destination of the serialized stream that is associated with the new instance. + + + Initializes a new instance of the class with the specified error message. + A that contains the error message. + + + Initializes a new instance of the class with the specified error message and inner exception. + A that describes the error that occurred. + The exception that is the cause of the current exception. + + + Initializes a new instance of the class with the specified error message, e-mail address, and inner exception. + A that describes the error that occurred. + A that contains the e-mail address. + The exception that is the cause of the current exception. + + + Indicates the e-mail address with delivery difficulties. + A that contains the e-mail address. + + + Populates a instance with the data that is needed to serialize the . + The to populate with data. + A that specifies the destination for this serialization. + + + Populates a instance with the data that is needed to serialize the . + A instance, which holds the serialized data for the . + A instance that contains the destination of the serialized stream that is associated with the new . + + + The exception that is thrown when e-mail is sent using an and cannot be delivered to all recipients. + + + Initializes an empty instance of the class. + + + Initializes a new instance of the class from the specified instances of the and classes. + A instance that contains the information required to serialize the new instance. + A that contains the source of the serialized stream that is associated with the new instance. + + + Initializes a new instance of the class with the specified . + The exception message. + + + Initializes a new instance of the class with the specified and inner . + The exception message. + The inner exception. + + + Initializes a new instance of the class with the specified and array of type . + The exception message. + The array of recipients with delivery errors. + + + Populates a instance with the data that is needed to serialize the . + The to be used. + The to be used. + + + Gets one or more s that indicate the e-mail recipients with SMTP delivery errors. + An array of type that lists the recipients with delivery errors. + + + Initializes a new instance of the class from the specified and instances. + A that contains the information required to serialize the new . + A that contains the source of the serialized stream that is associated with the new . + + + Controls access to Simple Mail Transport Protocol (SMTP) servers. + + + Initializes a new instance of the class with the specified state. + true if the new permission is unrestricted; otherwise, false. + + + Initializes a new instance of the class using the specified access level. + One of the values. + + + Initializes a new instance of the class using the specified permission state value. + One of the values. + + + Gets the level of access to SMTP servers controlled by the permission. + One of the values. + + + Adds the specified access level value to the permission. + One of the values. + + + Creates and returns an identical copy of the current permission. + An that is identical to the current permission. + + + Sets the state of the permission using the specified XML encoding. + The XML encoding to use to set the state of the current permission. + + does not describe an object.-or- does not contain the required state information to reconstruct the permission. + + is null. + + + Creates and returns a permission that is the intersection of the current permission and the specified permission. + An that represents the intersection of the current permission and the specified permission. Returns null if the intersection is empty or is null. + An to intersect with the current permission. It must be of the same type as the current permission. + + is not an . + + + Returns a value indicating whether the current permission is a subset of the specified permission. + true if the current permission is a subset of the specified permission; otherwise, false. + An that is to be tested for the subset relationship. This permission must be of the same type as the current permission. + + is not an . + + + Returns a value indicating whether the current permission is unrestricted. + true if the current permission is unrestricted; otherwise, false. + + + Creates an XML encoding of the state of the permission. + A that contains an XML encoding of the current permission. + + + Creates a permission that is the union of the current permission and the specified permission. + A new permission that represents the union of the current permission and the specified permission. + An to combine with the current permission. + + is not an . + + + Controls access to Simple Mail Transport Protocol (SMTP) servers. + + + Initializes a new instance of the class. + One of the values that specifies the permission behavior. + + is not a valid . + + + Gets or sets the level of access to SMTP servers controlled by the attribute. + A value. Valid values are "Connect" and "None". + + + Creates a permission object that can be stored with the in an assembly's metadata. + An instance. + + + Specifies the outcome of sending e-mail by using the class. + + + The commands were sent in the incorrect sequence. + + + The specified user is not local, but the receiving SMTP service accepted the message and attempted to deliver it. This status code is defined in RFC 1123, which is available at http://www.ietf.org. + + + The client was not authenticated or is not allowed to send mail using the specified SMTP host. + + + The SMTP service does not implement the specified command. + + + The SMTP service does not implement the specified command parameter. + + + The SMTP service does not recognize the specified command. + + + The message is too large to be stored in the destination mailbox. + + + The transaction could not occur. You receive this error when the specified SMTP host cannot be found. + + + A Help message was returned by the service. + + + The SMTP service does not have sufficient storage to complete the request. + + + The SMTP service cannot complete the request. This error can occur if the client's IP address cannot be resolved (that is, a reverse lookup failed). You can also receive this error if the client domain has been identified as an open relay or source for unsolicited e-mail (spam). For details, see RFC 2505, which is available at http://www.ietf.org. + + + The destination mailbox is in use. + + + The syntax used to specify the destination mailbox is incorrect. + + + The destination mailbox was not found or could not be accessed. + + + The SMTP server is configured to accept only TLS connections, and the SMTP client is attempting to connect by using a non-TLS connection. The solution is for the user to set EnableSsl=true on the SMTP Client. + + + The email was successfully sent to the SMTP service. + + + The SMTP service is closing the transmission channel. + + + The SMTP service is not available; the server is closing the transmission channel. + + + The SMTP service is ready. + + + The SMTP service is ready to receive the e-mail content. + + + The syntax used to specify a command or parameter is incorrect. + + + A system status or system Help reply. + + + The transaction failed. + + + The user mailbox is not located on the receiving server. You should resend using the supplied address information. + + + The user mailbox is not located on the receiving server; the server forwards the e-mail. + + + Represents a MIME protocol Content-Disposition header. + + + Initializes a new instance of the class with a of . + + + Initializes a new instance of the class with the specified disposition information. + A value that contains the disposition. + + is null or equal to (""). + + + Gets or sets the creation date for a file attachment. + A value that indicates the file creation date; otherwise, if no date was specified. + + + Gets or sets the disposition type for an e-mail attachment. + A that contains the disposition type. The value is not restricted but is typically one of the values. + The value specified for a set operation is null. + The value specified for a set operation is equal to (""). + + + Determines whether the content-disposition header of the specified object is equal to the content-disposition header of this object. + true if the content-disposition headers are the same; otherwise false. + The object to compare with this object. + + + Gets or sets the suggested file name for an e-mail attachment. + A that contains the file name. + + + Determines the hash code of the specified object + An integer hash value. + + + Gets or sets a value that determines the disposition type (Inline or Attachment) for an e-mail attachment. + true if content in the attachment is presented inline as part of the e-mail body; otherwise, false. + + + Gets or sets the modification date for a file attachment. + A value that indicates the file modification date; otherwise, if no date was specified. + + + Gets the parameters included in the Content-Disposition header represented by this instance. + A writable that contains parameter name/value pairs. + + + Gets or sets the read date for a file attachment. + A value that indicates the file read date; otherwise, if no date was specified. + + + Gets or sets the size of a file attachment. + A that specifies the number of bytes in the file attachment. The default value is -1, which indicates that the file size is unknown. + + + Returns a representation of this instance. + A that contains the property values for this instance. + + + Represents a MIME protocol Content-Type header. + + + Initializes a new default instance of the class. + + + Initializes a new instance of the class using the specified string. + A , for example, "text/plain; charset=us-ascii", that contains the MIME media type, subtype, and optional parameters. + + is null. + + is (""). + + is in a form that cannot be parsed. + + + Gets or sets the value of the boundary parameter included in the Content-Type header represented by this instance. + A that contains the value associated with the boundary parameter. + + + Gets or sets the value of the charset parameter included in the Content-Type header represented by this instance. + A that contains the value associated with the charset parameter. + + + Determines whether the content-type header of the specified object is equal to the content-type header of this object. + true if the content-type headers are the same; otherwise false. + The object to compare with this object. + + + Determines the hash code of the specified object + An integer hash value. + + + Gets or sets the media type value included in the Content-Type header represented by this instance. + A that contains the media type and subtype value. This value does not include the semicolon (;) separator that follows the subtype. + The value specified for a set operation is null. + The value specified for a set operation is (""). + The value specified for a set operation is in a form that cannot be parsed. + + + Gets or sets the value of the name parameter included in the Content-Type header represented by this instance. + A that contains the value associated with the name parameter. + + + Gets the dictionary that contains the parameters included in the Content-Type header represented by this instance. + A writable that contains name and value pairs. + + + Returns a string representation of this object. + A that contains the current settings for this . + + + Supplies the strings used to specify the disposition type for an e-mail attachment. + + + Specifies that the attachment is to be displayed as a file attached to the e-mail message. + + + Specifies that the attachment is to be displayed as part of the e-mail message body. + + + Specifies the media type information for an e-mail message attachment. + + + Specifies the kind of application data in an e-mail message attachment. + + + Specifies that the data is not interpreted. + + + Specifies that the data is in Portable Document Format (PDF). + + + Specifies that the data is in Rich Text Format (RTF). + + + Specifies that the data is a SOAP document. + + + Specifies that the data is compressed. + + + Specifies the type of image data in an e-mail message attachment. + + + Specifies that the data is in Graphics Interchange Format (GIF). + + + Specifies that the data is in Joint Photographic Experts Group (JPEG) format. + + + Specifies that the data is in Tagged Image File Format (TIFF). + + + Specifies the type of text data in an e-mail message attachment. + + + Specifies that the data is in HTML format. + + + Specifies that the data is in plain text format. + + + Specifies that the data is in Rich Text Format (RTF). + + + Specifies that the data is in XML format. + + + Specifies the Content-Transfer-Encoding header information for an e-mail message attachment. + + + Encodes stream-based data. See RFC 2406 Section 6.8. + + + The data is in 8-bit characters that may represent international characters with a total line length of no longer than 1000 8-bit characters. For more information about this 8-bit MIME transport extension, see IETF RFC 6152. + + + Encodes data that consists of printable characters in the US-ASCII character set. See RFC 2406 Section 6.7. + + + Used for data that is not encoded. The data is in 7-bit US-ASCII characters with a total line length of no longer than 1000 characters. See RFC2406 Section 2.7. + + + Indicates that the transfer encoding is unknown. + + + Specifies the current state of an IP address. + + + The address is valid, but it is nearing its lease lifetime and should not be used by applications. + + + The address is not unique. This address should not be assigned to the network interface. + + + The address is not valid. A nonvalid address is expired and no longer assigned to an interface; applications should not send data packets to it. + + + The address is valid and its use is unrestricted. + + + The duplicate address detection procedure's evaluation of the address has not completed successfully. Applications should not use the address because it is not yet valid and packets sent to it are discarded. + + + Represents the IP address of the network gateway. This class cannot be instantiated. + + + Initializes the members of this class. + + + Get the IP address of the gateway. + An object that contains the IP address of the gateway. + + + Stores a set of types. + + + Initializes a new instance of the class. + + + Throws a because this operation is not supported for this collection. + The object to be added to the collection. + + + Throws a because this operation is not supported for this collection. + + + Checks whether the collection contains the specified object. + true if the object exists in the collection; otherwise false. + The object to be searched in the collection. + + + Copies the elements in this collection to a one-dimensional array of type . + A one-dimensional array that receives a copy of the collection. + The zero-based index in at which the copy begins. + + is null. + + is less than zero. + + is multidimensional.-or- The number of elements in this is greater than the available space from to the end of the destination . + The elements in this cannot be cast automatically to the type of the destination . + + + Gets the number of types in this collection. + An value that contains the number of types in this collection. + + + Returns an object that can be used to iterate through this collection. + An object that implements the interface and provides access to the types in this collection. + + + Gets a value that indicates whether access to this collection is read-only. + true in all cases. + + + Gets the at the specific index of the collection. + The at the specific index in the collection. + The index of interest. + + + Throws a because this operation is not supported for this collection. + Always throws a . + The object to be removed. + + + Returns an object that can be used to iterate through this collection. + An object that implements the interface and provides access to the types in this collection. + + + Provides Internet Control Message Protocol for IPv4 (ICMPv4) statistical data for the local computer. + + + Initializes a new instance of the class. + + + Gets the number of Internet Control Message Protocol version 4 (ICMPv4) Address Mask Reply messages that were received. + An value that specifies the total number of Address Mask Reply messages that were received. + + + Gets the number of Internet Control Message Protocol version 4 (ICMPv4) Address Mask Reply messages that were sent. + An value that specifies the total number of Address Mask Reply messages that were sent. + + + Gets the number of Internet Control Message Protocol version 4 (ICMPv4) Address Mask Request messages that were received. + An value that specifies the total number of Address Mask Request messages that were received. + + + Gets the number of Internet Control Message Protocol version 4 (ICMPv4) Address Mask Request messages that were sent. + An value that specifies the total number of Address Mask Request messages that were sent. + + + Gets the number of Internet Control Message Protocol version 4 (ICMPv4) messages that were received because of a packet having an unreachable address in its destination. + An value that specifies the total number of Destination Unreachable messages that were received. + + + Gets the number of Internet Control Message Protocol version 4 (ICMPv4) messages that were sent because of a packet having an unreachable address in its destination. + An value that specifies the total number of Destination Unreachable messages sent. + + + Gets the number of Internet Control Message Protocol version 4 (ICMPv4) Echo Reply messages that were received. + An value that specifies the total number of number of ICMP Echo Reply messages that were received. + + + Gets the number of Internet Control Message Protocol version 4 (ICMPv4) Echo Reply messages that were sent. + An value that specifies the total number of number of ICMP Echo Reply messages that were sent. + + + Gets the number of Internet Control Message Protocol version 4 (ICMPv4) Echo Request messages that were received. + An value that specifies the total number of number of ICMP Echo Request messages that were received. + + + Gets the number of Internet Control Message Protocol version 4 (ICMPv4) Echo Request messages that were sent. + An value that specifies the total number of number of ICMP Echo Request messages that were sent. + + + Gets the number of Internet Control Message Protocol version 4 (ICMPv4) error messages that were received. + An value that specifies the total number of ICMP error messages that were received. + + + Gets the number of Internet Control Message Protocol version 4 (ICMPv4) error messages that were sent. + An value that specifies the total number of number of ICMP error messages that were sent. + + + Gets the number of Internet Control Message Protocol messages that were received. + An value that specifies the total number of ICMPv4 messages that were received. + + + Gets the number of Internet Control Message Protocol version 4 (ICMPv4) messages that were sent. + An value that specifies the total number of ICMPv4 messages that were sent. + + + Gets the number of Internet Control Message Protocol version 4 (ICMPv4) Parameter Problem messages that were received. + An value that specifies the total number of ICMP Parameter Problem messages that were received. + + + Gets the number of Internet Control Message Protocol version 4 (ICMPv4) Parameter Problem messages that were sent. + An value that specifies the total number of ICMP Parameter Problem messages that were sent. + + + Gets the number of Internet Control Message Protocol version 4 (ICMPv4) Redirect messages that were received. + An value that specifies the total number of ICMP Redirect messages that were received. + + + Gets the number of Internet Control Message Protocol version 4 (ICMPv4) Redirect messages that were sent. + An value that specifies the total number of ICMP Redirect messages that were sent. + + + Gets the number of Internet Control Message Protocol version 4 (ICMPv4) Source Quench messages that were received. + An value that specifies the total number of Source Quench messages that were received. + + + Gets the number of Internet Control Message Protocol version 4 (ICMPv4) Source Quench messages that were sent. + An value that specifies the total number of Source Quench messages that were sent. + + + Gets the number of Internet Control Message Protocol version 4 (ICMPv4) Time Exceeded messages that were received. + An value that specifies the total number of ICMP Time Exceeded messages that were received. + + + Gets the number of Internet Control Message Protocol version 4 (ICMPv4) Time Exceeded messages that were sent. + An value that specifies the total number of ICMP Time Exceeded messages that were sent. + + + Gets the number of Internet Control Message Protocol version 4 (ICMPv4) Timestamp Reply messages that were received. + An value that specifies the total number of Timestamp Reply messages that were received. + + + Gets the number of Internet Control Message Protocol version 4 (ICMPv4) Timestamp Reply messages that were sent. + An value that specifies the total number of Timestamp Reply messages that were sent. + + + Gets the number of Internet Control Message Protocol version 4 (ICMPv4) Timestamp Request messages that were received. + An value that specifies the total number of Timestamp Request messages that were received. + + + Gets the number of Internet Control Message Protocol version 4 (ICMPv4) Timestamp Request messages that were sent. + An value that specifies the total number of Timestamp Request messages that were sent. + + + Provides Internet Control Message Protocol for Internet Protocol version 6 (ICMPv6) statistical data for the local computer. + + + Initializes a new instance of the class. + + + Gets the number of Internet Control Message Protocol version 6 (ICMPv6) messages received because of a packet having an unreachable address in its destination. + An value that specifies the total number of Destination Unreachable messages received. + + + Gets the number of Internet Control Message Protocol version 6 (ICMPv6) messages sent because of a packet having an unreachable address in its destination. + An value that specifies the total number of Destination Unreachable messages sent. + + + Gets the number of Internet Control Message Protocol version 6 (ICMPv6) Echo Reply messages received. + An value that specifies the total number of number of ICMP Echo Reply messages received. + + + Gets the number of Internet Control Message Protocol version 6 (ICMPv6) Echo Reply messages sent. + An value that specifies the total number of number of ICMP Echo Reply messages sent. + + + Gets the number of Internet Control Message Protocol version 6 (ICMPv6) Echo Request messages received. + An value that specifies the total number of number of ICMP Echo Request messages received. + + + Gets the number of Internet Control Message Protocol version 6 (ICMPv6) Echo Request messages sent. + An value that specifies the total number of number of ICMP Echo Request messages sent. + + + Gets the number of Internet Control Message Protocol version 6 (ICMPv6) error messages received. + An value that specifies the total number of ICMP error messages received. + + + Gets the number of Internet Control Message Protocol version 6 (ICMPv6) error messages sent. + An value that specifies the total number of ICMP error messages sent. + + + Gets the number of Internet Group management Protocol (IGMP) Group Membership Query messages received. + An value that specifies the total number of Group Membership Query messages received. + + + Gets the number of Internet Group management Protocol (IGMP) Group Membership Query messages sent. + An value that specifies the total number of Group Membership Query messages sent. + + + Gets the number of Internet Group Management Protocol (IGMP) Group Membership Reduction messages received. + An value that specifies the total number of Group Membership Reduction messages received. + + + Gets the number of Internet Group Management Protocol (IGMP) Group Membership Reduction messages sent. + An value that specifies the total number of Group Membership Reduction messages sent. + + + Gets the number of Internet Group Management Protocol (IGMP) Group Membership Report messages received. + An value that specifies the total number of Group Membership Report messages received. + + + Gets the number of Internet Group Management Protocol (IGMP) Group Membership Report messages sent. + An value that specifies the total number of Group Membership Report messages sent. + + + Gets the number of Internet Control Message Protocol version 6 (ICMPv6) messages received. + An value that specifies the total number of ICMPv6 messages received. + + + Gets the number of Internet Control Message Protocol version 6 (ICMPv6) messages sent. + An value that specifies the total number of ICMPv6 messages sent. + + + Gets the number of Internet Control Message Protocol version 6 (ICMPv6) Neighbor Advertisement messages received. + An value that specifies the total number of ICMP Neighbor Advertisement messages received. + + + Gets the number of Internet Control Message Protocol version 6 (ICMPv6) Neighbor Advertisement messages sent. + An value that specifies the total number of Neighbor Advertisement messages sent. + + + Gets the number of Internet Control Message Protocol version 6 (ICMPv6) Neighbor Solicitation messages received. + An value that specifies the total number of Neighbor Solicitation messages received. + + + Gets the number of Internet Control Message Protocol version 6 (ICMPv6) Neighbor Solicitation messages sent. + An value that specifies the total number of Neighbor Solicitation messages sent. + + + Gets the number of Internet Control Message Protocol version 6 (ICMPv6) Packet Too Big messages received. + An value that specifies the total number of ICMP Packet Too Big messages received. + + + Gets the number of Internet Control Message Protocol version 6 (ICMPv6) Packet Too Big messages sent. + An value that specifies the total number of ICMP Packet Too Big messages sent. + + + Gets the number of Internet Control Message Protocol version 6 (ICMPv6) Parameter Problem messages received. + An value that specifies the total number of ICMP Parameter Problem messages received. + + + Gets the number of Internet Control Message Protocol version 6 (ICMPv6) Parameter Problem messages sent. + An value that specifies the total number of ICMP Parameter Problem messages sent. + + + Gets the number of Internet Control Message Protocol version 6 (ICMPv6) Redirect messages received. + An value that specifies the total number of ICMP Redirect messages received. + + + Gets the number of Internet Control Message Protocol version 6 (ICMPv6) Redirect messages sent. + An value that specifies the total number of ICMP Redirect messages sent. + + + Gets the number of Internet Control Message Protocol version 6 (ICMPv6) Router Advertisement messages received. + An value that specifies the total number of Router Advertisement messages received. + + + Gets the number of Internet Control Message Protocol version 6 (ICMPv6) Router Advertisement messages sent. + An value that specifies the total number of Router Advertisement messages sent. + + + Gets the number of Internet Control Message Protocol version 6 (ICMPv6) Router Solicitation messages received. + An value that specifies the total number of Router Solicitation messages received. + + + Gets the number of Internet Control Message Protocol version 6 (ICMPv6) Router Solicitation messages sent. + An value that specifies the total number of Router Solicitation messages sent. + + + Gets the number of Internet Control Message Protocol version 6 (ICMPv6) Time Exceeded messages received. + An value that specifies the total number of ICMP Time Exceeded messages received. + + + Gets the number of Internet Control Message Protocol version 6 (ICMPv6) Time Exceeded messages sent. + An value that specifies the total number of ICMP Time Exceeded messages sent. + + + Stores a set of types. + + + Initializes a new instance of the class. + + + Throws a because this operation is not supported for this collection. + The object to be added to the collection. + + + Throws a because this operation is not supported for this collection. + + + Checks whether the collection contains the specified object. + true if the object exists in the collection; otherwise, false. + The object to be searched in the collection. + + + Copies the elements in this collection to a one-dimensional array of type . + A one-dimensional array that receives a copy of the collection. + The zero-based index in at which the copy begins. + + is null. + + is less than zero. + + is multidimensional.-or- The number of elements in this is greater than the available space from to the end of the destination . + The elements in this cannot be cast automatically to the type of the destination . + + + Gets the number of types in this collection. + An value that contains the number of types in this collection. + + + Returns an object that can be used to iterate through this collection. + An object that implements the interface and provides access to the types in this collection. + + + Gets a value that indicates whether access to this collection is read-only. + true in all cases. + + + Gets the at the specific index of the collection. + The at the specific index in the collection. + The index of interest. + + + Throws a because this operation is not supported for this collection. + Always throws a . + The object to be removed. + + + Returns an object that can be used to iterate through this collection. + An object that implements the interface and provides access to the types in this collection. + + + Provides information about a network interface address. + + + Initializes a new instance of the class. + + + Gets the Internet Protocol (IP) address. + An instance that contains the IP address of an interface. + + + Gets a value that indicates whether the Internet Protocol (IP) address is valid to appear in a Domain Name System (DNS) server database. + true if the address can appear in a DNS database; otherwise, false. + + + Gets a value that indicates whether the Internet Protocol (IP) address is transient (a cluster address). + true if the address is transient; otherwise, false. + + + Stores a set of types. + + + Throws a because this operation is not supported for this collection. + The object to be added to the collection. + + + Throws a because this operation is not supported for this collection. + + + Checks whether the collection contains the specified object. + true if the object exists in the collection; otherwise. false. + The object to be searched in the collection. + + + Copies the collection to the specified array. + A one-dimensional array that receives a copy of the collection. + The zero-based index in at which the copy begins. + + is null. + + is less than zero. + + is multidimensional.-or- The number of elements in this is greater than the available space from to the end of the destination . + The elements in this cannot be cast automatically to the type of the destination . + + + Gets the number of types in this collection. + An value that contains the number of types in this collection. + + + Returns an object that can be used to iterate through this collection. + An object that implements the interface and provides access to the types in this collection. + + + Gets a value that indicates whether access to this collection is read-only. + true in all cases. + + + Gets the at the specified index in the collection. + The at the specified location. + The zero-based index of the element. + + + Throws a because this operation is not supported for this collection. + Always throws a . + The object to be removed. + + + Returns an object that can be used to iterate through this collection. + An object that implements the interface and provides access to the types in this collection. + + + Provides information about the network connectivity of the local computer. + + + Initializes a new instance of the class. + + + Begins an asynchronous request to retrieve the stable unicast IP address table on the local computer. + An that references the asynchronous request. + The delegate. + An object that contains state information for this request. + This method is not implemented on the platform. This method uses the native NotifyStableUnicastIpAddressTable function that is supported on Windows Vista and later. + The call to the native NotifyStableUnicastIpAddressTable function failed. + + + Gets the Dynamic Host Configuration Protocol (DHCP) scope name. + A instance that contains the computer's DHCP scope name. + A Win32 function call failed. + + + Gets the domain in which the local computer is registered. + A instance that contains the computer's domain name. If the computer does not belong to a domain, returns . + A Win32 function call failed. + + + Ends a pending asynchronous request to retrieve the stable unicast IP address table on the local computer. + An that stores state information and any user defined data for this asynchronous operation. + An that references the asynchronous request. + The call to the native GetAdaptersAddresses function failed. + This method is not implemented on the platform. This method uses the native NotifyStableUnicastIpAddressTable function that is supported on Windows Vista and later. + The caller does not have necessary permission. + + + Returns information about the Internet Protocol version 4 (IPv4) and IPv6 Transmission Control Protocol (TCP) connections on the local computer. + A array that contains objects that describe the active TCP connections, or an empty array if no active TCP connections are detected. + The Win32 function GetTcpTable failed. + + + Returns endpoint information about the Internet Protocol version 4 (IPv4) and IPv6 Transmission Control Protocol (TCP) listeners on the local computer. + A array that contains objects that describe the active TCP listeners, or an empty array, if no active TCP listeners are detected. + The Win32 function GetTcpTable failed. + + + Returns information about the Internet Protocol version 4 (IPv4) and IPv6 User Datagram Protocol (UDP) listeners on the local computer. + An array that contains objects that describe the UDP listeners, or an empty array if no UDP listeners are detected. + The call to the Win32 function GetUdpTable failed. + + + Provides Internet Control Message Protocol (ICMP) version 4 statistical data for the local computer. + An object that provides ICMP version 4 traffic statistics for the local computer. + The Win32 function GetIcmpStatistics failed. + + + Provides Internet Control Message Protocol (ICMP) version 6 statistical data for the local computer. + An object that provides ICMP version 6 traffic statistics for the local computer. + The Win32 function GetIcmpStatisticsEx failed. + The local computer's operating system is not Windows XP or later. + + + Gets an object that provides information about the local computer's network connectivity and traffic statistics. + A object that contains information about the local computer. + + + + + + Provides Internet Protocol version 4 (IPv4) statistical data for the local computer. + An object that provides IPv4 traffic statistics for the local computer. + The call to the Win32 function GetIpStatistics failed. + + + Provides Internet Protocol version 6 (IPv6) statistical data for the local computer. + An object that provides IPv6 traffic statistics for the local computer. + The call to the Win32 function GetIpStatistics failed. + The local computer is not running an operating system that supports IPv6. + + + Provides Transmission Control Protocol/Internet Protocol version 4 (TCP/IPv4) statistical data for the local computer. + A object that provides TCP/IPv4 traffic statistics for the local computer. + The call to the Win32 function GetTcpStatistics failed. + + + Provides Transmission Control Protocol/Internet Protocol version 6 (TCP/IPv6) statistical data for the local computer. + A object that provides TCP/IPv6 traffic statistics for the local computer. + The call to the Win32 function GetTcpStatistics failed. + The local computer is not running an operating system that supports IPv6. + + + Provides User Datagram Protocol/Internet Protocol version 4 (UDP/IPv4) statistical data for the local computer. + A object that provides UDP/IPv4 traffic statistics for the local computer. + The call to the Win32 function GetUdpStatistics failed. + + + Provides User Datagram Protocol/Internet Protocol version 6 (UDP/IPv6) statistical data for the local computer. + A object that provides UDP/IPv6 traffic statistics for the local computer. + The call to the Win32 function GetUdpStatistics failed. + The local computer is not running an operating system that supports IPv6. + + + Retrieves the stable unicast IP address table on the local computer. + A that contains a list of stable unicast IP addresses on the local computer. + The call to the native GetAdaptersAddresses function failed. + This method is not implemented on the platform. This method uses the native NotifyStableUnicastIpAddressTable function that is supported on Windows Vista and later. + The caller does not have necessary permission. + The call to the native NotifyStableUnicastIpAddressTable function failed. + + + Retrieves the stable unicast IP address table on the local computer as an asynchronous operation. + Returns .The task object representing the asynchronous operation. + The call to the native GetAdaptersAddresses function failed. + The caller does not have necessary permission. + The call to the native NotifyStableUnicastIpAddressTable function failed. + + + Gets the host name for the local computer. + A instance that contains the computer's NetBIOS name. + A Win32 function call failed. + + + Gets a value that specifies whether the local computer is acting as a Windows Internet Name Service (WINS) proxy. + true if the local computer is a WINS proxy; otherwise, false. + A Win32 function call failed. + + + Gets the Network Basic Input/Output System (NetBIOS) node type of the local computer. + A value. + A Win32 function call failed. + + + Provides Internet Protocol (IP) statistical data. + + + Initializes a new instance of the class. + + + Gets the default time-to-live (TTL) value for Internet Protocol (IP) packets. + An value that specifies the TTL. + + + Gets a value that specifies whether Internet Protocol (IP) packet forwarding is enabled. + A value that specifies whether packet forwarding is enabled. + + + Gets the number of network interfaces. + An value containing the number of network interfaces for the address family used to obtain this instance. + + + Gets the number of Internet Protocol (IP) addresses assigned to the local computer. + An value that indicates the number of IP addresses assigned to the address family (Internet Protocol version 4 or Internet Protocol version 6) described by this object. + + + Gets the number of routes in the Internet Protocol (IP) routing table. + An value that specifies the total number of routes in the routing table. + + + Gets the number of outbound Internet Protocol (IP) packets. + An value that specifies the total number of outgoing packets. + + + Gets the number of routes that have been discarded from the routing table. + An value that specifies the total number of valid routes that have been discarded. + + + Gets the number of transmitted Internet Protocol (IP) packets that have been discarded. + An value that specifies the total number of outgoing packets that have been discarded. + + + Gets the number of Internet Protocol (IP) packets for which the local computer could not determine a route to the destination address. + An value that specifies the number of packets that could not be sent because a route could not be found. + + + Gets the number of Internet Protocol (IP) packets that could not be fragmented. + An value that specifies the total number of packets that required fragmentation but had the "Don't Fragment" bit set. + + + Gets the number of Internet Protocol (IP) packets that required reassembly. + An value that specifies the total number of packet reassemblies required. + + + Gets the number of Internet Protocol (IP) packets that were not successfully reassembled. + An value that specifies the total number of packets that could not be reassembled. + + + Gets the maximum amount of time within which all fragments of an Internet Protocol (IP) packet must arrive. + An value that specifies the maximum number of milliseconds within which all fragments of a packet must arrive to avoid being discarded. + + + Gets the number of Internet Protocol (IP) packets fragmented. + An value that specifies the total number of fragmented packets. + + + Gets the number of Internet Protocol (IP) packets reassembled. + An value that specifies the total number of fragmented packets that have been successfully reassembled. + + + Gets the number of Internet Protocol (IP) packets received. + An value that specifies the total number of IP packets received. + + + Gets the number of Internet Protocol (IP) packets delivered. + An value that specifies the total number of IP packets delivered. + + + Gets the number of Internet Protocol (IP) packets that have been received and discarded. + An value that specifies the total number of incoming packets that have been discarded. + + + Gets the number of Internet Protocol (IP) packets forwarded. + An value that specifies the total number of forwarded packets. + + + Gets the number of Internet Protocol (IP) packets with address errors that were received. + An value that specifies the total number of IP packets received with errors in the address portion of the header. + + + Gets the number of Internet Protocol (IP) packets with header errors that were received. + An value that specifies the total number of IP packets received and discarded due to errors in the header. + + + Gets the number of Internet Protocol (IP) packets received on the local machine with an unknown protocol in the header. + An value that indicates the total number of IP packets received with an unknown protocol. + + + Provides information about network interfaces that support Internet Protocol version 4 (IPv4) or Internet Protocol version 6 (IPv6). + + + Initializes a new instance of the class. + + + Gets the anycast IP addresses assigned to this interface. + An that contains the anycast addresses for this interface. + + + Gets the addresses of Dynamic Host Configuration Protocol (DHCP) servers for this interface. + An that contains the address information for DHCP servers, or an empty array if no servers are found. + + + Gets the addresses of Domain Name System (DNS) servers for this interface. + A that contains the DNS server addresses. + + + Gets the Domain Name System (DNS) suffix associated with this interface. + A that contains the DNS suffix for this interface, or if there is no DNS suffix for the interface. + This property is not valid on computers running operating systems earlier than Windows 2000. + + + Gets the IPv4 network gateway addresses for this interface. + An that contains the address information for network gateways, or an empty array if no gateways are found. + + + Provides Internet Protocol version 4 (IPv4) configuration data for this network interface. + An object that contains IPv4 configuration data, or null if no data is available for the interface. + The interface does not support the IPv4 protocol. + + + Provides Internet Protocol version 6 (IPv6) configuration data for this network interface. + An object that contains IPv6 configuration data. + The interface does not support the IPv6 protocol. + + + Gets a value that indicates whether NetBt is configured to use DNS name resolution on this interface. + true if NetBt is configured to use DNS name resolution on this interface; otherwise, false. + + + Gets a value that indicates whether this interface is configured to automatically register its IP address information with the Domain Name System (DNS). + true if this interface is configured to automatically register a mapping between its dynamic IP address and static domain names; otherwise, false. + + + Gets the multicast addresses assigned to this interface. + An that contains the multicast addresses for this interface. + + + Gets the unicast addresses assigned to this interface. + An that contains the unicast addresses for this interface. + + + Gets the addresses of Windows Internet Name Service (WINS) servers. + An that contains the address information for WINS servers, or an empty array if no servers are found. + + + Provides Internet Protocol (IP) statistical data for an network interface on the local computer. + + + Initializes a new instance of the class. + + + Gets the number of bytes that were received on the interface. + Returns .The total number of bytes that were received on the interface. + + + Gets the number of bytes that were sent on the interface. + Returns .The total number of bytes that were sent on the interface. + + + Gets the number of incoming packets that were discarded. + Returns .The total number of incoming packets that were discarded. + + + Gets the number of incoming packets with errors. + Returns .The total number of incoming packets with errors. + + + Gets the number of incoming packets with an unknown protocol that were received on the interface. + Returns .The total number of incoming packets with an unknown protocol that were received on the interface. + + + Gets the number of non-unicast packets that were received on the interface. + Returns .The total number of incoming non-unicast packets received on the interface. + + + Gets the number of non-unicast packets that were sent on the interface. + Returns .The total number of non-unicast packets that were sent on the interface. + + + Gets the number of outgoing packets that were discarded. + Returns .The total number of outgoing packets that were discarded. + + + Gets the number of outgoing packets with errors. + Returns .The total number of outgoing packets with errors. + + + Gets the length of the output queue. + Returns .The total number of packets in the output queue. + + + Gets the number of unicast packets that were received on the interface. + Returns .The total number of unicast packets that were received on the interface. + + + Gets the number of unicast packets that were sent on the interface. + Returns .The total number of unicast packets that were sent on the interface. + + + Reports the status of sending an Internet Control Message Protocol (ICMP) echo message to a computer. + + + The ICMP echo request failed because the destination IP address cannot receive ICMP echo requests or should never appear in the destination address field of any IP datagram. For example, calling and specifying IP address "000.0.0.0" returns this status. + + + The ICMP echo request failed because the header is invalid. + + + The ICMP echo request failed because it contains an invalid option. + + + The ICMP echo request failed because there is no valid route between the source and destination computers. + + + The ICMP echo request failed because the destination computer is not reachable. + + + The ICMP echo request failed because the network that contains the destination computer is not reachable. + + + The ICMP echo request failed because the port on the destination computer is not available. + + + The ICMPv6 echo request failed because contact with the destination computer is administratively prohibited. This value applies only to IPv6. + + + The ICMP echo request failed because the destination computer that is specified in an ICMP echo message is not reachable, because it does not support the packet's protocol. This value applies only to IPv4. This value is described in IETF RFC 1812 as Communication Administratively Prohibited. + + + The ICMP echo request failed because the source address and destination address that are specified in an ICMP echo message are not in the same scope. This is typically caused by a router forwarding a packet using an interface that is outside the scope of the source address. Address scopes (link-local, site-local, and global scope) determine where on the network an address is valid. + + + The ICMP echo request failed because the destination computer that is specified in an ICMP echo message is not reachable; the exact cause of problem is unknown. + + + The ICMP echo request failed because of a hardware error. + + + The ICMP echo request failed because of an ICMP protocol error. + + + The ICMP echo request failed because of insufficient network resources. + + + The ICMP echo request failed because the packet containing the request is larger than the maximum transmission unit (MTU) of a node (router or gateway) located between the source and destination. The MTU defines the maximum size of a transmittable packet. + + + The ICMP echo request failed because a node (router or gateway) encountered problems while processing the packet header. This is the status if, for example, the header contains invalid field data or an unrecognized option. + + + The ICMP echo request failed because the packet was discarded. This occurs when the source computer's output queue has insufficient storage space, or when packets arrive at the destination too quickly to be processed. + + + The ICMP echo request succeeded; an ICMP echo reply was received. When you get this status code, the other properties contain valid data. + + + The ICMP echo Reply was not received within the allotted time. The default time allowed for replies is 5 seconds. You can change this value using the or methods that take a parameter. + + + The ICMP echo request failed because its Time to Live (TTL) value reached zero, causing the forwarding node (router or gateway) to discard the packet. + + + The ICMP echo request failed because its Time to Live (TTL) value reached zero, causing the forwarding node (router or gateway) to discard the packet. + + + The ICMP echo request failed because the packet was divided into fragments for transmission and all of the fragments were not received within the time allotted for reassembly. RFC 2460 (available at www.ietf.org) specifies 60 seconds as the time limit within which all packet fragments must be received. + + + The ICMP echo request failed for an unknown reason. + + + The ICMP echo request failed because the Next Header field does not contain a recognized value. The Next Header field indicates the extension header type (if present) or the protocol above the IP layer, for example, TCP or UDP. + + + Provides information about network interfaces that support Internet Protocol version 4 (IPv4). + + + Initializes a new instance of the class. + + + Gets the index of the network interface associated with the Internet Protocol version 4 (IPv4) address. + An that contains the index of the IPv4 interface. + + + Gets a value that indicates whether this interface has an automatic private IP addressing (APIPA) address. + true if the interface uses an APIPA address; otherwise, false. + + + Gets a value that indicates whether this interface has automatic private IP addressing (APIPA) enabled. + true if the interface uses APIPA; otherwise, false. + + + Gets a value that indicates whether the interface is configured to use a Dynamic Host Configuration Protocol (DHCP) server to obtain an IP address. + true if the interface is configured to obtain an IP address from a DHCP server; otherwise, false. + + + Gets a value that indicates whether this interface can forward (route) packets. + true if this interface routes packets; otherwise false. + + + Gets the maximum transmission unit (MTU) for this network interface. + An value that specifies the MTU. + + + Gets a value that indicates whether an interface uses Windows Internet Name Service (WINS). + true if the interface uses WINS; otherwise, false. + + + Provides statistical data for a network interface on the local computer. + + + Initializes a new instance of the class. + + + Gets the number of bytes that were received on the interface. + An value that specifies the total number of bytes that were received on the interface. + + + Gets the number of bytes that were sent on the interface. + An value that specifies the total number of bytes that were transmitted on the interface. + + + Gets the number of incoming packets that were discarded. + An value that specifies the total number of discarded incoming packets. + + + Gets the number of incoming packets with errors. + An value that specifies the total number of incoming packets with errors. + + + Gets the number of incoming packets with an unknown protocol that were received on the interface. + An value that specifies the total number of incoming packets with an unknown protocol. + + + Gets the number of non-unicast packets that were received on the interface. + An value that specifies the total number of non-unicast packets that were received on the interface. + + + Gets the number of non-unicast packets that were sent on the interface. + An value that specifies the total number of non-unicast packets that were sent on the interface. + + + Gets the number of outgoing packets that were discarded. + An value that specifies the total number of discarded outgoing packets. + + + Gets the number of outgoing packets with errors. + An value that specifies the total number of outgoing packets with errors. + + + Gets the length of the output queue. + An value that specifies the total number of packets in the output queue. + + + Gets the number of unicast packets that were received on the interface. + An value that specifies the total number of unicast packets that were received on the interface. + + + Gets the number of unicast packets that were sent on the interface. + An value that specifies the total number of unicast packets that were sent on the interface. + + + Provides information about network interfaces that support Internet Protocol version 6 (IPv6). + + + Initializes a new instance of the class. + + + Gets the scope ID of the network interface associated with an Internet Protocol version 6 (IPv6) address. + Returns .The scope ID of the network interface associated with an IPv6 address. + The scope level. + + + Gets the index of the network interface associated with an Internet Protocol version 6 (IPv6) address. + An value that contains the index of the network interface for IPv6 address. + + + Gets the maximum transmission unit (MTU) for this network interface. + An value that specifies the MTU. + + + Provides information about a network interface's multicast address. + + + Initializes a new instance of the class. + + + Gets the number of seconds remaining during which this address is the preferred address. + An value that specifies the number of seconds left for this address to remain preferred. + This property is not valid on computers running operating systems earlier than Windows XP. + + + Gets the number of seconds remaining during which this address is valid. + An value that specifies the number of seconds left for this address to remain assigned. + This property is not valid on computers running operating systems earlier than Windows XP. + + + Specifies the amount of time remaining on the Dynamic Host Configuration Protocol (DHCP) lease for this IP address. + An value that contains the number of seconds remaining before the computer must release the instance. + + + Gets a value that indicates the state of the duplicate address detection algorithm. + One of the values that indicates the progress of the algorithm in determining the uniqueness of this IP address. + This property is not valid on computers running operating systems earlier than Windows XP. + + + Gets a value that identifies the source of a Multicast Internet Protocol (IP) address prefix. + One of the values that identifies how the prefix information was obtained. + This property is not valid on computers running operating systems earlier than Windows XP. + + + Gets a value that identifies the source of a Multicast Internet Protocol (IP) address suffix. + One of the values that identifies how the suffix information was obtained. + This property is not valid on computers running operating systems earlier than Windows XP. + + + Stores a set of types. + + + Initializes a new instance of the class. + + + Throws a because the collection is read-only and elements cannot be added to the collection. + The object to be added to the collection. + + + Throws a because the collection is read-only and elements cannot be removed. + + + Checks whether the collection contains the specified object. + true if the object exists in the collection; otherwise, false. + The object to be searched in the collection. + + + Copies the elements in this collection to a one-dimensional array of type . + A one-dimensional array that receives a copy of the collection. + The zero-based index in at which the copy begins. + + is null. + + is less than zero. + + is multidimensional.-or- The number of elements in this is greater than the available space from to the end of the destination . + The elements in this cannot be cast automatically to the type of the destination . + + + Gets the number of types in this collection. + An value that contains the number of types in this collection. + + + Returns an object that can be used to iterate through this collection. + An object that implements the interface and provides access to the types in this collection. + + + Gets a value that indicates whether access to this collection is read-only. + true in all cases. + + + Gets the at the specific index of the collection. + The at the specific index in the collection. + The index of interest. + + + Throws a because the collection is read-only and elements cannot be removed. + Always throws a . + The object to be removed. + + + Returns an object that can be used to iterate through this collection. + An object that implements the interface and provides access to the types in this collection. + + + Specifies the Network Basic Input/Output System (NetBIOS) node type. + + + A broadcast node. + + + A hybrid node. + + + A mixed node. + + + A peer-to-peer node. + + + An unknown node type. + + + References one or more methods to be called when the address of a network interface changes. + The source of the event. + An object that contains data about the event. + + + References one or more methods to be called when the availability of the network changes. + The source of the event. + An object that contains data about the event. + + + Provides data for the event. + + + Gets the current status of the network connection. + true if the network is available; otherwise, false. + + + Allows applications to receive notification when the Internet Protocol (IP) address of a network interface, also called a network card or adapter, changes. + + + Initializes a new instance of the class. + + + Occurs when the IP address of a network interface changes. + + + Occurs when the availability of the network changes. + + + Registers a network change instance to receive network change events. + The instance to register. + + + Specifies permission to access information about network interfaces and traffic statistics. + + + No access to network information. + + + Ping access to network information. + + + Read access to network information. + + + The exception that is thrown when an error occurs while retrieving network information. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with the specified error code. + A Win32 error code. + + + Initializes a new instance of the class with serialized data. + A SerializationInfo object that contains the serialized exception data. + A StreamingContext that contains contextual information about the serialized exception. + + + Gets the Win32 error code for this exception. + An value that contains the Win32 error code. + + + Controls access to network information and traffic statistics for the local computer. This class cannot be inherited. + + + Initializes a new instance of the class using the specified value. + One of the values. + + + Initializes a new instance of the class with the specified . + One of the values. + + + Gets the level of access to network information controlled by this permission. + One of the values. + + + Adds the specified value to this permission. + One of the values. + + + Creates and returns an identical copy of this permission. + A that is identical to the current permission + + + Sets the state of this permission using the specified XML encoding. + A that contains the XML encoding to use to set the state of the current permission + + is null. + + is not a permission encoding.-or- is not an encoding of a . -or- has invalid values. + + + Creates and returns a permission that is the intersection of the current permission and the specified permission. + A that represents the intersection of the current permission and the specified permission. This new permission is null if the intersection is empty or is null. + An to intersect with the current permission. It must be of the same type as the current permission. + + is not a . + + + Determines whether the current permission is a subset of the specified permission. + true if the current permission is a subset of the specified permission; otherwise, false. + An that is to be tested for the subset relationship. This permission must be of the same type as the current permission + + + Returns a value indicating whether the current permission is unrestricted. + true if the current permission is unrestricted; otherwise, false. + + + Creates an XML encoding of the state of this permission. + A that contains the XML encoding of the current permission. + + + Creates a permission that is the union of this permission and the specified permission. + A new permission that represents the union of the current permission and the specified permission. + A permission to combine with the current permission. + + + Allows security actions for to be applied to code using declarative security. + + + Initializes a new instance of the class. + A value that specifies the permission behavior. + + + Gets or sets the network information access level. + A string that specifies the access level. + + + Creates and returns a new object. + A that corresponds to this attribute. + + + + + + Provides configuration and statistical information for a network interface. + + + Initializes a new instance of the class. + + + Gets the description of the interface. + A that describes this interface. + + + Returns objects that describe the network interfaces on the local computer. + A array that contains objects that describe the available network interfaces, or an empty array if no interfaces are detected. + A Windows system function call failed. + + + + + + + + + Returns an object that describes the configuration of this network interface. + An object that describes this network interface. + + + Gets the IP statistics for this instance. + Returns .The IP statistics. + + + Gets the IPv4 statistics for this instance. + An object. + + + Indicates whether any network connection is available. + true if a network connection is available; otherwise, false. + + + Returns the Media Access Control (MAC) or physical address for this adapter. + A object that contains the physical address. + + + Gets the identifier of the network adapter. + A that contains the identifier. + + + Gets the index of the IPv6 loopback interface. + Returns .The index for the IPv6 loopback interface. + + + Gets a value that indicates whether the network interface is set to only receive data packets. + true if the interface only receives network traffic; otherwise, false. + This property is not valid on computers running operating systems earlier than Windows XP. + + + Gets the index of the IPv4 loopback interface. + A that contains the index for the IPv4 loopback interface. + This property is not valid on computers running only Ipv6. + + + Gets the name of the network adapter. + A that contains the adapter name. + + + Gets the interface type. + An value that specifies the network interface type. + + + Gets the current operational state of the network connection. + One of the values. + + + Gets the speed of the network interface. + A value that specifies the speed in bits per second. + + + Gets a value that indicates whether the interface supports the specified protocol. + true if the specified protocol is supported; otherwise, false. + A value. + + + Gets a value that indicates whether the network interface is enabled to receive multicast packets. + true if the interface receives multicast packets; otherwise, false. + This property is not valid on computers running operating systems earlier than Windows XP. + + + Specifies the Internet Protocol versions that are supported by a network interface. + + + Internet Protocol version 4. + + + Internet Protocol version 6. + + + Specifies types of network interfaces. + + + The network interface uses an Asymmetric Digital Subscriber Line (ADSL). + + + The network interface uses asynchronous transfer mode (ATM) for data transmission. + + + The network interface uses a basic rate interface Integrated Services Digital Network (ISDN) connection. ISDN is a set of standards for data transmission over telephone lines. + + + The network interface uses an Ethernet connection. Ethernet is defined in IEEE standard 802.3. + + + The network interface uses an Ethernet 3 megabit/second connection. This version of Ethernet is defined in IETF RFC 895. + + + The network interface uses a Fast Ethernet connection over optical fiber and provides a data rate of 100 megabits per second. This type of connection is also known as 100Base-FX. + + + The network interface uses a Fast Ethernet connection over twisted pair and provides a data rate of 100 megabits per second. This type of connection is also known as 100Base-T. + + + The network interface uses a Fiber Distributed Data Interface (FDDI) connection. FDDI is a set of standards for data transmission on fiber optic lines in a local area network. + + + The network interface uses a modem. + + + The network interface uses a gigabit Ethernet connection and provides a data rate of 1,000 megabits per second (1 gigabit per second). + + + The network interface uses a High Performance Serial Bus. + + + The network interface uses the Internet Protocol (IP) in combination with asynchronous transfer mode (ATM) for data transmission. + + + The network interface uses a connection configured for ISDN and the X.25 protocol. X.25 allows computers on public networks to communicate using an intermediary computer. + + + The network interface is a loopback adapter. Such interfaces are often used for testing; no traffic is sent over the wire. + + + The network interface uses a Multirate Digital Subscriber Line. + + + The network interface uses a Point-To-Point protocol (PPP) connection. PPP is a protocol for data transmission using a serial device. + + + The network interface uses a primary rate interface Integrated Services Digital Network (ISDN) connection. ISDN is a set of standards for data transmission over telephone lines. + + + The network interface uses a Rate Adaptive Digital Subscriber Line (RADSL). + + + The network interface uses a Serial Line Internet Protocol (SLIP) connection. SLIP is defined in IETF RFC 1055. + + + The network interface uses a Symmetric Digital Subscriber Line (SDSL). + + + The network interface uses a Token-Ring connection. Token-Ring is defined in IEEE standard 802.5. + + + The network interface uses a tunnel connection. + + + The interface type is not known. + + + The network interface uses a Very High Data Rate Digital Subscriber Line (VDSL). + + + The network interface uses a wireless LAN connection (IEEE 802.11 standard). + + + The network interface uses a mobile broadband interface for WiMax devices. + + + The network interface uses a mobile broadband interface for GSM-based devices. + + + The network interface uses a mobile broadband interface for CDMA-based devices. + + + Specifies the operational state of a network interface. + + + The network interface is not in a condition to transmit data packets; it is waiting for an external event. + + + The network interface is unable to transmit data packets. + + + The network interface is unable to transmit data packets because it runs on top of one or more other interfaces, and at least one of these "lower layer" interfaces is down. + + + The network interface is unable to transmit data packets because of a missing component, typically a hardware component. + + + The network interface is running tests. + + + The network interface status is not known. + + + The network interface is up; it can transmit data packets. + + + Provides the Media Access Control (MAC) address for a network interface (adapter). + + + Initializes a new instance of the class. + A array containing the address. + + + Compares two instances. + true if this instance and the specified instance contain the same address; otherwise false. + The to compare to the current instance. + + + Returns the address of the current instance. + A array containing the address. + + + Returns the hash value of a physical address. + An integer hash value. + + + Returns a new instance with a zero length address. This field is read-only. + + + Parses the specified and stores its contents as the address bytes of the returned by this method. + A instance with the specified address. + A containing the address that will be used to initialize the instance returned by this method. + The parameter contains an illegal hardware address. This exception also occurs if the parameter contains a string in the incorrect format. + + + Returns the representation of the address of this instance. + A containing the address contained in this instance. + + + Allows an application to determine whether a remote computer is accessible over the network. + + + Initializes a new instance of the class. + + + Releases the unmanaged resources used by the object, and optionally disposes of the managed resources. + true to release both managed and unmanaged resources; false to releases only unmanaged resources. + + + Raises the event. + A object that contains event data. + + + Occurs when an asynchronous operation to send an Internet Control Message Protocol (ICMP) echo message and receive the corresponding ICMP echo reply message completes or is canceled. + + + Attempts to send an Internet Control Message Protocol (ICMP) echo message to the computer that has the specified , and receive a corresponding ICMP echo reply message from that computer. + A object that provides information about the ICMP echo reply message, if one was received, or describes the reason for the failure if no message was received. + An that identifies the computer that is the destination for the ICMP echo message. + + is null. + A call to is in progress. + + is an IPv6 address and the local computer is running an operating system earlier than Windows 2000. + An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown. + This object has been disposed. + + + + + + + + + + Attempts to send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the computer that has the specified , and receive a corresponding ICMP echo reply message from that computer. This method allows you to specify a time-out value for the operation. + A object that provides information about the ICMP echo reply message if one was received, or provides the reason for the failure if no message was received. + An that identifies the computer that is the destination for the ICMP echo message. + An value that specifies the maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message. + + is null. + + is less than zero. + A call to is in progress. + + is an IPv6 address and the local computer is running an operating system earlier than Windows 2000. + An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown. + This object has been disposed. + + + Attempts to send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the computer that has the specified , and receive a corresponding ICMP echo reply message from that computer. This overload allows you to specify a time-out value for the operation. + A object that provides information about the ICMP echo reply message, if one was received, or provides the reason for the failure, if no message was received. The method will return if the packet exceeds the Maximum Transmission Unit (MTU). + An that identifies the computer that is the destination for the ICMP echo message. + An value that specifies the maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message. + A array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. The array cannot contain more than 65,500 bytes. + The size of exceeds 65500 bytes. + + is null.-or- is null, or the size is greater than 65500 bytes. + + is less than zero. + A call to is in progress. + + is an IPv6 address and the local computer is running an operating system earlier than Windows 2000. + An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown. + This object has been disposed. + + + Attempts to send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the computer that has the specified and receive a corresponding ICMP echo reply message from that computer. This overload allows you to specify a time-out value for the operation and control fragmentation and Time-to-Live values for the ICMP echo message packet. + A object that provides information about the ICMP echo reply message, if one was received, or provides the reason for the failure, if no message was received. The method will return if the packet exceeds the Maximum Transmission Unit (MTU). + An that identifies the computer that is the destination for the ICMP echo message. + An value that specifies the maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message. + A array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. The array cannot contain more than 65,500 bytes. + A object used to control fragmentation and Time-to-Live values for the ICMP echo message packet. + The size of exceeds 65500 bytes. + + is null.-or- is null, or the size is greater than 65500 bytes. + + is less than zero. + A call to is in progress. + + is an IPv6 address and the local computer is running an operating system earlier than Windows 2000. + An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown. + This object has been disposed. + + + Attempts to send an Internet Control Message Protocol (ICMP) echo message to the specified computer, and receive a corresponding ICMP echo reply message from that computer. + A object that provides information about the ICMP echo reply message, if one was received, or provides the reason for the failure, if no message was received. + A that identifies the computer that is the destination for the ICMP echo message. The value specified for this parameter can be a host name or a string representation of an IP address. + + is null or is an empty string (""). + A call to is in progress. + + is an IPv6 address and the local computer is running an operating system earlier than Windows 2000. + An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown. + This object has been disposed. + + + + + + + + + + Attempts to send an Internet Control Message Protocol (ICMP) echo message to the specified computer, and receive a corresponding ICMP echo reply message from that computer. This method allows you to specify a time-out value for the operation. + A object that provides information about the ICMP echo reply message if one was received, or provides the reason for the failure if no message was received. + A that identifies the computer that is the destination for the ICMP echo message. The value specified for this parameter can be a host name or a string representation of an IP address. + An value that specifies the maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message. + + is null or is an empty string (""). + + is less than zero. + A call to is in progress. + An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown. + This object has been disposed. + + + Attempts to send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the specified computer, and receive a corresponding ICMP echo reply message from that computer. This overload allows you to specify a time-out value for the operation. + A object that provides information about the ICMP echo reply message if one was received, or provides the reason for the failure if no message was received. + A that identifies the computer that is the destination for the ICMP echo message. The value specified for this parameter can be a host name or a string representation of an IP address. + An value that specifies the maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message. + A array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. The array cannot contain more than 65,500 bytes. + The size of exceeds 65500 bytes. + + is null or is an empty string ("").-or- is null, or the size is greater than 65500 bytes. + + is less than zero. + A call to is in progress. + An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown. + This object has been disposed. + + + Attempts to send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the specified computer, and receive a corresponding ICMP echo reply message from that computer. This overload allows you to specify a time-out value for the operation and control fragmentation and Time-to-Live values for the ICMP packet. + A object that provides information about the ICMP echo reply message if one was received, or provides the reason for the failure if no message was received. + A that identifies the computer that is the destination for the ICMP echo message. The value specified for this parameter can be a host name or a string representation of an IP address. + An value that specifies the maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message. + A array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. The array cannot contain more than 65,500 bytes. + A object used to control fragmentation and Time-to-Live values for the ICMP echo message packet. + The size of exceeds 65500 bytes. + + is null or is a zero length string.-or- is null, or the size is greater than 65500 bytes. + + is less than zero. + A call to is in progress. + + is an IPv6 address and the local computer is running an operating system earlier than Windows 2000. + An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown. + This object has been disposed. + + + Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the computer that has the specified , and receive a corresponding ICMP echo reply message from that computer. This overload allows you to specify a time-out value for the operation and control fragmentation and Time-to-Live values for the ICMP echo message packet. + An that identifies the computer that is the destination for the ICMP echo message. + An value that specifies the maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message. + A array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. The array cannot contain more than 65,500 bytes. + A object used to control fragmentation and Time-to-Live values for the ICMP echo message packet. + An object that is passed to the method invoked when the asynchronous operation completes. + + is null.-or- is null. + + is less than zero. + A call to is in progress. + + is an IPv6 address and the local computer is running an operating system earlier than Windows 2000. + An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown. + + is not a valid IP address. + This object has been disposed. + The size of exceeds 65500 bytes. + + + Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the computer that has the specified , and receive a corresponding ICMP echo reply message from that computer. This overload allows you to specify a time-out value for the operation. + An that identifies the computer that is the destination for the ICMP echo message. + An value that specifies the maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message. + A array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. The array cannot contain more than 65,500 bytes. + An object that is passed to the method invoked when the asynchronous operation completes. + + is null.-or- is null. + + is less than zero. + A call to is in progress. + + is an IPv6 address and the local computer is running an operating system earlier than Windows 2000. + An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown. + + is not a valid IP address. + This object has been disposed. + The size of exceeds 65500 bytes. + + + Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message to the computer that has the specified , and receive a corresponding ICMP echo reply message from that computer. This overload allows you to specify a time-out value for the operation. + An that identifies the computer that is the destination for the ICMP echo message. + An value that specifies the maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message. + An object that is passed to the method invoked when the asynchronous operation completes. + + is null. + + is less than zero. + A call to method is in progress. + + is an IPv6 address and the local computer is running an operating system earlier than Windows 2000. + An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown. + + is not a valid IP address. + This object has been disposed. + + + Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message to the computer that has the specified , and receive a corresponding ICMP echo reply message from that computer. + An that identifies the computer that is the destination for the ICMP echo message. + An object that is passed to the method invoked when the asynchronous operation completes. + + is null. + A call to the method is in progress. + + is an IPv6 address and the local computer is running an operating system earlier than Windows 2000. + An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown. + + is not a valid IP address. + This object has been disposed. + + + + + + + + + + Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the specified computer, and receive a corresponding ICMP echo reply message from that computer. This overload allows you to specify a time-out value for the operation and control fragmentation and Time-to-Live values for the ICMP packet. + A that identifies the computer that is the destination for the ICMP echo message. The value specified for this parameter can be a host name or a string representation of an IP address. + A array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. The array cannot contain more than 65,500 bytes. + An value that specifies the maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message. + A object used to control fragmentation and Time-to-Live values for the ICMP echo message packet. + An object that is passed to the method invoked when the asynchronous operation completes. + + is null or is an empty string ("").-or- is null. + + is less than zero. + A call to is in progress. + + is an IPv6 address and the local computer is running an operating system earlier than Windows 2000. + An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown. + + could not be resolved to a valid IP address. + This object has been disposed. + The size of exceeds 65500 bytes. + + + Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the specified computer, and receive a corresponding ICMP echo reply message from that computer. This overload allows you to specify a time-out value for the operation. + A that identifies the computer that is the destination for the ICMP echo message. The value specified for this parameter can be a host name or a string representation of an IP address. + An value that specifies the maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message. + A array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. The array cannot contain more than 65,500 bytes. + An object that is passed to the method invoked when the asynchronous operation completes. + + is null or is an empty string ("").-or- is null. + + is less than zero. + A call to is in progress. + + is an IPv6 address and the local computer is running an operating system earlier than Windows 2000. + An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown. + + could not be resolved to a valid IP address. + This object has been disposed. + The size of exceeds 65500 bytes. + + + Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message to the specified computer, and receive a corresponding ICMP echo reply message from that computer. This overload allows you to specify a time-out value for the operation. + A that identifies the computer that is the destination for the ICMP echo message. The value specified for this parameter can be a host name or a string representation of an IP address. + An value that specifies the maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message. + An object that is passed to the method invoked when the asynchronous operation completes. + + is null or is an empty string (""). + + is less than zero. + A call to is in progress. + + is an IPv6 address and the local computer is running an operating system earlier than Windows 2000. + An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown. + + could not be resolved to a valid IP address. + This object has been disposed. + + + Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message to the specified computer, and receive a corresponding ICMP echo reply message from that computer. + A that identifies the computer that is the destination for the ICMP echo message. The value specified for this parameter can be a host name or a string representation of an IP address. + An object that is passed to the method invoked when the asynchronous operation completes. + + is null or is an empty string (""). + A call to method is in progress. + + is an IPv6 address and the local computer is running an operating system earlier than Windows 2000. + An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown. + + could not be resolved to a valid IP address. + This object has been disposed. + + + + + + + + + + Cancels all pending asynchronous requests to send an Internet Control Message Protocol (ICMP) echo message and receives a corresponding ICMP echo reply message. + + + + + + + + Send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the computer that has the specified , and receives a corresponding ICMP echo reply message from that computer as an asynchronous operation. + Returns .The task object representing the asynchronous operation. + An IP address that identifies the computer that is the destination for the ICMP echo message. + + is null. + A call to is in progress. + An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown. + + is not a valid IP address. + This object has been disposed. + + + Send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the computer that has the specified , and receives a corresponding ICMP echo reply message from that computer as an asynchronous operation. This overload allows you to specify a time-out value for the operation. + Returns .The task object representing the asynchronous operation. + An IP address that identifies the computer that is the destination for the ICMP echo message. + The maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message. + + + Send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the computer that has the specified , and receives a corresponding ICMP echo reply message from that computer as an asynchronous operation. This overload allows you to specify a time-out value for the operation and a buffer to use for send and receive. + Returns .The task object representing the asynchronous operation. + An IP address that identifies the computer that is the destination for the ICMP echo message. + The maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message. + A array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. The array cannot contain more than 65,500 bytes. + + is null.-or- is null. + + is less than zero. + A call to is in progress. + An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown. + + is not a valid IP address. + This object has been disposed. + The size of exceeds 65,500 bytes. + + + Send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the computer that has the specified , and receives a corresponding ICMP echo reply message from that computer as an asynchronous operation. This overload allows you to specify a time-out value for the operation, a buffer to use for send and receive, and control fragmentation and Time-to-Live values for the ICMP echo message packet. + Returns .The task object representing the asynchronous operation. + An IP address that identifies the computer that is the destination for the ICMP echo message. + The maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message. + A array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. The array cannot contain more than 65,500 bytes. + A object used to control fragmentation and Time-to-Live values for the ICMP echo message packet. + + is null.-or- is null. + + is less than zero. + A call to is in progress. + An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown. + + is not a valid IP address. + This object has been disposed. + The size of exceeds 65,500 bytes. + + + Sends an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the specified computer, and receive a corresponding ICMP echo reply message from that computer as an asynchronous operation. + Returns .The task object representing the asynchronous operation. + The computer that is the destination for the ICMP echo message. The value specified for this parameter can be a host name or a string representation of an IP address. + + + Sends an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the specified computer, and receive a corresponding ICMP echo reply message from that computer as an asynchronous operation. This overload allows you to specify a time-out value for the operation. + Returns .The task object representing the asynchronous operation. + The computer that is the destination for the ICMP echo message. The value specified for this parameter can be a host name or a string representation of an IP address. + The maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message. + + + Sends an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the specified computer, and receive a corresponding ICMP echo reply message from that computer as an asynchronous operation. This overload allows you to specify a time-out value for the operation and a buffer to use for send and receive. + Returns .The task object representing the asynchronous operation. + The computer that is the destination for the ICMP echo message. The value specified for this parameter can be a host name or a string representation of an IP address. + The maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message. + A array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. The array cannot contain more than 65,500 bytes. + + + Sends an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the specified computer, and receive a corresponding ICMP echo reply message from that computer as an asynchronous operation. This overload allows you to specify a time-out value for the operation, a buffer to use for send and receive, and control fragmentation and Time-to-Live values for the ICMP echo message packet. + Returns .The task object representing the asynchronous operation. + The computer that is the destination for the ICMP echo message. The value specified for this parameter can be a host name or a string representation of an IP address. + The maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message. + A array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. The array cannot contain more than 65,500 bytes. + A object used to control fragmentation and Time-to-Live values for the ICMP echo message packet. + + + Provides data for the event. + + + Gets an object that contains data that describes an attempt to send an Internet Control Message Protocol (ICMP) echo request message and receive a corresponding ICMP echo reply message. + A object that describes the results of the ICMP echo request. + + + Represents the method that will handle the event of a object. + The source of the event. + A object that contains the event data. + + + The exception that is thrown when a or method calls a method that throws an exception. + + + Initializes a new instance of the class with serialized data. + The object that holds the serialized object data. + A that specifies the contextual information about the source or destination for this serialization. + + + Initializes a new instance of the class using the specified message. + A that describes the error. + + + Initializes a new instance of the class using the specified message and inner exception. + A that describes the error. + The exception that causes the current exception. + + + Used to control how data packets are transmitted. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class and sets the Time to Live and fragmentation values. + An value greater than zero that specifies the number of times that the data packets can be forwarded. + true to prevent data sent to the remote host from being fragmented; otherwise, false. + + is less than or equal to zero. + + + Gets or sets a value that controls fragmentation of the data sent to the remote host. + true if the data cannot be sent in multiple packets; otherwise false. The default is false. + + + Gets or sets the number of routing nodes that can forward the data before it is discarded. + An value that specifies the number of times the data packets can be forwarded. The default is 128. + The value specified for a set operation is less than or equal to zero. + + + Provides information about the status and data resulting from a or operation. + + + Gets the address of the host that sends the Internet Control Message Protocol (ICMP) echo reply. + An containing the destination for the ICMP echo message. + + + Gets the buffer of data received in an Internet Control Message Protocol (ICMP) echo reply message. + A array containing the data received in an ICMP echo reply message, or an empty array, if no reply was received. + + + Gets the options used to transmit the reply to an Internet Control Message Protocol (ICMP) echo request. + A object that contains the Time to Live (TTL) and the fragmentation directive used for transmitting the reply if is ; otherwise, null. + + + Gets the number of milliseconds taken to send an Internet Control Message Protocol (ICMP) echo request and receive the corresponding ICMP echo reply message. + An that specifies the round trip time, in milliseconds. + + + Gets the status of an attempt to send an Internet Control Message Protocol (ICMP) echo request and receive the corresponding ICMP echo reply message. + An value indicating the result of the request. + + + Specifies how an IP address network prefix was located. + + + The prefix was supplied by a Dynamic Host Configuration Protocol (DHCP) server. + + + The prefix was manually configured. + + + The prefix was located using an unspecified source. + + + The prefix was supplied by a router advertisement. + + + The prefix is a well-known prefix. Well-known prefixes are specified in standard-track Request for Comments (RFC) documents and assigned by the Internet Assigned Numbers Authority (Iana) or an address registry. Such prefixes are reserved for special purposes. + + + The scope level for an IPv6 address. + + + The scope is admin-level. + + + The scope is global. + + + The scope is interface-level. + + + The scope is link-level. + + + The scope level is not specified. + + + The scope is organization-level. + + + The scope is site-level. + + + The scope is subnet-level. + + + Specifies how an IP address host suffix was located. + + + The suffix is a link-local suffix. + + + The suffix was manually configured. + + + The suffix was supplied by a Dynamic Host Configuration Protocol (DHCP) server. + + + The suffix was located using an unspecified source. + + + The suffix was randomly assigned. + + + The suffix is a well-known suffix. Well-known suffixes are specified in standard-track Request for Comments (RFC) documents and assigned by the Internet Assigned Numbers Authority (Iana) or an address registry. Such suffixes are reserved for special purposes. + + + Provides information about the Transmission Control Protocol (TCP) connections on the local computer. + + + Initializes a new instance of the class. + + + Gets the local endpoint of a Transmission Control Protocol (TCP) connection. + An instance that contains the IP address and port on the local computer. + + + Gets the remote endpoint of a Transmission Control Protocol (TCP) connection. + An instance that contains the IP address and port on the remote computer. + + + Gets the state of this Transmission Control Protocol (TCP) connection. + One of the enumeration values. + + + Specifies the states of a Transmission Control Protocol (TCP) connection. + + + The TCP connection is closed. + + + The local endpoint of the TCP connection is waiting for a connection termination request from the local user. + + + The local endpoint of the TCP connection is waiting for an acknowledgement of the connection termination request sent previously. + + + The transmission control buffer (TCB) for the TCP connection is being deleted. + + + The TCP handshake is complete. The connection has been established and data can be sent. + + + The local endpoint of the TCP connection is waiting for a connection termination request from the remote endpoint or for an acknowledgement of the connection termination request sent previously. + + + The local endpoint of the TCP connection is waiting for a connection termination request from the remote endpoint. + + + The local endpoint of the TCP connection is waiting for the final acknowledgement of the connection termination request sent previously. + + + The local endpoint of the TCP connection is listening for a connection request from any remote endpoint. + + + The local endpoint of the TCP connection has sent and received a connection request and is waiting for an acknowledgment. + + + The local endpoint of the TCP connection has sent the remote endpoint a segment header with the synchronize (SYN) control bit set and is waiting for a matching connection request. + + + The local endpoint of the TCP connection is waiting for enough time to pass to ensure that the remote endpoint received the acknowledgement of its connection termination request. + + + The TCP connection state is unknown. + + + Provides Transmission Control Protocol (TCP) statistical data. + + + Initializes a new instance of the class. + + + Gets the number of accepted Transmission Control Protocol (TCP) connection requests. + An value that specifies the total number of TCP connection requests accepted. + + + Gets the number of Transmission Control Protocol (TCP) connection requests made by clients. + An value that specifies the total number of TCP connections initiated by clients. + + + Specifies the total number of Transmission Control Protocol (TCP) connections established. + An value that specifies the total number of connections established. + + + Gets the number of current Transmission Control Protocol (TCP) connections. + An value that specifies the total number of current TCP connections. + + + Gets the number of Transmission Control Protocol (TCP) errors received. + An value that specifies the total number of TCP errors received. + + + Gets the number of failed Transmission Control Protocol (TCP) connection attempts. + An value that specifies the total number of failed TCP connection attempts. + + + Gets the maximum number of supported Transmission Control Protocol (TCP) connections. + An value that specifies the total number of TCP connections that can be supported. + + + Gets the maximum retransmission time-out value for Transmission Control Protocol (TCP) segments. + An value that specifies the maximum number of milliseconds permitted by a TCP implementation for the retransmission time-out value. + + + Gets the minimum retransmission time-out value for Transmission Control Protocol (TCP) segments. + An value that specifies the minimum number of milliseconds permitted by a TCP implementation for the retransmission time-out value. + + + Gets the number of RST packets received by Transmission Control Protocol (TCP) connections. + An value that specifies the total number of reset TCP connections. + + + Gets the number of Transmission Control Protocol (TCP) segments sent with the reset flag set. + An value that specifies the total number of TCP segments sent with the reset flag set. + + + Gets the number of Transmission Control Protocol (TCP) segments received. + An value that specifies the total number of TCP segments received. + + + Gets the number of Transmission Control Protocol (TCP) segments re-sent. + An value that specifies the total number of TCP segments retransmitted. + + + Gets the number of Transmission Control Protocol (TCP) segments sent. + An value that specifies the total number of TCP segments sent. + + + Provides User Datagram Protocol (UDP) statistical data. + + + Initializes a new instance of the class. + + + Gets the number of User Datagram Protocol (UDP) datagrams that were received. + An value that specifies the total number of datagrams that were delivered to UDP users. + + + Gets the number of User Datagram Protocol (UDP) datagrams that were sent. + An value that specifies the total number of datagrams that were sent. + + + Gets the number of User Datagram Protocol (UDP) datagrams that were received and discarded because of port errors. + An value that specifies the total number of received UDP datagrams that were discarded because there was no listening application at the destination port. + + + Gets the number of User Datagram Protocol (UDP) datagrams that were received and discarded because of errors other than bad port information. + An value that specifies the total number of received UDP datagrams that could not be delivered for reasons other than the lack of an application at the destination port. + + + Gets the number of local endpoints that are listening for User Datagram Protocol (UDP) datagrams. + An value that specifies the total number of sockets that are listening for UDP datagrams. + + + Provides information about a network interface's unicast address. + + + Initializes a new instance of the class. + + + Gets the number of seconds remaining during which this address is the preferred address. + An value that specifies the number of seconds left for this address to remain preferred. + This property is not valid on computers running operating systems earlier than Windows XP. + + + Gets the number of seconds remaining during which this address is valid. + An value that specifies the number of seconds left for this address to remain assigned. + This property is not valid on computers running operating systems earlier than Windows XP. + + + Specifies the amount of time remaining on the Dynamic Host Configuration Protocol (DHCP) lease for this IP address. + An value that contains the number of seconds remaining before the computer must release the instance. + + + Gets a value that indicates the state of the duplicate address detection algorithm. + One of the values that indicates the progress of the algorithm in determining the uniqueness of this IP address. + This property is not valid on computers running operating systems earlier than Windows XP. + + + Gets the IPv4 mask. + An object that contains the IPv4 mask. + + + Gets the length, in bits, of the prefix or network part of the IP address. + Returns .the length, in bits, of the prefix or network part of the IP address. + + + Gets a value that identifies the source of a unicast Internet Protocol (IP) address prefix. + One of the values that identifies how the prefix information was obtained. + This property is not valid on computers running operating systems earlier than Windows XP. + + + Gets a value that identifies the source of a unicast Internet Protocol (IP) address suffix. + One of the values that identifies how the suffix information was obtained. + This property is not valid on computers running operating systems earlier than Windows XP. + + + Stores a set of types. + + + Initializes a new instance of the class. + + + Throws a because this operation is not supported for this collection. + The object to be added to the collection. + + + Throws a because this operation is not supported for this collection. + + + Checks whether the collection contains the specified object. + true if the object exists in the collection; otherwise, false. + The object to be searched in the collection. + + + Copies the elements in this collection to a one-dimensional array of type . + A one-dimensional array that receives a copy of the collection. + The zero-based index in at which the copy begins. + + is null. + + is less than zero. + + is multidimensional.-or- The number of elements in this is greater than the available space from to the end of the destination . + The elements in this cannot be cast automatically to the type of the destination . + + + Gets the number of types in this collection. + An value that contains the number of types in this collection. + + + Returns an object that can be used to iterate through this collection. + An object that implements the interface and provides access to the types in this collection. + + + Gets a value that indicates whether access to this collection is read-only. + true in all cases. + + + Gets the instance at the specified index in the collection. + The at the specified location. + The zero-based index of the element. + + + Throws a because the collection is read-only and elements cannot be removed. + Always throws a . + The object to be removed. + + + Returns an object that can be used to iterate through this collection. + An object that implements the interface and provides access to the types in this collection. + + + Provides methods for passing credentials across a stream and requesting or performing authentication for client-server applications. + + + Initializes a new instance of the class. + A object used by the for sending and receiving data. + A that indicates whether closing this object also closes . + + is null.-or- is equal to . + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Gets the stream used by this for sending and receiving data. + A object. + + + Gets a value that indicates whether authentication was successful. + true if successful authentication occurred; otherwise, false. + + + Gets a value that indicates whether data sent using this is encrypted. + true if data is encrypted before being transmitted over the network and decrypted when it reaches the remote endpoint; otherwise, false. + + + Gets a value that indicates whether both server and client have been authenticated. + true if the client and server have been authenticated; otherwise, false. + + + Gets a value that indicates whether the local side of the connection was authenticated as the server. + true if the local endpoint was authenticated as the server side of a client-server authenticated connection; false if the local endpoint was authenticated as the client. + + + Gets a value that indicates whether the data sent using this stream is signed. + true if the data is signed before being transmitted; otherwise, false. + + + Gets whether the stream used by this for sending and receiving data has been left open. + true if the inner stream has been left open; otherwise, false. + + + Specifies client requirements for authentication and impersonation when using the class and derived classes to request a resource. + + + The client and server should be authenticated. The request does not fail if the server is not authenticated. To determine whether mutual authentication occurred, check the value of the property. + + + The client and server should be authenticated. If the server is not authenticated, your application will receive an with a inner exception that indicates that mutual authentication failed + + + No authentication is required for the client and server. + + + The EncryptionPolicy to use. + + + Prefer that full encryption be used, but allow a NULL cipher (no encryption) if the server agrees. + + + Allow no encryption and request that a NULL cipher be used if the other endpoint can handle a NULL cipher. + + + Require encryption and never allow a NULL cipher. + + + Selects the local Secure Sockets Layer (SSL) certificate used for authentication. + An used for establishing an SSL connection. + An object that contains state information for this validation. + The host server specified by the client. + An containing local certificates. + The certificate used to authenticate the remote party. + A array of certificate issuers acceptable to the remote party. + + + Provides a stream that uses the Negotiate security protocol to authenticate the client, and optionally the server, in client-server communication. + + + Initializes a new instance of the class using the specified . + A object used by the for sending and receiving data. + + + Initializes a new instance of the class using the specified and stream closure behavior. + A object used by the for sending and receiving data. + true to indicate that closing this has no effect on ; false to indicate that closing this also closes . See the Remarks section for more information. + + is null.- or - is equal to . + + + Called by clients to authenticate the client, and optionally the server, in a client-server connection. + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + This object has been closed. + Authentication has already occurred.- or -This stream was used previously to attempt authentication as the server. You cannot use the stream to retry authentication as the client. + + + Called by clients to authenticate the client, and optionally the server, in a client-server connection. The authentication process uses the specified client credential and the channel binding. + The that is used to establish the identity of the client. + The that is used for extended protection. + The Service Principal Name (SPN) that uniquely identifies the server to authenticate. + + is null.- or - is null. + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + Authentication has already occurred.- or -This stream was used previously to attempt authentication as the server. You cannot use the stream to retry authentication as the client. + This object has been closed. + + + Called by clients to authenticate the client, and optionally the server, in a client-server connection. The authentication process uses the specified credential, authentication options, and channel binding. + The that is used to establish the identity of the client. + The that is used for extended protection. + The Service Principal Name (SPN) that uniquely identifies the server to authenticate. + One of the values, indicating the security services for the stream. + One of the values, indicating how the server can use the client's credentials to access resources. + + is null.- or - is null. + + is not a valid value. + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + Authentication has already occurred.- or -This stream was used previously to attempt authentication as the server. You cannot use the stream to retry authentication as the client. + This object has been closed. + + + Called by clients to authenticate the client, and optionally the server, in a client-server connection. The authentication process uses the specified client credential. + The that is used to establish the identity of the client. + The Service Principal Name (SPN) that uniquely identifies the server to authenticate. + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + This object has been closed. + Authentication has already occurred.- or -This stream was used previously to attempt authentication as the server. You cannot use the stream to retry authentication as the client. + + is null. + + + Called by clients to authenticate the client, and optionally the server, in a client-server connection. The authentication process uses the specified credentials and authentication options. + The that is used to establish the identity of the client. + The Service Principal Name (SPN) that uniquely identifies the server to authenticate. + One of the values, indicating the security services for the stream. + One of the values, indicating how the server can use the client's credentials to access resources. + + is not a valid value. + + is null. + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + This object has been closed. + Authentication has already occurred.- or -This stream was used previously to attempt authentication as the server. You cannot use the stream to retry authentication as the client. + + + Called by clients to authenticate the client, and optionally the server, in a client-server connection as an asynchronous operation. + Returns The task object representing the asynchronous operation. + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + This object has been closed. + Authentication has already occurred.- or -This stream was used previously to attempt authentication as the server. You cannot use the stream to retry authentication as the client. + + + Called by clients to authenticate the client, and optionally the server, in a client-server connection as an asynchronous operation. The authentication process uses the specified client credential and the channel binding. + Returns The task object representing the asynchronous operation. + The that is used to establish the identity of the client. + The that is used for extended protection. + The Service Principal Name (SPN) that uniquely identifies the server to authenticate. + + is null.- or - is null. + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + Authentication has already occurred.- or -This stream was used previously to attempt authentication as the server. You cannot use the stream to retry authentication as the client. + This object has been closed. + + + Called by clients to authenticate the client, and optionally the server, in a client-server connection as an asynchronous operation. The authentication process uses the specified credential, authentication options, and channel binding. + Returns The task object representing the asynchronous operation. + The that is used to establish the identity of the client. + The that is used for extended protection. + The Service Principal Name (SPN) that uniquely identifies the server to authenticate. + One of the values, indicating the security services for the stream. + One of the values, indicating how the server can use the client's credentials to access resources. + + is null.- or - is null. + + is not a valid value. + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + Authentication has already occurred.- or -This stream was used previously to attempt authentication as the server. You cannot use the stream to retry authentication as the client. + This object has been closed. + + + Called by clients to authenticate the client, and optionally the server, in a client-server connection as an asynchronous operation. The authentication process uses the specified client credential. + Returns The task object representing the asynchronous operation. + The that is used to establish the identity of the client. + The Service Principal Name (SPN) that uniquely identifies the server to authenticate. + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + This object has been closed. + Authentication has already occurred.- or -This stream was used previously to attempt authentication as the server. You cannot use the stream to retry authentication as the client. + + is null. + + + Called by clients to authenticate the client, and optionally the server, in a client-server connection as an asynchronous operation. The authentication process uses the specified credentials and authentication options. + Returns The task object representing the asynchronous operation. + The that is used to establish the identity of the client. + The Service Principal Name (SPN) that uniquely identifies the server to authenticate. + One of the values, indicating the security services for the stream. + One of the values, indicating how the server can use the client's credentials to access resources. + + is not a valid value. + + is null. + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + This object has been closed. + Authentication has already occurred.- or -This stream was used previously to attempt authentication as the server. You cannot use the stream to retry authentication as the client. + + + Called by servers to authenticate the client, and optionally the server, in a client-server connection. + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + This object has been closed. + Windows 95 and Windows 98 are not supported. + + + Called by servers to authenticate the client, and optionally the server, in a client-server connection. The authentication process uses the specified server credentials and authentication options. + The that is used to establish the identity of the server. + One of the values, indicating the security services for the stream. + One of the values, indicating how the server can use the client's credentials to access resources. + + is null. + + must be , , or , + The authentication failed. You can use this object to try to r-authenticate. + The authentication failed. You can use this object to retry the authentication. + This object has been closed. + Authentication has already occurred.- or -This stream was used previously to attempt authentication as the client. You cannot use the stream to retry authentication as the server. + Windows 95 and Windows 98 are not supported. + + + Called by servers to authenticate the client, and optionally the server, in a client-server connection. The authentication process uses the specified server credentials, authentication options, and extended protection policy. + The that is used to establish the identity of the client. + The that is used for extended protection. + One of the values, indicating the security services for the stream. + One of the values, indicating how the server can use the client's credentials to access resources. + The and on the extended protection policy passed in the parameter are both null. + + is null. + + must be , , or , + The authentication failed. You can use this object to try to r-authenticate. + The authentication failed. You can use this object to retry the authentication. + Authentication has already occurred.- or -This stream was used previously to attempt authentication as the client. You cannot use the stream to retry authentication as the server. + Windows 95 and Windows 98 are not supported. + This object has been closed. + The parameter was set to on a platform that does not support extended protection. + + + Called by servers to authenticate the client, and optionally the server, in a client-server connection. The authentication process uses the specified extended protection policy. + The that is used for extended protection. + The and on the extended protection policy passed in the parameter are both null. + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + Windows 95 and Windows 98 are not supported. + This object has been closed. + The parameter was set to on a platform that does not support extended protection. + + + Called by servers to authenticate the client, and optionally the server, in a client-server connection as an asynchronous operation. + Returns The task object representing the asynchronous operation. + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + This object has been closed. + Windows 95 and Windows 98 are not supported. + + + Called by servers to authenticate the client, and optionally the server, in a client-server connection as an asynchronous operation. The authentication process uses the specified server credentials and authentication options. + Returns The task object representing the asynchronous operation. + The that is used to establish the identity of the server. + One of the values, indicating the security services for the stream. + One of the values, indicating how the server can use the client's credentials to access resources. + + is null. + + must be , , or , + The authentication failed. You can use this object to try to r-authenticate. + The authentication failed. You can use this object to retry the authentication. + This object has been closed. + Authentication has already occurred.- or -This stream was used previously to attempt authentication as the client. You cannot use the stream to retry authentication as the server. + Windows 95 and Windows 98 are not supported. + + + Called by servers to authenticate the client, and optionally the server, in a client-server connection as an asynchronous operation. The authentication process uses the specified server credentials, authentication options, and extended protection policy. + Returns The task object representing the asynchronous operation. + The that is used to establish the identity of the client. + The that is used for extended protection. + One of the values, indicating the security services for the stream. + One of the values, indicating how the server can use the client's credentials to access resources. + The and on the extended protection policy passed in the parameter are both null. + + is null. + + must be , , or , + The authentication failed. You can use this object to try to r-authenticate. + The authentication failed. You can use this object to retry the authentication. + Authentication has already occurred.- or -This stream was used previously to attempt authentication as the client. You cannot use the stream to retry authentication as the server. + Windows 95 and Windows 98 are not supported. + This object has been closed. + The parameter was set to on a platform that does not support extended protection. + + + Called by servers to authenticate the client, and optionally the server, in a client-server connection as an asynchronous operation. The authentication process uses the specified extended protection policy. + Returns The task object representing the asynchronous operation. + The that is used for extended protection. + The and on the extended protection policy passed in the parameter are both null. + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + Windows 95 and Windows 98 are not supported. + This object has been closed. + The parameter was set to on a platform that does not support extended protection. + + + Called by clients to begin an asynchronous operation to authenticate the client, and optionally the server, in a client-server connection. This method does not block. + An object indicating the status of the asynchronous operation. + An delegate that references the method to invoke when the authentication is complete. + A user-defined object containing information about the operation. This object is passed to the delegate when the operation completes. + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + This object has been closed. + Authentication has already occurred.- or -This stream was used previously to attempt authentication as the server. You cannot use the stream to retry authentication as the client. + + + Called by clients to begin an asynchronous operation to authenticate the client, and optionally the server, in a client-server connection. The authentication process uses the specified credentials and channel binding. This method does not block. + An object indicating the status of the asynchronous operation. + The that is used to establish the identity of the client. + The that is used for extended protection. + The Service Principal Name (SPN) that uniquely identifies the server to authenticate. + An delegate that references the method to invoke when the authentication is complete. + A user-defined object containing information about the write operation. This object is passed to the delegate when the operation completes. + + is null.- or - is null. + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + Authentication has already occurred.- or -This stream was used previously to attempt authentication as the server. You cannot use the stream to retry authentication as the client. + This object has been closed. + + + Called by clients to begin an asynchronous operation to authenticate the client, and optionally the server, in a client-server connection. The authentication process uses the specified credentials, authentication options, and channel binding. This method does not block. + An object indicating the status of the asynchronous operation. + The that is used to establish the identity of the client. + The that is used for extended protection. + The Service Principal Name (SPN) that uniquely identifies the server to authenticate. + One of the values, indicating the security services for the stream. + One of the values, indicating how the server can use the client's credentials to access resources. + An delegate that references the method to invoke when the authentication is complete. + A user-defined object containing information about the write operation. This object is passed to the delegate when the operation completes. + + is null.- or - is null. + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + Authentication has already occurred.- or -This stream was used previously to attempt authentication as the server. You cannot use the stream to retry authentication as the client. + This object has been closed. + + + Called by clients to begin an asynchronous operation to authenticate the client, and optionally the server, in a client-server connection. The authentication process uses the specified credentials. This method does not block. + An object indicating the status of the asynchronous operation. + The that is used to establish the identity of the client. + The Service Principal Name (SPN) that uniquely identifies the server to authenticate. + An delegate that references the method to invoke when the authentication is complete. + A user-defined object containing information about the write operation. This object is passed to the delegate when the operation completes. + + is null.- or - is null. + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + This object has been closed. + Authentication has already occurred.- or -This stream was used previously to attempt authentication as the server. You cannot use the stream to retry authentication as the client. + + + Called by clients to begin an asynchronous operation to authenticate the client, and optionally the server, in a client-server connection. The authentication process uses the specified credentials and authentication options. This method does not block. + An object indicating the status of the asynchronous operation. + The that is used to establish the identity of the client. + The Service Principal Name (SPN) that uniquely identifies the server to authenticate. + One of the values, indicating the security services for the stream. + One of the values, indicating how the server can use the client's credentials to access resources. + An delegate that references the method to invoke when the authentication is complete. + A user-defined object containing information about the write operation. This object is passed to the delegate when the operation completes. + + is null.- or - is null. + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + This object has been closed. + Authentication has already occurred.- or -This stream was used previously to attempt authentication as the server. You cannot use the stream to retry authentication as the client. + + + Called by servers to begin an asynchronous operation to authenticate the client, and optionally the server, in a client-server connection. This method does not block. + An object indicating the status of the asynchronous operation. + An delegate that references the method to invoke when the authentication is complete. + A user-defined object containing information about the operation. This object is passed to the delegate when the operation completes. + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + This object has been closed. + Windows 95 and Windows 98 are not supported. + + + Called by servers to begin an asynchronous operation to authenticate the client, and optionally the server, in a client-server connection. The authentication process uses the specified server credentials and authentication options. This method does not block. + An object indicating the status of the asynchronous operation. + The that is used to establish the identity of the client. + One of the values, indicating the security services for the stream. + One of the values, indicating how the server can use the client's credentials to access resources. + An delegate that references the method to invoke when the authentication is complete. + A user-defined object containing information about the operation. This object is passed to the delegate when the operation completes. + + is null. + + must be , , or , + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + This object has been closed. + Authentication has already occurred.- or -This stream was used previously to attempt authentication as the client. You cannot use the stream to retry authentication as the server. + Windows 95 and Windows 98 are not supported. + + + Called by servers to begin an asynchronous operation to authenticate the client, and optionally the server, in a client-server connection. The authentication process uses the specified server credentials, authentication options, and extended protection policy. This method does not block. + An object indicating the status of the asynchronous operation. + The that is used to establish the identity of the client. + The that is used for extended protection. + One of the values, indicating the security services for the stream. + One of the values, indicating how the server can use the client's credentials to access resources. + An delegate that references the method to invoke when the authentication is complete. + A user-defined object containing information about the write operation. This object is passed to the delegate when the operation completes. + The and on the extended protection policy passed in the parameter are both null. + + is null. + + must be , , or , + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + Authentication has already occurred.- or -This stream was used previously to attempt authentication as the client. You cannot use the stream to retry authentication as the server. + Windows 95 and Windows 98 are not supported. + This object has been closed. + The parameter was set to on a platform that does not support extended protection. + + + Called by servers to begin an asynchronous operation to authenticate the client, and optionally the server, in a client-server connection. The authentication process uses the specified extended protection policy. This method does not block. + An object indicating the status of the asynchronous operation. + The that is used for extended protection. + An delegate that references the method to invoke when the authentication is complete. + A user-defined object containing information about the write operation. This object is passed to the delegate when the operation completes. + The and on the extended protection policy passed in the parameter are both null. + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + Windows 95 and Windows 98 are not supported. + This object has been closed. + The parameter was set to on a platform that does not support extended protection. + + + Begins an asynchronous read operation that reads data from the stream and stores it in the specified array. + An object indicating the status of the asynchronous operation. + A array that receives the bytes read from the stream. + The zero-based location in at which to begin storing the data read from this stream. + The maximum number of bytes to read from the stream. + An delegate that references the method to invoke when the read operation is complete. + A user-defined object containing information about the read operation. This object is passed to the delegate when the operation completes. + + is null. + + is less than 0.- or - is greater than the length of .- or - plus is greater than the length of . + The read operation failed.- or -Encryption is in use, but the data could not be decrypted. + There is already a read operation in progress. + This object has been closed. + Authentication has not occurred. + + + Begins an asynchronous write operation that writes s from the specified buffer to the stream. + An object indicating the status of the asynchronous operation. + A array that supplies the bytes to be written to the stream. + The zero-based location in at which to begin reading bytes to be written to the stream. + An value that specifies the number of bytes to read from . + An delegate that references the method to invoke when the write operation is complete. + A user-defined object containing information about the write operation. This object is passed to the delegate when the operation completes. + + is null. + + .- or - is greater than the length of .- or - plus count is greater than the length of . + The write operation failed.- or -Encryption is in use, but the data could not be encrypted. + There is already a write operation in progress. + This object has been closed. + Authentication has not occurred. + + + Gets a value that indicates whether the underlying stream is readable. + true if authentication has occurred and the underlying stream is readable; otherwise, false. + + + Gets a value that indicates whether the underlying stream is seekable. + This property always returns false. + + + Gets a value that indicates whether the underlying stream supports time-outs. + true if the underlying stream supports time-outs; otherwise, false. + + + Gets a value that indicates whether the underlying stream is writable. + true if authentication has occurred and the underlying stream is writable; otherwise, false. + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Ends a pending asynchronous client authentication operation that was started with a call to . + An instance returned by a call to . + + is null. + + was not created by a call to . + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + There is no pending client authentication to complete. + + + Ends a pending asynchronous client authentication operation that was started with a call to . + An instance returned by a call to . + + is null. + + was not created by a call to . + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + There is no pending authentication to complete. + + + Ends an asynchronous read operation that was started with a call to . + A value that specifies the number of bytes read from the underlying stream. + An instance returned by a call to + + is null. + The asyncResult was not created by a call to . + There is no pending read operation to complete. + The read operation failed. + Authentication has not occurred. + + + Ends an asynchronous write operation that was started with a call to . + An instance returned by a call to + + is null. + The asyncResult was not created by a call to . + There is no pending write operation to complete. + The write operation failed. + Authentication has not occurred. + + + Causes any buffered data to be written to the underlying device. + + + Gets a value that indicates how the server can use the client's credentials. + One of the values. + Authentication failed or has not occurred. + + + Gets a value that indicates whether authentication was successful. + true if successful authentication occurred; otherwise, false. + + + Gets a value that indicates whether this uses data encryption. + true if data is encrypted before being transmitted over the network and decrypted when it reaches the remote endpoint; otherwise, false. + + + Gets a value that indicates whether both the server and the client have been authenticated. + true if the server has been authenticated; otherwise, false. + + + Gets a value that indicates whether the local side of the connection used by this was authenticated as the server. + true if the local endpoint was successfully authenticated as the server side of the authenticated connection; otherwise, false. + + + Gets a value that indicates whether the data sent using this stream is signed. + true if the data is signed before being transmitted; otherwise, false. + + + Gets the length of the underlying stream. + A that specifies the length of the underlying stream. + Getting the value of this property is not supported when the underlying stream is a . + + + Gets or sets the current position in the underlying stream. + A that specifies the current position in the underlying stream. + Setting this property is not supported.- or -Getting the value of this property is not supported when the underlying stream is a . + + + Reads data from this stream and stores it in the specified array. + A value that specifies the number of bytes read from the underlying stream. When there is no more data to be read, returns 0. + A array that receives the bytes read from the stream. + A containing the zero-based location in at which to begin storing the data read from this stream. + A containing the maximum number of bytes to read from the stream. + The read operation failed. + Authentication has not occurred. + A operation is already in progress. + + + Gets or sets the amount of time a read operation blocks waiting for data. + A that specifies the amount of time that will elapse before a read operation fails. + + + Gets information about the identity of the remote party sharing this authenticated stream. + An object that describes the identity of the remote endpoint. + Authentication failed or has not occurred. + + + Throws . + Always throws a . + This value is ignored. + This value is ignored. + Seeking is not supported on . + + + Sets the length of the underlying stream. + An value that specifies the length of the stream. + + + Write the specified number of s to the underlying stream using the specified buffer and offset. + A array that supplies the bytes written to the stream. + An containing the zero-based location in at which to begin reading bytes to be written to the stream. + A containing the number of bytes to read from . + + is null. + + .- or - is greater than the length of .- or - plus count is greater than the length of . + The write operation failed.- or -Encryption is in use, but the data could not be encrypted. + There is already a write operation in progress. + This object has been closed. + Authentication has not occurred. + + + Gets or sets the amount of time a write operation blocks waiting for data. + A that specifies the amount of time that will elapse before a write operation fails. + + + Indicates the security services requested for an authenticated stream. + + + Encrypt and sign data to help ensure the confidentiality and integrity of transmitted data. + + + Authentication only. + + + Sign data to help ensure the integrity of transmitted data. + + + Verifies the remote Secure Sockets Layer (SSL) certificate used for authentication. + A value that determines whether the specified certificate is accepted for authentication. + An object that contains state information for this validation. + The certificate used to authenticate the remote party. + The chain of certificate authorities associated with the remote certificate. + One or more errors associated with the remote certificate. + + + Enumerates Secure Socket Layer (SSL) policy errors. + + + No SSL policy errors. + + + + has returned a non empty array. + + + Certificate name mismatch. + + + Certificate not available. + + + Provides a stream used for client-server communication that uses the Secure Socket Layer (SSL) security protocol to authenticate the server and optionally the client. + + + Initializes a new instance of the class using the specified . + A object used by the for sending and receiving data. + + is not readable.-or- is not writable. + + is null.-or- is equal to . + + + Initializes a new instance of the class using the specified and stream closure behavior. + A object used by the for sending and receiving data. + A Boolean value that indicates the closure behavior of the object used by the for sending and receiving data. This parameter indicates if the inner stream is left open. + + is not readable.-or- is not writable. + + is null.-or- is equal to . + + + Initializes a new instance of the class using the specified , stream closure behavior and certificate validation delegate. + A object used by the for sending and receiving data. + A Boolean value that indicates the closure behavior of the object used by the for sending and receiving data. This parameter indicates if the inner stream is left open. + A delegate responsible for validating the certificate supplied by the remote party. + + is not readable.-or- is not writable. + + is null.-or- is equal to . + + + Initializes a new instance of the class using the specified , stream closure behavior, certificate validation delegate and certificate selection delegate. + A object used by the for sending and receiving data. + A Boolean value that indicates the closure behavior of the object used by the for sending and receiving data. This parameter indicates if the inner stream is left open. + A delegate responsible for validating the certificate supplied by the remote party. + A delegate responsible for selecting the certificate used for authentication. + + is not readable.-or- is not writable. + + is null.-or- is equal to . + + + Initializes a new instance of the class using the specified + A object used by the for sending and receiving data. + A Boolean value that indicates the closure behavior of the object used by the for sending and receiving data. This parameter indicates if the inner stream is left open. + A delegate responsible for validating the certificate supplied by the remote party. + A delegate responsible for selecting the certificate used for authentication. + The to use. + + is not readable.-or- is not writable.-or- is not valid. + + is null.-or- is equal to . + + + Called by clients to authenticate the server and optionally the client in a client-server connection. + The name of the server that shares this . + + is null. + The authentication failed and left this object in an unusable state. + Authentication has already occurred.-or-Server authentication using this was tried previously.-or- Authentication is already in progress. + This object has been closed. + + + Called by clients to authenticate the server and optionally the client in a client-server connection. The authentication process uses the specified certificate collection and SSL protocol. + The name of the server that will share this . + The that contains client certificates. + The value that represents the protocol used for authentication. + A value that specifies whether the certificate revocation list is checked during authentication. + + + Called by clients to authenticate the server and optionally the client in a client-server connection as an asynchronous operation. + Returns The task object representing the asynchronous operation. + The name of the server that shares this . + + is null. + The authentication failed and left this object in an unusable state. + Authentication has already occurred.-or-Server authentication using this was tried previously.-or- Authentication is already in progress. + This object has been closed. + + + Called by clients to authenticate the server and optionally the client in a client-server connection as an asynchronous operation. The authentication process uses the specified certificate collection and SSL protocol. + Returns The task object representing the asynchronous operation. + The name of the server that will share this . + The that contains client certificates. + The value that represents the protocol used for authentication. + A value that specifies whether the certificate revocation list is checked during authentication. + + + Called by servers to authenticate the server and optionally the client in a client-server connection using the specified certificate. + The certificate used to authenticate the server. + + is null. + The authentication failed and left this object in an unusable state. + Authentication has already occurred.-or-Client authentication using this was tried previously.-or- Authentication is already in progress. + This object has been closed. + The method is not supported on Windows 95, Windows 98, or Windows Millennium. + + + Called by servers to authenticate the server and optionally the client in a client-server connection using the specified certificates, requirements and security protocol. + The X509Certificate used to authenticate the server. + A value that specifies whether the client must supply a certificate for authentication. + The value that represents the protocol used for authentication. + A value that specifies whether the certificate revocation list is checked during authentication. + + is null. + + is not a valid value. + The authentication failed and left this object in an unusable state. + Authentication has already occurred.-or-Client authentication using this was tried previously.-or- Authentication is already in progress. + This object has been closed. + The method is not supported on Windows 95, Windows 98, or Windows Millennium. + + + Called by servers to authenticate the server and optionally the client in a client-server connection using the specified certificate as an asynchronous operation. + Returns The task object representing the asynchronous operation. + The certificate used to authenticate the server. + + is null. + The authentication failed and left this object in an unusable state. + Authentication has already occurred.-or-Client authentication using this was tried previously.-or- Authentication is already in progress. + This object has been closed. + The method is not supported on Windows 95, Windows 98, or Windows Millennium. + + + Called by servers to authenticate the server and optionally the client in a client-server connection using the specified certificates, requirements and security protocol as an asynchronous operation. + Returns The task object representing the asynchronous operation. + The X509Certificate used to authenticate the server. + A value that specifies whether the client must supply a certificate for authentication. + The value that represents the protocol used for authentication. + A value that specifies whether the certificate revocation list is checked during authentication. + + + Called by clients to begin an asynchronous operation to authenticate the server and optionally the client. + An object that indicates the status of the asynchronous operation. + The name of the server that shares this . + An delegate that references the method to invoke when the authentication is complete. + A user-defined object that contains information about the operation. This object is passed to the delegate when the operation completes. + + is null. + The authentication failed and left this object in an unusable state. + Authentication has already occurred.-or-Server authentication using this was tried previously.-or- Authentication is already in progress. + This object has been closed. + + + Called by clients to begin an asynchronous operation to authenticate the server and optionally the client using the specified certificates and security protocol. + An object that indicates the status of the asynchronous operation. + The name of the server that shares this . + The containing client certificates. + The value that represents the protocol used for authentication. + A value that specifies whether the certificate revocation list is checked during authentication. + An delegate that references the method to invoke when the authentication is complete. + A user-defined object that contains information about the operation. This object is passed to the delegate when the operation completes. + + is null. + + is not a valid value. + The authentication failed and left this object in an unusable state. + Authentication has already occurred.-or-Server authentication using this was tried previously.-or- Authentication is already in progress. + This object has been closed. + + + Called by servers to begin an asynchronous operation to authenticate the client and optionally the server in a client-server connection. + An object indicating the status of the asynchronous operation. + The X509Certificate used to authenticate the server. + An delegate that references the method to invoke when the authentication is complete. + A user-defined object that contains information about the operation. This object is passed to the delegate when the operation completes. + + is null. + The authentication failed and left this object in an unusable state. + Authentication has already occurred.-or-Client authentication using this was tried previously.-or- Authentication is already in progress. + This object has been closed. + The method is not supported on Windows 95, Windows 98, or Windows Millennium. + + + Called by servers to begin an asynchronous operation to authenticate the server and optionally the client using the specified certificates, requirements and security protocol. + An object that indicates the status of the asynchronous operation. + The X509Certificate used to authenticate the server. + A value that specifies whether the client must supply a certificate for authentication. + The value that represents the protocol used for authentication. + A value that specifies whether the certificate revocation list is checked during authentication. + An delegate that references the method to invoke when the authentication is complete. + A user-defined object that contains information about the operation. This object is passed to the delegate when the operation completes. + + is null. + + is not a valid value. + The authentication failed and left this object in an unusable state. + Authentication has already occurred.-or-Server authentication using this was tried previously.-or- Authentication is already in progress. + This object has been closed. + The method is not supported on Windows 95, Windows 98, or Windows Millennium. + + + Begins an asynchronous read operation that reads data from the stream and stores it in the specified array. + An object that indicates the status of the asynchronous operation. + A array that receives the bytes read from the stream. + The zero-based location in at which to begin storing the data read from this stream. + The maximum number of bytes to read from the stream. + An delegate that references the method to invoke when the read operation is complete. + A user-defined object that contains information about the read operation. This object is passed to the delegate when the operation completes. + + is null. + + + + . > the length of .-or- + count > the length of . + The read operation failed.-or-Encryption is in use, but the data could not be decrypted. + There is already a read operation in progress. + This object has been closed. + Authentication has not occurred. + + + Begins an asynchronous write operation that writes s from the specified buffer to the stream. + An object indicating the status of the asynchronous operation. + A array that supplies the bytes to be written to the stream. + The zero-based location in at which to begin reading bytes to be written to the stream. + An value that specifies the number of bytes to read from . + An delegate that references the method to invoke when the write operation is complete. + A user-defined object that contains information about the write operation. This object is passed to the delegate when the operation completes. + + is null. + + + + . > the length of .-or- + count > the length of . + The write operation failed. + There is already a write operation in progress. + This object has been closed. + Authentication has not occurred. + + + Gets a value that indicates whether the underlying stream is readable. + true if authentication has occurred and the underlying stream is readable; otherwise false. + + + Gets a value that indicates whether the underlying stream is seekable. + This property always returns false. + + + Gets a value that indicates whether the underlying stream supports time-outs. + true if the underlying stream supports time-outs; otherwise, false. + + + Gets a value that indicates whether the underlying stream is writable. + true if authentication has occurred and the underlying stream is writable; otherwise false. + + + Gets a value that indicates whether the certificate revocation list is checked during the certificate validation process. + true if the certificate revocation list is checked; otherwise, false. + + + Gets a value that identifies the bulk encryption algorithm used by this . + A value. + The property was accessed before the completion of the authentication process or the authentication process failed. + + + Gets a value that identifies the strength of the cipher algorithm used by this . + An value that specifies the strength of the algorithm, in bits. + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Ends a pending asynchronous server authentication operation started with a previous call to . + An instance returned by a call to . + + is null. + + was not created by a call to . + The authentication failed and left this object in an unusable state. + There is no pending server authentication to complete. + + + Ends a pending asynchronous client authentication operation started with a previous call to . + An instance returned by a call to . + + is null. + + was not created by a call to . + The authentication failed and left this object in an unusable state. + There is no pending client authentication to complete. + + + Ends an asynchronous read operation started with a previous call to . + A value that specifies the number of bytes read from the underlying stream. + An instance returned by a call to + + is null. + + was not created by a call to . + There is no pending read operation to complete. + The read operation failed. + Authentication has not occurred. + + + Ends an asynchronous write operation started with a previous call to . + An instance returned by a call to + + is null. + + was not created by a call to . + There is no pending write operation to complete. + The write operation failed. + Authentication has not occurred. + + + Causes any buffered data to be written to the underlying device. + + + Gets the algorithm used for generating message authentication codes (MACs). + A value. + The property was accessed before the completion of the authentication process or the authentication process failed. + + + Gets a value that identifies the strength of the hash algorithm used by this instance. + An value that specifies the strength of the algorithm, in bits. Valid values are 128 or 160. + + + Gets a value that indicates whether authentication was successful. + true if successful authentication occurred; otherwise, false. + + + Gets a value that indicates whether this uses data encryption. + true if data is encrypted before being transmitted over the network and decrypted when it reaches the remote endpoint; otherwise false. + + + Gets a value that indicates whether both server and client have been authenticated. + true if the server has been authenticated; otherwise false. + + + Gets a value that indicates whether the local side of the connection used by this was authenticated as the server. + true if the local endpoint was successfully authenticated as the server side of the authenticated connection; otherwise false. + + + Gets a value that indicates whether the data sent using this stream is signed. + true if the data is signed before being transmitted; otherwise false. + + + Gets the key exchange algorithm used by this . + An value. + + + Gets a value that identifies the strength of the key exchange algorithm used by this instance. + An value that specifies the strength of the algorithm, in bits. + + + Gets the length of the underlying stream. + A .The length of the underlying stream. + Getting the value of this property is not supported when the underlying stream is a . + + + Gets the certificate used to authenticate the local endpoint. + An X509Certificate object that represents the certificate supplied for authentication or null if no certificate was supplied. + Authentication failed or has not occurred. + + + Gets or sets the current position in the underlying stream. + A .The current position in the underlying stream. + Setting this property is not supported.-or-Getting the value of this property is not supported when the underlying stream is a . + + + Reads data from this stream and stores it in the specified array. + A value that specifies the number of bytes read. When there is no more data to be read, returns 0. + A array that receives the bytes read from this stream. + A that contains the zero-based location in at which to begin storing the data read from this stream. + A that contains the maximum number of bytes to read from this stream. + + is null. + + + + . > the length of .-or- + count > the length of . + The read operation failed. Check the inner exception, if present to determine the cause of the failure. + There is already a read operation in progress. + This object has been closed. + Authentication has not occurred. + + + Gets or sets the amount of time a read operation blocks waiting for data. + A that specifies the amount of time that elapses before a synchronous read operation fails. + + + Gets the certificate used to authenticate the remote endpoint. + An X509Certificate object that represents the certificate supplied for authentication or null if no certificate was supplied. + Authentication failed or has not occurred. + + + Throws a . + Always throws a . + This value is ignored. + This value is ignored. + Seeking is not supported by objects. + + + Sets the length of the underlying stream. + An value that specifies the length of the stream. + + + Gets a value that indicates the security protocol used to authenticate this connection. + The value that represents the protocol used for authentication. + + + Gets the used for authentication using extended protection. + The object that contains the channel binding token (CBT) used for extended protection. + + + Writes the specified data to this stream. + A array that supplies the bytes written to the stream. + + is null. + The write operation failed. + There is already a write operation in progress. + This object has been closed. + Authentication has not occurred. + + + Write the specified number of s to the underlying stream using the specified buffer and offset. + A array that supplies the bytes written to the stream. + A that contains the zero-based location in at which to begin reading bytes to be written to the stream. + A that contains the number of bytes to read from . + + is null. + + + + . > the length of .-or- + count > the length of . + The write operation failed. + There is already a write operation in progress. + This object has been closed. + Authentication has not occurred. + + + Gets or sets the amount of time a write operation blocks waiting for data. + A that specifies the amount of time that elapses before a synchronous write operation fails. + + + Specifies the addressing scheme that an instance of the class can use. + + + AppleTalk address. + + + Native ATM services address. + + + Banyan address. + + + Addresses for CCITT protocols, such as X.25. + + + Address for MIT CHAOS protocols. + + + Address for Microsoft cluster products. + + + Address for Datakit protocols. + + + Direct data-link interface address. + + + DECnet address. + + + European Computer Manufacturers Association (ECMA) address. + + + FireFox address. + + + NSC Hyperchannel address. + + + IEEE 1284.4 workgroup address. + + + ARPANET IMP address. + + + Address for IP version 4. + + + Address for IP version 6. + + + IPX or SPX address. + + + IrDA address. + + + Address for ISO protocols. + + + LAT address. + + + MAX address. + + + NetBios address. + + + Address for Network Designers OSI gateway-enabled protocols. + + + Address for Xerox NS protocols. + + + Address for OSI protocols. + + + Address for PUP protocols. + + + IBM SNA address. + + + Unix local to host address. + + + Unknown address family. + + + Unspecified address family. + + + VoiceView address. + + + Specifies the IO control codes supported by the method. + + + This value is equal to the Winsock 2 SIO_ABSORB_RTRALERT constant. + + + Join a multicast group using an interface identified by its index. This control code is supported on Windows 2000 and later operating systems. This value is equal to the Winsock 2 SIO_INDEX_ADD_MCAST constant. + + + Enable receiving notification when the list of local interfaces for the socket's protocol family changes. This control code is supported on Windows 2000 and later operating systems. This value is equal to the Winsock 2 SIO_ADDRESS_LIST_CHANGE constant. + + + Return the list of local interfaces that the socket can bind to. This control code is supported on Windows 2000 and later operating systems. This value is equal to the Winsock 2 SIO_ADDRESS_LIST_QUERY constant. + + + Sort the structure returned by the field and add scope ID information for IPv6 addresses. This control code is supported on Windows XP and later operating systems. This value is equal to the Winsock 2 SIO_ADDRESS_LIST_SORT constant. + + + Associate this socket with the specified handle of a companion interface. Refer to the appropriate protocol-specific annex in the Winsock 2 reference or documentation for the particular companion interface for additional details. It is recommended that the Component Object Model (COM) be used instead of this IOCTL to discover and track other interfaces that might be supported by a socket. This control code is present for backward compatibility with systems where COM is not available or cannot be used for some other reason. This value is equal to the Winsock 2 SIO_ASSOCIATE_HANDLE constant. + + + Enable notification for when data is waiting to be received. This value is equal to the Winsock 2 FIOASYNC constant. + + + Bind the socket to a specified interface index. This control code is supported on Windows 2000 and later operating systems. This value is equal to the Winsock 2 SIO_INDEX_BIND constant. + + + Return the number of bytes available for reading. This value is equal to the Winsock 2 FIONREAD constant. + + + Remove the socket from a multicast group. This control code is supported on Windows 2000 and later operating systems. This value is equal to the Winsock 2 SIO_INDEX_ADD_MCAST constant. + + + Replace the oldest queued datagram with an incoming datagram when the incoming message queues are full. This value is equal to the Winsock 2 SIO_ENABLE_CIRCULAR_QUEUEING constant. + + + Discard the contents of the sending queue. This value is equal to the Winsock 2 SIO_FLUSH constant. + + + Return a SOCKADDR structure that contains the broadcast address for the address family of the current socket. The returned address can be used with the method. This value is equal to the Winsock 2 SIO_GET_BROADCAST_ADDRESS constant. This value can be used on User Datagram Protocol (UDP) sockets only. + + + Obtain provider-specific functions that are not part of the Winsock specification. Functions are specified using their provider-assigned GUID. This value is equal to the Winsock 2 SIO_GET_EXTENSION_FUNCTION_POINTER constant. + + + Return the Quality of Service (QOS) attributes for the socket group. This value is reserved for future use, and is equal to the Winsock 2 SIO_GET_GROUP_QOS constant. + + + Retrieve the QOS structure associated with the socket. This control is only supported on platforms that provide a QOS capable transport (Windows Me, Windows 2000, and later.) This value is equal to the Winsock 2 SIO_GET_QOS constant. + + + Control sending TCP keep-alive packets and the interval at which they are sent. This control code is supported on Windows 2000 and later operating systems. For additional information, see RFC 1122 section 4.2.3.6. This value is equal to the Winsock 2 SIO_KEEPALIVE_VALS constant. + + + This value is equal to the Winsock 2 SIO_LIMIT_BROADCASTS constant. + + + Set the interface used for outgoing multicast packets. The interface is identified by its index. This control code is supported on Windows 2000 and later operating systems. This value is equal to the Winsock 2 SIO_INDEX_MCASTIF constant. + + + Control the number of times a multicast packet can be forwarded by a router, also known as the Time to Live (TTL), or hop count. This value is equal to the Winsock 2 SIO_MULTICAST_SCOPE constant. + + + Control whether multicast data sent by the socket appears as incoming data in the sockets receive queue. This value is equal to the Winsock 2 SIO_MULTIPOINT_LOOPBACK constant. + + + Control whether the socket receives notification when a namespace query becomes invalid. This control code is supported on Windows XP and later operating systems. This value is equal to the Winsock 2 SIO_NSP_NOTIFY_CHANGE constant. + + + Control the blocking behavior of the socket. If the argument specified with this control code is zero, the socket is placed in blocking mode. If the argument is nonzero, the socket is placed in nonblocking mode. This value is equal to the Winsock 2 FIONBIO constant. + + + Return information about out-of-band data waiting to be received. When using this control code on stream sockets, the return value indicates the number of bytes available. + + + Retrieve the underlying provider's SOCKET handle. This handle can be used to receive plug-and-play event notification. This control code is supported on Windows 2000 and later operating systems. This value is equal to the Winsock 2 SIO_QUERY_TARGET_PNP_HANDLE constant. + + + Enable receiving all IPv4 packets on the network. The socket must have address family , the socket type must be , and the protocol type must be . The current user must belong to the Administrators group on the local computer, and the socket must be bound to a specific port. This control code is supported on Windows 2000 and later operating systems. This value is equal to the Winsock 2 SIO_RCVALL constant. + + + Enable receiving all Internet Group Management Protocol (IGMP) packets on the network. The socket must have address family , the socket type must be , and the protocol type must be . The current user must belong to the Administrators group on the local computer, and the socket must be bound to a specific port. This control code is supported on Windows 2000 and later operating systems. This value is equal to the Winsock 2 SIO_RCVALL_IGMPMCAST constant. + + + Enable receiving all multicast IPv4 packets on the network. These are packets with destination addresses in the range 224.0.0.0 through 239.255.255.255. The socket must have address family , the socket type must be , and the protocol type must be . The current user must belong to the Administrators group on the local computer, and the socket must be bound to a specific port. This control code is supported on Windows 2000 and later operating systems. This value is equal to the Winsock 2 SIO_RCVALL_MCAST constant. + + + Enable receiving notification when the local interface used to access a remote endpoint changes. This value is equal to the Winsock 2 SIO_ROUTING_INTERFACE_CHANGE constant. + + + Return the interface addresses that can be used to connect to the specified remote address. This value is equal to the Winsock 2 SIO_ROUTING_INTERFACE_QUERY constant. + + + Set the Quality of Service (QOS) attributes for the socket group. This value is reserved for future use and is equal to the Winsock 2 SIO_SET_GROUP_QOS constant. + + + Set the Quality of Service (QOS) attributes for the socket. QOS defines the bandwidth requirements for the socket. This control code is supported on Windows Me, Windows 2000, and later operating systems. This value is equal to the Winsock 2 SIO_SET_QOS constant. + + + Return a handle for the socket that is valid in the context of a companion interface. This value is equal to the Winsock 2 SIO_TRANSLATE_HANDLE constant. + + + Set the interface used for outgoing unicast packets. This value is equal to the Winsock 2 SIO_UCAST_IF constant. + + + Presents the packet information from a call to or . + + + Gets the origin information of the packet that was received as a result of calling the method or method. + An that indicates the origin information of the packet that was received as a result of calling the method or method. For packets that were sent from a unicast address, the property will return the of the sender; for multicast or broadcast packets, the property will return the multicast or broadcast . + + + Returns a value that indicates whether this instance is equal to a specified object. + true if is an instance of and equals the value of the instance; otherwise, false. + The object to compare with this instance. + + + Returns the hash code for this instance. + An Int32 hash code. + + + Gets the network interface information that is associated with a call to or . + An value, which represents the index of the network interface. You can use this index with to get more information about the relevant interface. + + + Tests whether two specified instances are equivalent. + true if and are equal; otherwise, false. + The instance that is to the left of the equality operator. + The instance that is to the right of the equality operator. + + + Tests whether two specified instances are not equal. + true if and are unequal; otherwise, false. + The instance that is to the left of the inequality operator. + The instance that is to the right of the inequality operator. + + + A value that enables restriction of an IPv6 socket to a specified scope, such as addresses with the same link local or site local prefix. + + + The IP protection level is edge restricted. This value would be used by applications designed to operate across the Internet. This setting does not allow Network Address Translation (NAT) traversal using the Windows Teredo implementation. These applications may bypass IPv4 firewalls, so applications must be hardened against Internet attacks directed at the opened port. On Windows Server 2003 and Windows XP, the default value for the IP Protection level on a socket is edge restricted. + + + The IP protection level is restricted. This value would be used by intranet applications that do not implement Internet scenarios. These applications are generally not tested or hardened against Internet-style attacks. This setting will limit the received traffic to link-local only. + + + The IP protection level is unrestricted. This value would be used by applications designed to operate across the Internet, including applications taking advantage of IPv6 NAT traversal capabilities built into Windows (Teredo, for example). These applications may bypass IPv4 firewalls, so applications must be hardened against Internet attacks directed at the opened port. On Windows Server 2008 R2 and Windows Vista, the default value for the IP Protection level on a socket is unrestricted. + + + The IP protection level is unspecified. On Windows 7 and Windows Server 2008 R2, the default value for the IP Protection level on a socket is unspecified. + + + Contains option values for joining an IPv6 multicast group. + + + Initializes a new version of the class for the specified IP multicast group. + The of the multicast group. + + is null. + + + Initializes a new instance of the class with the specified IP multicast group and the local interface address. + The group . + The local interface address. + + is less than 0.-or- is greater than 0x00000000FFFFFFFF. + + is null. + + + Gets or sets the IP address of a multicast group. + An that contains the Internet address of a multicast group. + + is null. + + + Gets or sets the interface index that is associated with a multicast group. + A value that specifies the address of the interface. + The value that is specified for a set operation is less than 0 or greater than 0x00000000FFFFFFFF. + + + Specifies whether a will remain connected after a call to the or methods and the length of time it will remain connected, if data remains to be sent. + + + Initializes a new instance of the class. + true to remain connected after the method is called; otherwise, false. + The number of seconds to remain connected after the method is called. + + + Gets or sets a value that indicates whether to linger after the is closed. + true if the should linger after is called; otherwise, false. + + + Gets or sets the amount of time to remain connected after calling the method if data remains to be sent. + The amount of time, in seconds, to remain connected after calling . + + + Contains values used to join and drop multicast groups. + + + Initializes a new version of the class for the specified IP multicast group. + The of the multicast group. + + is null. + + + Initializes a new instance of the class with the specified IP multicast group address and interface index. + The of the multicast group. + The index of the interface that is used to send and receive multicast packets. + + + Initializes a new instance of the class with the specified IP multicast group address and local IP address associated with a network interface. + The group . + The local . + + is null.-or- is null. + + + Gets or sets the IP address of a multicast group. + An that contains the Internet address of a multicast group. + + + Gets or sets the index of the interface that is used to send and receive multicast packets. + An integer that represents the index of a array element. + + + Gets or sets the local address associated with a multicast group. + An that contains the local address associated with a multicast group. + + + Provides the underlying stream of data for network access. + + + Creates a new instance of the class for the specified . + The that the will use to send and receive data. + The parameter is null. + The parameter is not connected.-or- The property of the parameter is not .-or- The parameter is in a nonblocking state. + + + Initializes a new instance of the class for the specified with the specified ownership. + The that the will use to send and receive data. + Set to true to indicate that the will take ownership of the ; otherwise, false. + The parameter is null. + The parameter is not connected.-or- the value of the property of the parameter is not .-or- the parameter is in a nonblocking state. + + + Creates a new instance of the class for the specified with the specified access rights. + The that the will use to send and receive data. + A bitwise combination of the values that specify the type of access given to the over the provided . + The parameter is null. + The parameter is not connected.-or- the property of the parameter is not .-or- the parameter is in a nonblocking state. + + + Creates a new instance of the class for the specified with the specified access rights and the specified ownership. + The that the will use to send and receive data. + A bitwise combination of the values that specifies the type of access given to the over the provided . + Set to true to indicate that the will take ownership of the ; otherwise, false. + The parameter is null. + The parameter is not connected.-or- The property of the parameter is not .-or- The parameter is in a nonblocking state. + + + Begins an asynchronous read from the . + An that represents the asynchronous call. + An array of type that is the location in memory to store data read from the . + The location in to begin storing the data. + The number of bytes to read from the . + The delegate that is executed when completes. + An object that contains any additional user-defined data. + The parameter is null. + The parameter is less than 0.-or- The parameter is greater than the length of the paramater.-or- The is less than 0.-or- The is greater than the length of minus the value of the parameter. + The underlying is closed.-or- There was a failure while reading from the network. -or-An error occurred when accessing the socket. See the Remarks section for more information. + The is closed. + + + + + + + + Begins an asynchronous write to a stream. + An that represents the asynchronous call. + An array of type that contains the data to write to the . + The location in to begin sending the data. + The number of bytes to write to the . + The delegate that is executed when completes. + An object that contains any additional user-defined data. + The parameter is null. + The parameter is less than 0.-or- The parameter is greater than the length of .-or- The parameter is less than 0.-or- The parameter is greater than the length of minus the value of the parameter. + The underlying is closed.-or- There was a failure while writing to the network. -or-An error occurred when accessing the socket. See the Remarks section for more information. + The is closed. + + + + + + + + Gets a value that indicates whether the supports reading. + true if data can be read from the stream; otherwise, false. The default value is true. + + + Gets a value that indicates whether the stream supports seeking. This property is not currently supported.This property always returns false. + false in all cases to indicate that cannot seek a specific location in the stream. + + + Indicates whether timeout properties are usable for . + true in all cases. + + + Gets a value that indicates whether the supports writing. + true if data can be written to the ; otherwise, false. The default value is true. + + + Closes the after waiting the specified time to allow data to be sent. + A 32-bit signed integer that specifies the number of milliseconds to wait to send any remaining data before closing. + The parameter is less than -1. + + + Gets a value that indicates whether data is available on the to be read. + true if data is available on the stream to be read; otherwise, false. + The is closed. + The underlying is closed. + Use the property to obtain the specific error code, and refer to the Windows Sockets version 2 API error code documentation in MSDN for a detailed description of the error. + + + + + + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Handles the end of an asynchronous read. + The number of bytes read from the . + An that represents an asynchronous call. + The parameter is null. + The underlying is closed.-or- An error occurred when accessing the socket. See the Remarks section for more information. + The is closed. + + + + + + + + + Handles the end of an asynchronous write. + The that represents the asynchronous call. + The parameter is null. + The underlying is closed.-or- An error occurred while writing to the network. -or-An error occurred when accessing the socket. See the Remarks section for more information. + The is closed. + + + + + + + + + Releases all resources used by the . + + + Flushes data from the stream. This method is reserved for future use. + + + Flushes data from the stream as an asynchronous operation. + Returns .The task object representing the asynchronous operation. + A cancellation token used to propagate notification that this operation should be canceled. + + + Gets the length of the data available on the stream. This property is not currently supported and always throws a . + The length of the data available on the stream. + Any use of this property. + + + + + + Gets or sets the current position in the stream. This property is not currently supported and always throws a . + The current position in the stream. + Any use of this property. + + + + + + Reads data from the . + The number of bytes read from the . + An array of type that is the location in memory to store data read from the . + The location in to begin storing the data to. + The number of bytes to read from the . + The parameter is null. + The parameter is less than 0.-or- The parameter is greater than the length of .-or- The parameter is less than 0.-or- The parameter is greater than the length of minus the value of the parameter. -or-An error occurred when accessing the socket. See the Remarks section for more information. + The underlying is closed. + The is closed.-or- There is a failure reading from the network. + + + + + + + + + Gets or sets a value that indicates whether the can be read. + true to indicate that the can be read; otherwise, false. The default value is true. + + + Gets or sets the amount of time that a read operation blocks waiting for data. + A that specifies the amount of time, in milliseconds, that will elapse before a read operation fails. The default value, , specifies that the read operation does not time out. + The value specified is less than or equal to zero and is not . + + + + + + + + Sets the current position of the stream to the given value. This method is not currently supported and always throws a . + The position in the stream. + This parameter is not used. + This parameter is not used. + Any use of this property. + + + Sets the length of the stream. This method always throws a . + This parameter is not used. + Any use of this property. + + + Gets the underlying . + A that represents the underlying network connection. + + + Writes data to the . + An array of type that contains the data to write to the . + The location in from which to start writing data. + The number of bytes to write to the . + The parameter is null. + The parameter is less than 0.-or- The parameter is greater than the length of .-or- The parameter is less than 0.-or- The parameter is greater than the length of minus the value of the parameter. + There was a failure while writing to the network. -or-An error occurred when accessing the socket. See the Remarks section for more information. + The is closed.-or- There was a failure reading from the network. + + + + + + + + + Gets a value that indicates whether the is writable. + true if data can be written to the stream; otherwise, false. The default value is true. + + + Gets or sets the amount of time that a write operation blocks waiting for data. + A that specifies the amount of time, in milliseconds, that will elapse before a write operation fails. The default value, , specifies that the write operation does not time out. + The value specified is less than or equal to zero and is not . + + + + + + + + Specifies the type of protocol that an instance of the class can use. + + + AppleTalk protocol. + + + Native ATM services protocol. + + + Banyan protocol. + + + CCITT protocol, such as X.25. + + + MIT CHAOS protocol. + + + Microsoft Cluster products protocol. + + + DataKit protocol. + + + Direct data link protocol. + + + DECNet protocol. + + + European Computer Manufacturers Association (ECMA) protocol. + + + FireFox protocol. + + + NSC HyperChannel protocol. + + + IEEE 1284.4 workgroup protocol. + + + ARPANET IMP protocol. + + + IP version 4 protocol. + + + IP version 6 protocol. + + + IPX or SPX protocol. + + + IrDA protocol. + + + ISO protocol. + + + LAT protocol. + + + MAX protocol. + + + NetBIOS protocol. + + + Network Designers OSI gateway enabled protocol. + + + Xerox NS protocol. + + + OSI protocol. + + + PUP protocol. + + + IBM SNA protocol. + + + Unix local to host protocol. + + + Unknown protocol. + + + Unspecified protocol. + + + VoiceView protocol. + + + Specifies the protocols that the class supports. + + + Gateway To Gateway Protocol. + + + Internet Control Message Protocol. + + + Internet Control Message Protocol for IPv6. + + + Internet Datagram Protocol. + + + Internet Group Management Protocol. + + + Internet Protocol. + + + IPv6 Authentication header. For details, see RFC 2292 section 2.2.1, available at http://www.ietf.org. + + + IPv6 Encapsulating Security Payload header. + + + Internet Protocol version 4. + + + Internet Protocol version 6 (IPv6). + + + IPv6 Destination Options header. + + + IPv6 Fragment header. + + + IPv6 Hop by Hop Options header. + + + IPv6 No next header. + + + IPv6 Routing header. + + + Internet Packet Exchange Protocol. + + + Net Disk Protocol (unofficial). + + + PARC Universal Packet Protocol. + + + Raw IP packet protocol. + + + Sequenced Packet Exchange protocol. + + + Sequenced Packet Exchange version 2 protocol. + + + Transmission Control Protocol. + + + User Datagram Protocol. + + + Unknown protocol. + + + Unspecified protocol. + + + Defines the polling modes for the method. + + + Error status mode. + + + Read status mode. + + + Write status mode. + + + Represents an element in a array. + + + Initializes a new instance of the class using the specified buffer. + A byte array of data to send using the method. + The parameter cannot be null + + + Initializes a new instance of the class using the specified buffer, buffer offset, and count. + A byte array of data to send using the method. + The offset, in bytes, from the beginning of the to the location in the to start sending the data specified in the parameter. + The number of bytes to send starting from the parameter. If is zero, no bytes are sent. + The parameter cannot be null + The and parameters must be greater than or equal to zero. The and must be less than the size of the buffer + + + Initializes a new instance of the class using the specified buffer, buffer offset, and count with an option to combine this element with the next element in a single send request from the sockets layer to the transport. + A byte array of data to send using the method. + The offset, in bytes, from the beginning of the to the location in the to start sending the data specified in the parameter. + The number bytes to send starting from the parameter. If is zero, no bytes are sent. + A Boolean value that specifies that this element should not be combined with the next element in a single send request from the sockets layer to the transport. This flag is used for granular control of the content of each message on a datagram or message-oriented socket. + The parameter cannot be null + The and parameters must be greater than or equal to zero. The and must be less than the size of the buffer + + + Initializes a new instance of the class using the specified file. + The filename of the file to be transmitted using the method. + The parameter cannot be null + + + Initializes a new instance of the class using the specified filename path, offset, and count. + The filename of the file to be transmitted using the method. + The offset, in bytes, from the beginning of the file to the location in the file to start sending the file specified in the parameter. + The number of bytes to send starting from the parameter. If is zero, the entire file is sent. + The parameter cannot be null + The and parameters must be greater than or equal to zero. The and must be less than the size of the file indicated by the parameter. + + + Initializes a new instance of the class using the specified filename path, buffer offset, and count with an option to combine this element with the next element in a single send request from the sockets layer to the transport. + The filename of the file to be transmitted using the method. + The offset, in bytes, from the beginning of the file to the location in the file to start sending the file specified in the parameter. + The number of bytes to send starting from the parameter. If is zero, the entire file is sent. + A Boolean value that specifies that this element should not be combined with the next element in a single send request from the sockets layer to the transport. This flag is used for granular control of the content of each message on a datagram or message-oriented socket. + The parameter cannot be null + The and parameters must be greater than or equal to zero. The and must be less than the size of the file indicated by the parameter. + + + Gets the buffer to be sent if the class was initialized with a parameter. + The byte buffer to send if the class was initialized with a parameter. + + + Gets the count of bytes to be sent. + The count of bytes to send if the class was initialized with a parameter. + + + Gets a Boolean value that indicates if this element should not be combined with the next element in a single send request from the sockets layer to the transport. + A Boolean value that indicates if this element should not be combined with the next element in a single send request. + + + Gets the filename of the file to send if the class was initialized with a parameter. + The filename of the file to send if the class was initialized with a parameter. + + + Gets the offset, in bytes, from the beginning of the data buffer or file to the location in the buffer or file to start sending the data. + The offset, in bytes, from the beginning of the data buffer or file to the location in the buffer or file to start sending the data. + + + Implements the Berkeley sockets interface. + + + Initializes a new instance of the class using the specified address family, socket type and protocol. + One of the values. + One of the values. + One of the values. + The combination of , , and results in an invalid socket. + + + Initializes a new instance of the class using the specified value returned from . + The socket information returned by . + + + Initializes a new instance of the class using the specified socket type and protocol. + One of the values. + One of the values. + The combination of and results in an invalid socket. + + + Creates a new for a newly created connection. + A for a newly created connection. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + The accepting socket is not listening for connections. You must call and before calling . + + + + + + + + + Begins an asynchronous operation to accept an incoming connection attempt. + Returns true if the I/O operation is pending. The event on the parameter will be raised upon completion of the operation.Returns false if the I/O operation completed synchronously. The event on the parameter will not be raised and the object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation. + The object to use for this asynchronous socket operation. + An argument is not valid. This exception occurs if the buffer provided is not large enough. The buffer must be at least 2 * (sizeof(SOCKADDR_STORAGE + 16) bytes. This exception also occurs if multiple buffers are specified, the property is not null. + An argument is out of range. The exception occurs if the is less than 0. + An invalid operation was requested. This exception occurs if the accepting is not listening for connections or the accepted socket is bound. You must call the and method before calling the method.This exception also occurs if the socket is already connected or a socket operation was already in progress using the specified parameter. + An error occurred when attempting to access the socket. See the Remarks section for more information. + Windows XP or later is required for this method. + The has been closed. + + + Gets the address family of the . + One of the values. + + + Gets the amount of data that has been received from the network and is available to be read. + The number of bytes of data received from the network and available to be read. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + + + + + + Begins an asynchronous operation to accept an incoming connection attempt. + An that references the asynchronous creation. + The delegate. + An object that contains state information for this request. + The object has been closed. + Windows NT is required for this method. + The accepting socket is not listening for connections. You must call and before calling .-or- The accepted socket is bound. + + is less than 0. + An error occurred when attempting to access the socket. See the Remarks section for more information. + + + + + + + + Begins an asynchronous operation to accept an incoming connection attempt and receives the first block of data sent by the client application. + An that references the asynchronous creation. + The number of bytes to accept from the sender. + The delegate. + An object that contains state information for this request. + The object has been closed. + Windows NT is required for this method. + The accepting socket is not listening for connections. You must call and before calling .-or- The accepted socket is bound. + + is less than 0. + An error occurred when attempting to access the socket. See the Remarks section for more information. + + + + + + + + Begins an asynchronous operation to accept an incoming connection attempt from a specified socket and receives the first block of data sent by the client application. + An object that references the asynchronous object creation. + The accepted object. This value may be null. + The maximum number of bytes to receive. + The delegate. + An object that contains state information for this request. + The object has been closed. + Windows NT is required for this method. + The accepting socket is not listening for connections. You must call and before calling .-or- The accepted socket is bound. + + is less than 0. + An error occurred when attempting to access the socket. See the Remarks section for more information. + + + + + + + + Begins an asynchronous request for a remote host connection. + An that references the asynchronous connection. + An that represents the remote host. + The delegate. + An object that contains state information for this request. + + is null. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + A caller higher in the call stack does not have permission for the requested operation. + The is ing. + + + + + + + + + + Begins an asynchronous request for a remote host connection. The host is specified by an and a port number. + An that references the asynchronous connection. + The of the remote host. + The port number of the remote host. + An delegate that references the method to invoke when the connect operation is complete. + A user-defined object that contains information about the connect operation. This object is passed to the delegate when the operation is complete. + + is null. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + The is not in the socket family. + The port number is not valid. + The length of is zero. + The is ing. + + + + + + + + + + Begins an asynchronous request for a remote host connection. The host is specified by an array and a port number. + An that references the asynchronous connections. + At least one , designating the remote host. + The port number of the remote host. + An delegate that references the method to invoke when the connect operation is complete. + A user-defined object that contains information about the connect operation. This object is passed to the delegate when the operation is complete. + + is null. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + This method is valid for sockets that use or . + The port number is not valid. + The length of is zero. + The is ing. + + + + + + + + + + Begins an asynchronous request for a remote host connection. The host is specified by a host name and a port number. + An that references the asynchronous connection. + The name of the remote host. + The port number of the remote host. + An delegate that references the method to invoke when the connect operation is complete. + A user-defined object that contains information about the connect operation. This object is passed to the delegate when the operation is complete. + + is null. + The has been closed. + This method is valid for sockets in the or families. + The port number is not valid. + The is ing. + + + + + + + + + + Begins an asynchronous request to disconnect from a remote endpoint. + An object that references the asynchronous operation. + true if this socket can be reused after the connection is closed; otherwise, false. + The delegate. + An object that contains state information for this request. + The operating system is Windows 2000 or earlier, and this method requires Windows XP. + The object has been closed. + An error occurred when attempting to access the socket. See the Remarks section for more information. + + + + + + + Begins to asynchronously receive data from a connected . + An that references the asynchronous read. + An array of type that is the storage location for the received data. + The zero-based position in the parameter at which to store the received data. + The number of bytes to receive. + A bitwise combination of the values. + An delegate that references the method to invoke when the operation is complete. + A user-defined object that contains information about the receive operation. This object is passed to the delegate when the operation is complete. + + is null. + An error occurred when attempting to access the socket. See the Remarks section for more information. + + has been closed. + + is less than 0.-or- is greater than the length of .-or- is less than 0.-or- is greater than the length of minus the value of the parameter. + + + + + + + + Begins to asynchronously receive data from a connected . + An that references the asynchronous read. + An array of type that is the storage location for the received data. + The location in to store the received data. + The number of bytes to receive. + A bitwise combination of the values. + A object that stores the socket error. + An delegate that references the method to invoke when the operation is complete. + A user-defined object that contains information about the receive operation. This object is passed to the delegate when the operation is complete. + + is null. + An error occurred when attempting to access the socket. See the Remarks section for more information. + + has been closed. + + is less than 0.-or- is greater than the length of .-or- is less than 0.-or- is greater than the length of minus the value of the parameter. + + + Begins to asynchronously receive data from a connected . + An that references the asynchronous read. + An array of type that is the storage location for the received data. + A bitwise combination of the values. + An delegate that references the method to invoke when the operation is complete. + A user-defined object that contains information about the receive operation. This object is passed to the delegate when the operation is complete. + + is null. + An error occurred when attempting to access the socket. See the Remarks section for more information. + + has been closed. + + + Begins to asynchronously receive data from a connected . + An that references the asynchronous read. + An array of type that is the storage location for the received data. + A bitwise combination of the values. + A object that stores the socket error. + An delegate that references the method to invoke when the operation is complete. + A user-defined object that contains information about the receive operation. This object is passed to the delegate when the operation is complete. + + is null. + An error occurred when attempting to access the socket. See the Remarks section for more information. + + has been closed. + + + Begins to asynchronously receive data from a specified network device. + An that references the asynchronous read. + An array of type that is the storage location for the received data. + The zero-based position in the parameter at which to store the data. + The number of bytes to receive. + A bitwise combination of the values. + An that represents the source of the data. + The delegate. + An object that contains state information for this request. + + is null.-or- is null. + An error occurred when attempting to access the socket. See the Remarks section for more information. + + is less than 0.-or- is greater than the length of .-or- is less than 0.-or- is greater than the length of minus the value of the parameter. + The has been closed. + A caller higher in the call stack does not have permission for the requested operation. + + + + + + + + + Begins to asynchronously receive the specified number of bytes of data into the specified location of the data buffer, using the specified , and stores the endpoint and packet information.. + An that references the asynchronous read. + An array of type that is the storage location for the received data. + The zero-based position in the parameter at which to store the data. + The number of bytes to receive. + A bitwise combination of the values. + An that represents the source of the data. + The delegate. + An object that contains state information for this request. + + is null.-or- is null. + An error occurred when attempting to access the socket. See the Remarks section for more information. + + is less than 0.-or- is greater than the length of .-or- is less than 0.-or- is greater than the length of minus the value of the parameter. + The has been closed. + The operating system is Windows 2000 or earlier, and this method requires Windows XP. + + + Sends data asynchronously to a connected . + An that references the asynchronous send. + An array of type that contains the data to send. + The zero-based position in the parameter at which to begin sending data. + The number of bytes to send. + A bitwise combination of the values. + The delegate. + An object that contains state information for this request. + + is null. + An error occurred when attempting to access the socket. See remarks section below. + + is less than 0.-or- is less than the length of .-or- is less than 0.-or- is greater than the length of minus the value of the parameter. + The has been closed. + + + + + + + + Sends data asynchronously to a connected . + An that references the asynchronous send. + An array of type that contains the data to send. + The zero-based position in the parameter at which to begin sending data. + The number of bytes to send. + A bitwise combination of the values. + A object that stores the socket error. + The delegate. + An object that contains state information for this request. + + is null. + An error occurred when attempting to access the socket. See remarks section below. + + is less than 0.-or- is less than the length of .-or- is less than 0.-or- is greater than the length of minus the value of the parameter. + The has been closed. + + + Sends data asynchronously to a connected . + An that references the asynchronous send. + An array of type that contains the data to send. + A bitwise combination of the values. + The delegate. + An object that contains state information for this request. + + is null. + + is empty. + An error occurred when attempting to access the socket. See remarks section below. + The has been closed. + + + Sends data asynchronously to a connected . + An that references the asynchronous send. + An array of type that contains the data to send. + A bitwise combination of the values. + A object that stores the socket error. + The delegate. + An object that contains state information for this request. + + is null. + + is empty. + An error occurred when attempting to access the socket. See remarks section below. + The has been closed. + + + Sends the file to a connected object using the flag. + An object that represents the asynchronous send. + A string that contains the path and name of the file to send. This parameter can be null. + The delegate. + An object that contains state information for this request. + The object has been closed. + The socket is not connected to a remote host. + The file was not found. + An error occurred when attempting to access the socket. See remarks section below. + + + + + + + Sends a file and buffers of data asynchronously to a connected object. + An object that represents the asynchronous operation. + A string that contains the path and name of the file to be sent. This parameter can be null. + A array that contains data to be sent before the file is sent. This parameter can be null. + A array that contains data to be sent after the file is sent. This parameter can be null. + A bitwise combination of values. + An delegate to be invoked when this operation completes. This parameter can be null. + A user-defined object that contains state information for this request. This parameter can be null. + The object has been closed. + An error occurred when attempting to access the socket. See remarks section below. + The operating system is not Windows NT or later.- or - The socket is not connected to a remote host. + The file was not found. + + + Sends data asynchronously to a specific remote host. + An that references the asynchronous send. + An array of type that contains the data to send. + The zero-based position in at which to begin sending data. + The number of bytes to send. + A bitwise combination of the values. + An that represents the remote device. + The delegate. + An object that contains state information for this request. + + is null.-or- is null. + An error occurred when attempting to access the socket. See the Remarks section for more information. + + is less than 0.-or- is greater than the length of .-or- is less than 0.-or- is greater than the length of minus the value of the parameter. + The has been closed. + A caller higher in the call stack does not have permission for the requested operation. + + + + + + + + + Associates a with a local endpoint. + The local to associate with the . + + is null. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + A caller higher in the call stack does not have permission for the requested operation. + + + + + + + + + Gets or sets a value that indicates whether the is in blocking mode. + true if the will block; otherwise, false. The default is true. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + + + + + + Cancels an asynchronous request for a remote host connection. + The object used to request the connection to the remote host by calling one of the methods. + The parameter cannot be null and the cannot be null. + An error occurred when attempting to access the socket. + The has been closed. + A caller higher in the call stack does not have permission for the requested operation. + + + Closes the connection and releases all associated resources. + + + + + + + + Closes the connection and releases all associated resources with a specified timeout to allow queued data to be sent. + Wait up to seconds to send any remaining data, then close the socket. + + + + + + + + Establishes a connection to a remote host. + An that represents the remote device. + + is null. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + A caller higher in the call stack does not have permission for the requested operation. + The is ing. + + + + + + + + + + Establishes a connection to a remote host. The host is specified by an IP address and a port number. + The IP address of the remote host. + The port number of the remote host. + + is null. + The port number is not valid. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + This method is valid for sockets in the or families. + The length of is zero. + The is ing. + + + + + + + + + + Establishes a connection to a remote host. The host is specified by an array of IP addresses and a port number. + The IP addresses of the remote host. + The port number of the remote host. + + is null. + The port number is not valid. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + This method is valid for sockets in the or families. + The length of is zero. + The is ing. + + + + + + + + + + Establishes a connection to a remote host. The host is specified by a host name and a port number. + The name of the remote host. + The port number of the remote host. + + is null. + The port number is not valid. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + This method is valid for sockets in the or families. + The is ing. + + + + + + + + + + Begins an asynchronous request for a connection to a remote host. + Returns true if the I/O operation is pending. The event on the parameter will be raised upon completion of the operation. Returns false if the I/O operation completed synchronously. In this case, The event on the parameter will not be raised and the object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation. + The object to use for this asynchronous socket operation. + An argument is not valid. This exception occurs if multiple buffers are specified, the property is not null. + The parameter cannot be null and the cannot be null. + The is listening or a socket operation was already in progress using the object specified in the parameter. + An error occurred when attempting to access the socket. See the Remarks section for more information. + Windows XP or later is required for this method. This exception also occurs if the local endpoint and the are not the same address family. + The has been closed. + A caller higher in the call stack does not have permission for the requested operation. + + + Begins an asynchronous request for a connection to a remote host. + Returns true if the I/O operation is pending. The event on the parameter will be raised upon completion of the operation. Returns false if the I/O operation completed synchronously. In this case, The event on the parameter will not be raised and the object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation. + One of the values. + One of the values. + The object to use for this asynchronous socket operation. + An argument is not valid. This exception occurs if multiple buffers are specified, the property is not null. + The parameter cannot be null and the cannot be null. + The is listening or a socket operation was already in progress using the object specified in the parameter. + An error occurred when attempting to access the socket. See the Remarks section for more information. + Windows XP or later is required for this method. This exception also occurs if the local endpoint and the are not the same address family. + The has been closed. + A caller higher in the call stack does not have permission for the requested operation. + + + Gets a value that indicates whether a is connected to a remote host as of the last or operation. + true if the was connected to a remote resource as of the most recent operation; otherwise, false. + + + Closes the socket connection and allows reuse of the socket. + true if this socket can be reused after the current connection is closed; otherwise, false. + This method requires Windows 2000 or earlier, or the exception will be thrown. + The object has been closed. + An error occurred when attempting to access the socket. See the Remarks section for more information. + + + + + + + Begins an asynchronous request to disconnect from a remote endpoint. + Returns true if the I/O operation is pending. The event on the parameter will be raised upon completion of the operation. Returns false if the I/O operation completed synchronously. In this case, The event on the parameter will not be raised and the object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation. + The object to use for this asynchronous socket operation. + The parameter cannot be null. + A socket operation was already in progress using the object specified in the parameter. + Windows XP or later is required for this method. + The has been closed. + An error occurred when attempting to access the socket. + + + Releases all resources used by the current instance of the class. + + + Releases the unmanaged resources used by the , and optionally disposes of the managed resources. + true to release both managed and unmanaged resources; false to releases only unmanaged resources. + + + Gets or sets a value that specifies whether the allows Internet Protocol (IP) datagrams to be fragmented. + true if the allows datagram fragmentation; otherwise, false. The default is true. + This property can be set only for sockets in the or families. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + + + + + + Gets or sets a value that specifies whether the is a dual-mode socket used for both IPv4 and IPv6. + Returns .true if the is a dual-mode socket; otherwise, false. The default is false. + + + Duplicates the socket reference for the target process, and closes the socket for this process. + The socket reference to be passed to the target process. + The ID of the target process where a duplicate of the socket reference is created. + + is not a valid process id.-or- Duplication of the socket reference failed. + + + Gets or sets a value that specifies whether the can send or receive broadcast packets. + true if the allows broadcast packets; otherwise, false. The default is false. + This option is valid for a datagram socket only. + The has been closed. + + + + + + + + Asynchronously accepts an incoming connection attempt and creates a new object to handle remote host communication. This method returns a buffer that contains the initial data transferred. + A object to handle communication with the remote host. + An array of type that contains the bytes transferred. + An object that stores state information for this asynchronous operation as well as any user defined data. + Windows NT is required for this method. + The object has been closed. + + is empty. + + was not created by a call to . + + method was previously called. + An error occurred when attempting to access the See the Remarks section for more information. + + + + + + + + + Asynchronously accepts an incoming connection attempt and creates a new object to handle remote host communication. This method returns a buffer that contains the initial data and the number of bytes transferred. + A object to handle communication with the remote host. + An array of type that contains the bytes transferred. + The number of bytes transferred. + An object that stores state information for this asynchronous operation as well as any user defined data. + Windows NT is required for this method. + The object has been closed. + + is empty. + + was not created by a call to . + + method was previously called. + An error occurred when attempting to access the . See the Remarks section for more information. + + + + + + + + + Asynchronously accepts an incoming connection attempt and creates a new to handle remote host communication. + A to handle communication with the remote host. + An that stores state information for this asynchronous operation as well as any user defined data. + + is null. + + was not created by a call to . + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + + method was previously called. + Windows NT is required for this method. + + + + + + + + + Ends a pending asynchronous connection request. + An that stores state information and any user defined data for this asynchronous operation. + + is null. + + was not returned by a call to the method. + + was previously called for the asynchronous connection. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + + + + + + Ends a pending asynchronous disconnect request. + An object that stores state information and any user-defined data for this asynchronous operation. + The operating system is Windows 2000 or earlier, and this method requires Windows XP. + The object has been closed. + + is null. + + was not returned by a call to the method. + + was previously called for the asynchronous connection. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The disconnect request has timed out. + + + + + + + + Ends a pending asynchronous read. + The number of bytes received. + An that stores state information and any user defined data for this asynchronous operation. + + is null. + + was not returned by a call to the method. + + was previously called for the asynchronous read. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + + + + + + + Ends a pending asynchronous read. + The number of bytes received. + An that stores state information and any user defined data for this asynchronous operation. + A object that stores the socket error. + + is null. + + was not returned by a call to the method. + + was previously called for the asynchronous read. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + Ends a pending asynchronous read from a specific endpoint. + If successful, the number of bytes received. If unsuccessful, returns 0. + An that stores state information and any user defined data for this asynchronous operation. + The source . + + is null. + + was not returned by a call to the method. + + was previously called for the asynchronous read. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + + + + + + + Ends a pending asynchronous read from a specific endpoint. This method also reveals more information about the packet than . + If successful, the number of bytes received. If unsuccessful, returns 0. + An that stores state information and any user defined data for this asynchronous operation. + A bitwise combination of the values for the received packet. + The source . + The and interface of the received packet. + + is null-or- is null. + + was not returned by a call to the method. + + was previously called for the asynchronous read. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + Ends a pending asynchronous send. + If successful, the number of bytes sent to the ; otherwise, an invalid error. + An that stores state information for this asynchronous operation. + + is null. + + was not returned by a call to the method. + + was previously called for the asynchronous send. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + + + + + + + Ends a pending asynchronous send. + If successful, the number of bytes sent to the ; otherwise, an invalid error. + An that stores state information for this asynchronous operation. + A object that stores the socket error. + + is null. + + was not returned by a call to the method. + + was previously called for the asynchronous send. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + Ends a pending asynchronous send of a file. + An object that stores state information for this asynchronous operation. + Windows NT is required for this method. + The object has been closed. + + is empty. + + was not returned by a call to the method. + + was previously called for the asynchronous . + An error occurred when attempting to access the socket. See remarks section below. + + + + + + + + Ends a pending asynchronous send to a specific location. + If successful, the number of bytes sent; otherwise, an invalid error. + An that stores state information and any user defined data for this asynchronous operation. + + is null. + + was not returned by a call to the method. + + was previously called for the asynchronous send. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + + + + + + + Gets or sets a value that specifies whether the allows only one process to bind to a port. + true if the allows only one socket to bind to a specific port; otherwise, false. The default is true for Windows Server 2003 and Windows XP Service Pack 2, and false for all other versions. + An error occurred when attempting to access the socket. + The has been closed. + + has been called for this . + + + + + + + + Frees resources used by the class. + + + Returns the value of a specified option, represented as an object. + An object that represents the value of the option. When the parameter is set to the return value is an instance of the class. When is set to or , the return value is an instance of the class. When is any other value, the return value is an integer. + One of the values. + One of the values. + An error occurred when attempting to access the socket. See the Remarks section for more information.-or- was set to the unsupported value . + The has been closed. + + + + + + + + Returns the specified option setting, represented as a byte array. + One of the values. + One of the values. + An array of type that is to receive the option setting. + An error occurred when attempting to access the socket. See the Remarks section for more information. - or -In .NET Compact Framework applications, the Windows CE default buffer space is set to 32768 bytes. You can change the per socket buffer space by calling . + The has been closed. + + + + + + + + Returns the value of the specified option in an array. + An array of type that contains the value of the socket option. + One of the values. + One of the values. + The length, in bytes, of the expected return value. + An error occurred when attempting to access the socket. See the Remarks section for more information. - or -In .NET Compact Framework applications, the Windows CE default buffer space is set to 32768 bytes. You can change the per socket buffer space by calling . + The has been closed. + + + + + + + + Gets the operating system handle for the . + An that represents the operating system handle for the . + + + + + + Sets low-level operating modes for the using numerical control codes. + The number of bytes in the parameter. + An value that specifies the control code of the operation to perform. + A array that contains the input data required by the operation. + A array that contains the output data returned by the operation. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + An attempt was made to change the blocking mode without using the property. + A caller in the call stack does not have the required permissions. + + + + + + + + Sets low-level operating modes for the using the enumeration to specify control codes. + The number of bytes in the parameter. + A value that specifies the control code of the operation to perform. + An array of type that contains the input data required by the operation. + An array of type that contains the output data returned by the operation. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + An attempt was made to change the blocking mode without using the property. + + + + + + + + Gets a value that indicates whether the is bound to a specific local port. + true if the is bound to a local port; otherwise, false. + + + Gets or sets a value that specifies whether the will delay closing a socket in an attempt to send all pending data. + A that specifies how to linger while closing a socket. + An error occurred when attempting to access the socket. + The has been closed. + + + + + + + + Places a in a listening state. + The maximum length of the pending connections queue. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + + + + + + Gets the local endpoint. + The that the is using for communications. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + + + + + + Gets or sets a value that specifies whether outgoing multicast packets are delivered to the sending application. + true if the receives outgoing multicast packets; otherwise, false. + An error occurred when attempting to access the socket. + The has been closed. + + + + + + + + Gets or sets a value that specifies whether the stream is using the Nagle algorithm. + false if the uses the Nagle algorithm; otherwise, true. The default is false. + An error occurred when attempting to access the . See the Remarks section for more information. + The has been closed. + + + + + + + + Indicates whether the underlying operating system and network adaptors support Internet Protocol version 4 (IPv4). + true if the operating system and network adaptors support the IPv4 protocol; otherwise, false. + + + Indicates whether the underlying operating system and network adaptors support Internet Protocol version 6 (IPv6). + true if the operating system and network adaptors support the IPv6 protocol; otherwise, false. + + + Determines the status of the . + The status of the based on the polling mode value passed in the parameter.Mode Return Value true if has been called and a connection is pending; -or- true if data is available for reading; -or- true if the connection has been closed, reset, or terminated; otherwise, returns false. true, if processing a , and the connection has succeeded; -or- true if data can be sent; otherwise, returns false. true if processing a that does not block, and the connection has failed; -or- true if is not set and out-of-band data is available; otherwise, returns false. + The time to wait for a response, in microseconds. + One of the values. + The parameter is not one of the values. + An error occurred when attempting to access the socket. See remarks below. + The has been closed. + + + + + + + + Gets the protocol type of the . + One of the values. + + + Receives data from a bound into a receive buffer. + The number of bytes received. + An array of type that is the storage location for the received data. + + is null. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + A caller in the call stack does not have the required permissions. + + + + + + + + + Receives the specified number of bytes from a bound into the specified offset position of the receive buffer, using the specified . + The number of bytes received. + An array of type that is the storage location for received data. + The location in to store the received data. + The number of bytes to receive. + A bitwise combination of the values. + + is null. + + is less than 0.-or- is greater than the length of .-or- is less than 0.-or- is greater than the length of minus the value of the parameter. + + is not a valid combination of values.-or- The property was not set.-or- An operating system error occurs while accessing the . + The has been closed. + A caller in the call stack does not have the required permissions. + + + + + + + + + Receives data from a bound into a receive buffer, using the specified . + The number of bytes received. + An array of type that is the storage location for the received data. + The position in the parameter to store the received data. + The number of bytes to receive. + A bitwise combination of the values. + A object that stores the socket error. + + is null. + + is less than 0.-or- is greater than the length of .-or- is less than 0.-or- is greater than the length of minus the value of the parameter. + + is not a valid combination of values.-or- The property is not set.-or- An operating system error occurs while accessing the . + The has been closed. + A caller in the call stack does not have the required permissions. + + + Receives the specified number of bytes of data from a bound into a receive buffer, using the specified . + The number of bytes received. + An array of type that is the storage location for the received data. + The number of bytes to receive. + A bitwise combination of the values. + + is null. + + exceeds the size of . + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + A caller in the call stack does not have the required permissions. + + + + + + + + + Receives data from a bound into a receive buffer, using the specified . + The number of bytes received. + An array of type that is the storage location for the received data. + A bitwise combination of the values. + + is null. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + A caller in the call stack does not have the required permissions. + + + + + + + + + Receives data from a bound into the list of receive buffers. + The number of bytes received. + A list of s of type that contains the received data. + The parameter is null. + An error occurred while attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + Receives data from a bound into the list of receive buffers, using the specified . + The number of bytes received. + A list of s of type that contains the received data. + A bitwise combination of the values. + + is null.-or-.Count is zero. + An error occurred while attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + Receives data from a bound into the list of receive buffers, using the specified . + The number of bytes received. + A list of s of type that contains the received data. + A bitwise combination of the values. + A object that stores the socket error. + + is null.-or-.Count is zero. + An error occurred while attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + Begins an asynchronous request to receive data from a connected object. + Returns true if the I/O operation is pending. The event on the parameter will be raised upon completion of the operation. Returns false if the I/O operation completed synchronously. In this case, The event on the parameter will not be raised and the object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation. + The object to use for this asynchronous socket operation. + An argument was invalid. The or properties on the parameter must reference valid buffers. One or the other of these properties may be set, but not both at the same time. + A socket operation was already in progress using the object specified in the parameter. + Windows XP or later is required for this method. + The has been closed. + An error occurred when attempting to access the socket. See the Remarks section for more information. + + + Gets or sets a value that specifies the size of the receive buffer of the . + An that contains the size, in bytes, of the receive buffer. The default is 8192. + An error occurred when attempting to access the socket. + The has been closed. + The value specified for a set operation is less than 0. + + + + + + + + Receives the specified number of bytes of data into the specified location of the data buffer, using the specified , and stores the endpoint. + The number of bytes received. + An array of type that is the storage location for received data. + The position in the parameter to store the received data. + The number of bytes to receive. + A bitwise combination of the values. + An , passed by reference, that represents the remote server. + + is null.-or- is null. + + is less than 0.-or- is greater than the length of .-or- is less than 0.-or- is greater than the length of the minus the value of the offset parameter. + + is not a valid combination of values.-or- The property was not set.-or- An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + + + + + + + + Receives the specified number of bytes into the data buffer, using the specified , and stores the endpoint. + The number of bytes received. + An array of type that is the storage location for received data. + The number of bytes to receive. + A bitwise combination of the values. + An , passed by reference, that represents the remote server. + + is null.-or- is null. + + is less than 0.-or- is greater than the length of . + + is not a valid combination of values.-or- The property was not set.-or- An operating system error occurs while accessing the . + The has been closed. + A caller in the call stack does not have the required permissions. + + + + + + + + + + Receives a datagram into the data buffer and stores the endpoint. + The number of bytes received. + An array of type that is the storage location for received data. + An , passed by reference, that represents the remote server. + + is null.-or- is null. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + A caller in the call stack does not have the required permissions. + + + + + + + + + + Receives a datagram into the data buffer, using the specified , and stores the endpoint. + The number of bytes received. + An array of type that is the storage location for the received data. + A bitwise combination of the values. + An , passed by reference, that represents the remote server. + + is null.-or- is null. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + A caller in the call stack does not have the required permissions. + + + + + + + + + + Begins to asynchronously receive data from a specified network device. + Returns true if the I/O operation is pending. The event on the parameter will be raised upon completion of the operation. Returns false if the I/O operation completed synchronously. In this case, The event on the parameter will not be raised and the object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation. + The object to use for this asynchronous socket operation. + The cannot be null. + A socket operation was already in progress using the object specified in the parameter. + Windows XP or later is required for this method. + The has been closed. + An error occurred when attempting to access the socket. + + + Receives the specified number of bytes of data into the specified location of the data buffer, using the specified , and stores the endpoint and packet information. + The number of bytes received. + An array of type that is the storage location for received data. + The position in the parameter to store the received data. + The number of bytes to receive. + A bitwise combination of the values. + An , passed by reference, that represents the remote server. + An holding address and interface information. + + is null.- or- is null. + + is less than 0.-or- is greater than the length of .-or- is less than 0.-or- is greater than the length of the minus the value of the offset parameter. + + is not a valid combination of values.-or- The property was not set.-or- The .NET Framework is running on an AMD 64-bit processor.-or- An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + The operating system is Windows 2000 or earlier, and this method requires Windows XP. + + + Begins to asynchronously receive the specified number of bytes of data into the specified location in the data buffer, using the specified , and stores the endpoint and packet information. + Returns true if the I/O operation is pending. The event on the parameter will be raised upon completion of the operation. Returns false if the I/O operation completed synchronously. In this case, The event on the parameter will not be raised and the object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation. + The object to use for this asynchronous socket operation. + The cannot be null. + Windows XP or later is required for this method. + The has been closed. + An error occurred when attempting to access the socket. + + + Gets or sets a value that specifies the amount of time after which a synchronous call will time out. + The time-out value, in milliseconds. The default value is 0, which indicates an infinite time-out period. Specifying -1 also indicates an infinite time-out period. + An error occurred when attempting to access the socket. + The has been closed. + The value specified for a set operation is less than -1. + + + + + + + + Gets the remote endpoint. + The with which the is communicating. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + + + + + + Determines the status of one or more sockets. + An of instances to check for readability. + An of instances to check for writability. + An of instances to check for errors. + The time-out value, in microseconds. A -1 value indicates an infinite time-out. + The parameter is null or empty.-and- The parameter is null or empty -and- The parameter is null or empty. + An error occurred when attempting to access the socket. See the Remarks section for more information. + + + Sends data to a connected . + The number of bytes sent to the . + An array of type that contains the data to be sent. + + is null. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + + + + + + + Sends the specified number of bytes of data to a connected , starting at the specified offset, and using the specified . + The number of bytes sent to the . + An array of type that contains the data to be sent. + The position in the data buffer at which to begin sending data. + The number of bytes to send. + A bitwise combination of the values. + + is null. + + is less than 0.-or- is greater than the length of .-or- is less than 0.-or- is greater than the length of minus the value of the parameter. + + is not a valid combination of values.-or- An operating system error occurs while accessing the . See the Remarks section for more information. + The has been closed. + + + + + + + + + Sends the specified number of bytes of data to a connected , starting at the specified offset, and using the specified + The number of bytes sent to the . + An array of type that contains the data to be sent. + The position in the data buffer at which to begin sending data. + The number of bytes to send. + A bitwise combination of the values. + A object that stores the socket error. + + is null. + + is less than 0.-or- is greater than the length of .-or- is less than 0.-or- is greater than the length of minus the value of the parameter. + + is not a valid combination of values.-or- An operating system error occurs while accessing the . See the Remarks section for more information. + The has been closed. + + + Sends the specified number of bytes of data to a connected , using the specified . + The number of bytes sent to the . + An array of type that contains the data to be sent. + The number of bytes to send. + A bitwise combination of the values. + + is null. + + is less than 0 or exceeds the size of the buffer. + + is not a valid combination of values.-or- An operating system error occurs while accessing the socket. See the Remarks section for more information. + The has been closed. + + + + + + + + + Sends data to a connected using the specified . + The number of bytes sent to the . + An array of type that contains the data to be sent. + A bitwise combination of the values. + + is null. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + + + + + + + Sends the set of buffers in the list to a connected . + The number of bytes sent to the . + A list of s of type that contains the data to be sent. + + is null. + + is empty. + An error occurred when attempting to access the socket. See remarks section below. + The has been closed. + + + Sends the set of buffers in the list to a connected , using the specified . + The number of bytes sent to the . + A list of s of type that contains the data to be sent. + A bitwise combination of the values. + + is null. + + is empty. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + Sends the set of buffers in the list to a connected , using the specified . + The number of bytes sent to the . + A list of s of type that contains the data to be sent. + A bitwise combination of the values. + A object that stores the socket error. + + is null. + + is empty. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + Sends data asynchronously to a connected object. + Returns true if the I/O operation is pending. The event on the parameter will be raised upon completion of the operation. Returns false if the I/O operation completed synchronously. In this case, The event on the parameter will not be raised and the object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation. + The object to use for this asynchronous socket operation. + The or properties on the parameter must reference valid buffers. One or the other of these properties may be set, but not both at the same time. + A socket operation was already in progress using the object specified in the parameter. + Windows XP or later is required for this method. + The has been closed. + The is not yet connected or was not obtained via an , ,or , method. + + + Gets or sets a value that specifies the size of the send buffer of the . + An that contains the size, in bytes, of the send buffer. The default is 8192. + An error occurred when attempting to access the socket. + The has been closed. + The value specified for a set operation is less than 0. + + + + + + + + Sends the file to a connected object with the transmit flag. + A that contains the path and name of the file to be sent. This parameter can be null. + The socket is not connected to a remote host. + The object has been closed. + The object is not in blocking mode and cannot accept this synchronous call. + The file was not found. + An error occurred when attempting to access the socket. See the Remarks section for more information. + + + + + + + Sends the file and buffers of data to a connected object using the specified value. + A that contains the path and name of the file to be sent. This parameter can be null. + A array that contains data to be sent before the file is sent. This parameter can be null. + A array that contains data to be sent after the file is sent. This parameter can be null. + One or more of values. + The operating system is not Windows NT or later.- or - The socket is not connected to a remote host. + The object has been closed. + The object is not in blocking mode and cannot accept this synchronous call. + The file was not found. + An error occurred when attempting to access the socket. See the Remarks section for more information. + + + Sends a collection of files or in memory data buffers asynchronously to a connected object. + Returns true if the I/O operation is pending. The event on the parameter will be raised upon completion of the operation. Returns false if the I/O operation completed synchronously. In this case, The event on the parameter will not be raised and the object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation. + The object to use for this asynchronous socket operation. + The file specified in the property was not found. + A socket operation was already in progress using the object specified in the parameter. + Windows XP or later is required for this method. This exception also occurs if the is not connected to a remote host. + The has been closed. + A connectionless is being used and the file being sent exceeds the maximum packet size of the underlying transport. + + + Gets or sets a value that specifies the amount of time after which a synchronous call will time out. + The time-out value, in milliseconds. If you set the property with a value between 1 and 499, the value will be changed to 500. The default value is 0, which indicates an infinite time-out period. Specifying -1 also indicates an infinite time-out period. + An error occurred when attempting to access the socket. + The has been closed. + The value specified for a set operation is less than -1. + + + + + + + + Sends the specified number of bytes of data to the specified endpoint, starting at the specified location in the buffer, and using the specified . + The number of bytes sent. + An array of type that contains the data to be sent. + The position in the data buffer at which to begin sending data. + The number of bytes to send. + A bitwise combination of the values. + The that represents the destination location for the data. + + is null.-or- is null. + + is less than 0.-or- is greater than the length of .-or- is less than 0.-or- is greater than the length of minus the value of the parameter. + + is not a valid combination of values.-or- An operating system error occurs while accessing the . See the Remarks section for more information. + The has been closed. + A caller in the call stack does not have the required permissions. + + + + + + + + + + Sends the specified number of bytes of data to the specified endpoint using the specified . + The number of bytes sent. + An array of type that contains the data to be sent. + The number of bytes to send. + A bitwise combination of the values. + The that represents the destination location for the data. + + is null.-or- is null. + The specified exceeds the size of . + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + + + + + + + + Sends data to the specified endpoint. + The number of bytes sent. + An array of type that contains the data to be sent. + The that represents the destination for the data. + + is null.-or- is null. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + + + + + + + + Sends data to a specific endpoint using the specified . + The number of bytes sent. + An array of type that contains the data to be sent. + A bitwise combination of the values. + The that represents the destination location for the data. + + is null.-or- is null. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + + + + + + + + Sends data asynchronously to a specific remote host. + Returns true if the I/O operation is pending. The event on the parameter will be raised upon completion of the operation. Returns false if the I/O operation completed synchronously. In this case, The event on the parameter will not be raised and the object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation. + The object to use for this asynchronous socket operation. + The cannot be null. + A socket operation was already in progress using the object specified in the parameter. + Windows XP or later is required for this method. + The has been closed. + The protocol specified is connection-oriented, but the is not yet connected. + + + Set the IP protection level on a socket. + The IP protection level to set on this socket. + The parameter cannot be . The IP protection level cannot be set to unspecified. + The of the socket must be either or . + + + Sets the specified option to the specified value. + One of the values. + One of the values. + The value of the option, represented as a . + The object has been closed. + An error occurred when attempting to access the socket. See the Remarks section for more information. + + + + + + + + Sets the specified option to the specified value, represented as a byte array. + One of the values. + One of the values. + An array of type that represents the value of the option. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + + + + + + Sets the specified option to the specified integer value. + One of the values. + One of the values. + A value of the option. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + + + + + + Sets the specified option to the specified value, represented as an object. + One of the values. + One of the values. + A or that contains the value of the option. + + is null. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + + + + + + Disables sends and receives on a . + One of the values that specifies the operation that will no longer be allowed. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + + + + + + Gets the type of the . + One of the values. + + + Gets a value indicating whether IPv4 support is available and enabled on the current host. + true if the current host supports the IPv4 protocol; otherwise, false. + + + Gets a value that indicates whether the Framework supports IPv6 for certain obsolete members. + true if the Framework supports IPv6 for certain obsolete methods; otherwise, false. + + + Gets or sets a value that specifies the Time To Live (TTL) value of Internet Protocol (IP) packets sent by the . + The TTL value. + The TTL value can't be set to a negative number. + This property can be set only for sockets in the or families. + An error occurred when attempting to access the socket. This error is also returned when an attempt was made to set TTL to a value higher than 255. + The has been closed. + + + + + + + + Specifies whether the socket should only use Overlapped I/O mode. + true if the uses only overlapped I/O; otherwise, false. The default is false. + The socket has been bound to a completion port. + + + Represents an asynchronous socket operation. + + + Creates an empty instance. + The platform is not supported. + + + Gets or sets the socket to use or the socket created for accepting a connection with an asynchronous socket method. + The to use or the socket created for accepting a connection with an asynchronous socket method. + + + Gets the data buffer to use with an asynchronous socket method. + A array that represents the data buffer to use with an asynchronous socket method. + + + Gets or sets an array of data buffers to use with an asynchronous socket method. + An that represents an array of data buffers to use with an asynchronous socket method. + There are ambiguous buffers specified on a set operation. This exception occurs if the property has been set to a non-null value and an attempt was made to set the property to a non-null value. + + + Gets the number of bytes transferred in the socket operation. + An that contains the number of bytes transferred in the socket operation. + + + The event used to complete an asynchronous operation. + + + Gets the exception in the case of a connection failure when a was used. + An that indicates the cause of the connection error when a was specified for the property. + + + The created and connected object after successful completion of the method. + The connected object. + + + Gets the maximum amount of data, in bytes, to send or receive in an asynchronous operation. + An that contains the maximum amount of data, in bytes, to send or receive. + + + Gets or sets a value that specifies if socket can be reused after a disconnect operation. + A that specifies if socket can be reused after a disconnect operation. + + + Releases the unmanaged resources used by the instance and optionally disposes of the managed resources. + + + Frees resources used by the class. + + + Gets the type of socket operation most recently performed with this context object. + A instance that indicates the type of socket operation most recently performed with this context object. + + + Gets the offset, in bytes, into the data buffer referenced by the property. + An that contains the offset, in bytes, into the data buffer referenced by the property. + + + Represents a method that is called when an asynchronous operation completes. + The event that is signaled. + + + Gets the IP address and interface of a received packet. + An instance that contains the destination IP address and interface of a received packet. + + + Gets or sets the remote IP endpoint for an asynchronous operation. + An that represents the remote IP endpoint for an asynchronous operation. + + + Gets or sets an array of buffers to be sent for an asynchronous operation used by the method. + An array of objects that represent an array of buffers to be sent. + + + Gets or sets a bitwise combination of values for an asynchronous operation used by the method. + A that contains a bitwise combination of values that are used with an asynchronous operation. + + + Gets or sets the size, in bytes, of the data block used in the send operation. + An that contains the size, in bytes, of the data block used in the send operation. + + + Sets the data buffer to use with an asynchronous socket method. + The data buffer to use with an asynchronous socket method. + The offset, in bytes, in the data buffer where the operation starts. + The maximum amount of data, in bytes, to send or receive in the buffer. + There are ambiguous buffers specified. This exception occurs if the property is also not null and the property is also not null. + An argument was out of range. This exception occurs if the parameter is less than zero or greater than the length of the array in the property. This exception also occurs if the parameter is less than zero or greater than the length of the array in the property minus the parameter. + + + Sets the data buffer to use with an asynchronous socket method. + The offset, in bytes, in the data buffer where the operation starts. + The maximum amount of data, in bytes, to send or receive in the buffer. + An argument was out of range. This exception occurs if the parameter is less than zero or greater than the length of the array in the property. This exception also occurs if the parameter is less than zero or greater than the length of the array in the property minus the parameter. + + + Gets or sets the protocol to use to download the socket client access policy file. + Returns .The protocol to use to download the socket client access policy file. + + + Gets or sets the result of the asynchronous socket operation. + A that represents the result of the asynchronous socket operation. + + + Gets the results of an asynchronous socket operation or sets the behavior of an asynchronous operation. + A that represents the results of an asynchronous socket operation. + + + Gets or sets a user or application object associated with this asynchronous socket operation. + An object that represents the user or application object associated with this asynchronous socket operation. + + + The type of asynchronous socket operation most recently performed with this context object. + + + A socket Accept operation. + + + A socket Connect operation. + + + A socket Disconnect operation. + + + None of the socket operations. + + + A socket Receive operation. + + + A socket ReceiveFrom operation. + + + A socket ReceiveMessageFrom operation. + + + A socket Send operation. + + + A socket SendPackets operation. + + + A socket SendTo operation. + + + Specifies the method to download the policy file that an instance of the class will use. + + + The class will attempt to download the socket policy file using HTTP protocol running on TCP port 943. + + + The class will attempt to download the socket policy file using custom TCP protocol running on TCP port 943. + + + Defines error codes for the class. + + + An attempt was made to access a in a way that is forbidden by its access permissions. + + + Only one use of an address is normally permitted. + + + The address family specified is not supported. This error is returned if the IPv6 address family was specified and the IPv6 stack is not installed on the local machine. This error is returned if the IPv4 address family was specified and the IPv4 stack is not installed on the local machine. + + + The selected IP address is not valid in this context. + + + The nonblocking already has an operation in progress. + + + The connection was aborted by the .NET Framework or the underlying socket provider. + + + The remote host is actively refusing a connection. + + + The connection was reset by the remote peer. + + + A required address was omitted from an operation on a . + + + A graceful shutdown is in progress. + + + An invalid pointer address was detected by the underlying socket provider. + + + The operation failed because the remote host is down. + + + No such host is known. The name is not an official host name or alias. + + + There is no network route to the specified host. + + + A blocking operation is in progress. + + + A blocking call was canceled. + + + An invalid argument was supplied to a member. + + + The application has initiated an overlapped operation that cannot be completed immediately. + + + The is already connected. + + + The datagram is too long. + + + The network is not available. + + + The application tried to set on a connection that has already timed out. + + + No route to the remote host exists. + + + No free buffer space is available for a operation. + + + The requested name or IP address was not found on the name server. + + + The error is unrecoverable or the requested database cannot be located. + + + The application tried to send or receive data, and the is not connected. + + + The underlying socket provider has not been initialized. + + + A operation was attempted on a non-socket. + + + The overlapped operation was aborted due to the closure of the . + + + The address family is not supported by the protocol family. + + + Too many processes are using the underlying socket provider. + + + The protocol family is not implemented or has not been configured. + + + The protocol is not implemented or has not been configured. + + + An unknown, invalid, or unsupported option or level was used with a . + + + The protocol type is incorrect for this . + + + A request to send or receive data was disallowed because the has already been closed. + + + An unspecified error has occurred. + + + The support for the specified socket type does not exist in this address family. + + + The operation succeeded. + + + The network subsystem is unavailable. + + + The connection attempt timed out, or the connected host has failed to respond. + + + There are too many open sockets in the underlying socket provider. + + + The name of the host could not be resolved. Try again later. + + + The specified class was not found. + + + The version of the underlying socket provider is out of range. + + + An operation on a nonblocking socket cannot be completed immediately. + + + The exception that is thrown when a socket error occurs. + + + Initializes a new instance of the class with the last operating system error code. + + + Initializes a new instance of the class with the specified error code. + The error code that indicates the error that occurred. + + + Initializes a new instance of the class from the specified instances of the and classes. + A instance that contains the information that is required to serialize the new instance. + A that contains the source of the serialized stream that is associated with the new instance. + + + Gets the error code that is associated with this exception. + An integer error code that is associated with this exception. + + + Gets the error message that is associated with this exception. + A string that contains the error message. + + + Gets the error code that is associated with this exception. + An integer error code that is associated with this exception. + + + Specifies socket send and receive behaviors. + + + Indicates a broadcast packet. + + + Indicates that the control data did not fit into an internal 64-KB buffer and was truncated. + + + Send without using routing tables. + + + Provides a standard value for the number of WSABUF structures that are used to send and receive data. This value is not used or supported on .NET Framework 4.5. + + + Indicates a multicast packet. + + + Use no flags for this call. + + + Process out-of-band data. + + + Partial send or receive for message. + + + Peek at the incoming message. + + + The message was too large to fit into the specified buffer and was truncated. + + + Encapsulates the information that is necessary to duplicate a . + + + Gets or sets the options for a . + A instance. + + + Gets or sets the protocol information for a . + An array of type . + + + Describes states for a . + + + The is connected. + + + The is listening for new connections. + + + The is nonblocking. + + + The uses overlapped I/O. + + + Defines socket option levels for the and methods. + + + + options apply only to IP sockets. + + + + options apply only to IPv6 sockets. + + + + options apply to all sockets. + + + + options apply only to TCP sockets. + + + + options apply only to UDP sockets. + + + Defines configuration option names. + + + The socket is listening. + + + Add an IP group membership. + + + Join a source group. + + + Block data from a source. + + + Permit sending broadcast messages on the socket. + + + Use urgent data as defined in RFC-1222. This option can be set only once; after it is set, it cannot be turned off. + + + Set or get the UDP checksum coverage. + + + Record debugging information. + + + Do not fragment IP datagrams. + + + Close the socket gracefully without lingering. + + + Do not route; send the packet directly to the interface addresses. + + + Drop an IP group membership. + + + Drop a source group. + + + Get the error status and clear. + + + Enables a socket to be bound for exclusive access. + + + Use expedited data as defined in RFC-1222. This option can be set only once; after it is set, it cannot be turned off. + + + Indicates that the application provides the IP header for outgoing datagrams. + + + Specifies the maximum number of router hops for an Internet Protocol version 6 (IPv6) packet. This is similar to Time to Live (TTL) for Internet Protocol version 4. + + + Specifies the IP options to be inserted into outgoing datagrams. + + + Enables restriction of a IPv6 socket to a specified scope, such as addresses with the same link local or site local prefix.This socket option enables applications to place access restrictions on IPv6 sockets. Such restrictions enable an application running on a private LAN to simply and robustly harden itself against external attacks. This socket option widens or narrows the scope of a listening socket, enabling unrestricted access from public and private users when appropriate, or restricting access only to the same site, as required. This socket option has defined protection levels specified in the enumeration. + + + Set the IP header Time-to-Live field. + + + Indicates if a socket created for the AF_INET6 address family is restricted to IPv6 communications only. Sockets created for the AF_INET6 address family may be used for both IPv6 and IPv4 communications. Some applications may want to restrict their use of a socket created for the AF_INET6 address family to IPv6 communications only. When this value is non-zero (the default on Windows), a socket created for the AF_INET6 address family can be used to send and receive IPv6 packets only. When this value is zero, a socket created for the AF_INET6 address family can be used to send and receive packets to and from an IPv6 address or an IPv4 address. Note that the ability to interact with an IPv4 address requires the use of IPv4 mapped addresses. This socket option is supported on Windows Vista or later. + + + Use keep-alives. + + + Linger on close if unsent data is present. + + + Not supported; will throw a if used. + + + Set the interface for outgoing multicast packets. + + + An IP multicast loopback. + + + An IP multicast Time to Live. + + + Send UDP datagrams with checksum set to zero. + + + Disables the Nagle algorithm for send coalescing. + + + Receives out-of-band data in the normal data stream. + + + Return information about received packets. + + + Specifies the total per-socket buffer space reserved for receives. This is unrelated to the maximum message size or the size of a TCP window. + + + Specifies the low water mark for operations. + + + Receive a time-out. This option applies only to synchronous methods; it has no effect on asynchronous methods such as the method. + + + Allows the socket to be bound to an address that is already in use. + + + Specifies the total per-socket buffer space reserved for sends. This is unrelated to the maximum message size or the size of a TCP window. + + + Specifies the low water mark for operations. + + + Send a time-out. This option applies only to synchronous methods; it has no effect on asynchronous methods such as the method. + + + Get the socket type. + + + Change the IP header type of the service field. + + + Unblock a previously blocked source. + + + Updates an accepted socket's properties by using those of an existing socket. This is equivalent to using the Winsock2 SO_UPDATE_ACCEPT_CONTEXT socket option and is supported only on connection-oriented sockets. + + + Updates a connected socket's properties by using those of an existing socket. This is equivalent to using the Winsock2 SO_UPDATE_CONNECT_CONTEXT socket option and is supported only on connection-oriented sockets. + + + Bypass hardware when possible. + + + Defines constants that are used by the method. + + + Disables a for both sending and receiving. This field is constant. + + + Disables a for receiving. This field is constant. + + + Disables a for sending. This field is constant. + + + Specifies the type of socket that an instance of the class represents. + + + Supports datagrams, which are connectionless, unreliable messages of a fixed (typically small) maximum length. Messages might be lost or duplicated and might arrive out of order. A of type requires no connection prior to sending and receiving data, and can communicate with multiple peers. uses the Datagram Protocol () and the . + + + Supports access to the underlying transport protocol. Using the , you can communicate using protocols like Internet Control Message Protocol () and Internet Group Management Protocol (). Your application must provide a complete IP header when sending. Received datagrams return with the IP header and options intact. + + + Supports connectionless, message-oriented, reliably delivered messages, and preserves message boundaries in data. Rdm (Reliably Delivered Messages) messages arrive unduplicated and in order. Furthermore, the sender is notified if messages are lost. If you initialize a Socket using , you do not require a remote host connection before sending and receiving data. With , you can communicate with multiple peers. + + + Provides connection-oriented and reliable two-way transfer of ordered byte streams across a network. does not duplicate data, and it preserves boundaries within the data stream. A Socket of type communicates with a single peer and requires a remote host connection before communication can begin. + + + Supports reliable, two-way, connection-based byte streams without the duplication of data and without preservation of boundaries. A Socket of this type communicates with a single peer and requires a remote host connection before communication can begin. uses the Transmission Control Protocol () and the InterNetwork. + + + Specifies an unknown Socket type. + + + Provides client connections for TCP network services. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class and binds it to the specified local endpoint. + The to which you bind the TCP . + The parameter is null. + + + Initializes a new instance of the class with the specified family. + The of the IP protocol. + The parameter is not equal to AddressFamily.InterNetwork -or- The parameter is not equal to AddressFamily.InterNetworkV6 + + + Initializes a new instance of the class and connects to the specified port on the specified host. + The DNS name of the remote host to which you intend to connect. + The port number of the remote host to which you intend to connect. + The parameter is null. + The parameter is not between and . + An error occurred when accessing the socket. See the Remarks section for more information. + + + Gets or set a value that indicates whether a connection has been made. + true if the connection has been made; otherwise, false. + + + Gets the amount of data that has been received from the network and is available to be read. + The number of bytes of data received from the network and available to be read. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + + + + + + Begins an asynchronous request for a remote host connection. The remote host is specified by an and a port number (). + An object that references the asynchronous connection. + The of the remote host. + The port number of the remote host. + An delegate that references the method to invoke when the operation is complete. + A user-defined object that contains information about the connect operation. This object is passed to the delegate when the operation is complete. + The parameter is null. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + A caller higher in the call stack does not have permission for the requested operation. + The port number is not valid. + + + + + + + + + + Begins an asynchronous request for a remote host connection. The remote host is specified by an array and a port number (). + An object that references the asynchronous connection. + At least one that designates the remote hosts. + The port number of the remote hosts. + An delegate that references the method to invoke when the operation is complete. + A user-defined object that contains information about the connect operation. This object is passed to the delegate when the operation is complete. + The parameter is null. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + A caller higher in the call stack does not have permission for the requested operation. + The port number is not valid. + + + + + + + + + + Begins an asynchronous request for a remote host connection. The remote host is specified by a host name () and a port number (). + An object that references the asynchronous connection. + The name of the remote host. + The port number of the remote host. + An delegate that references the method to invoke when the operation is complete. + A user-defined object that contains information about the connect operation. This object is passed to the delegate when the operation is complete. + The parameter is null. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + A caller higher in the call stack does not have permission for the requested operation. + The port number is not valid. + + + + + + + + + + Gets or sets the underlying . + The underlying network . + + + Disposes this instance and requests that the underlying TCP connection be closed. + + + + + + + + Connects the client to a remote TCP host using the specified IP address and port number. + The of the host to which you intend to connect. + The port number to which you intend to connect. + The parameter is null. + The is not between and . + An error occurred when accessing the socket. See the Remarks section for more information. + + is closed. + + + + + + + + + + Connects the client to a remote TCP host using the specified IP addresses and port number. + The array of the host to which you intend to connect. + The port number to which you intend to connect. + The parameter is null. + The port number is not valid. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + A caller higher in the call stack does not have permission for the requested operation. + This method is valid for sockets that use the flag or the flag. + + + + + + + + + + Connects the client to a remote TCP host using the specified remote network endpoint. + The to which you intend to connect. + The parameter is null. + An error occurred when accessing the socket. See the Remarks section for more information. + The is closed. + + + + + + + + + + Connects the client to the specified port on the specified host. + The DNS name of the remote host to which you intend to connect. + The port number of the remote host to which you intend to connect. + The parameter is null. + The parameter is not between and . + An error occurred when accessing the socket. See the Remarks section for more information. + + is closed. + + + + + + + + + + Connects the client to a remote TCP host using the specified IP address and port number as an asynchronous operation. + Returns The task object representing the asynchronous operation. + The of the host to which you intend to connect. + The port number to which you intend to connect. + The parameter is null. + The is not between and . + An error occurred when accessing the socket. See the Remarks section for more information. + + is closed. + + + Connects the client to a remote TCP host using the specified IP addresses and port number as an asynchronous operation. + Returns The task object representing the asynchronous operation. + The array of the host to which you intend to connect. + The port number to which you intend to connect. + The parameter is null. + The port number is not valid. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + A caller higher in the call stack does not have permission for the requested operation. + This method is valid for sockets that use the flag or the flag. + + + Connects the client to the specified TCP port on the specified host as an asynchronous operation. + Returns The task object representing the asynchronous operation. + The DNS name of the remote host to which you intend to connect. + The port number of the remote host to which you intend to connect. + The parameter is null. + The parameter is not between and . + An error occurred when accessing the socket. See the Remarks section for more information. + + is closed. + + + Gets a value indicating whether the underlying for a is connected to a remote host. + true if the socket was connected to a remote resource as of the most recent operation; otherwise, false. + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + Set to true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Ends a pending asynchronous connection attempt. + An object returned by a call to . + The parameter is null. + The parameter was not returned by a call to a method. + The method was previously called for the asynchronous connection. + An error occurred when attempting to access the . See the Remarks section for more information. + The underlying has been closed. + + + + + + + + Gets or sets a value that specifies whether the allows only one client to use a port. + true if the allows only one client to use a specific port; otherwise, false. The default is true for Windows Server 2003 and Windows XP Service Pack 2 and later, and false for all other versions. + An error occurred when attempting to access the underlying socket. + The underlying has been closed. + + + + + + + + Frees resources used by the class. + + + Returns the used to send and receive data. + The underlying . + The is not connected to a remote host. + The has been closed. + + + + + + + + Gets or sets information about the linger state of the associated socket. + A . By default, lingering is disabled. + + + + + + + + Gets or sets a value that disables a delay when send or receive buffers are not full. + true if the delay is disabled, otherwise false. The default value is false. + + + + + + + + Gets or sets the size of the receive buffer. + The size of the receive buffer, in bytes. The default value is 8192 bytes. + An error occurred when setting the buffer size.-or-In .NET Compact Framework applications, you cannot set this property. For a workaround, see the Platform Note in Remarks. + + + + + + + + Gets or sets the amount of time a will wait to receive data once a read operation is initiated. + The time-out value of the connection in milliseconds. The default value is 0. + + + + + + + + Gets or sets the size of the send buffer. + The size of the send buffer, in bytes. The default value is 8192 bytes. + + + + + + + + Gets or sets the amount of time a will wait for a send operation to complete successfully. + The send time-out value, in milliseconds. The default is 0. + + + + + + + + Releases all resources used by the . + + + Listens for connections from TCP network clients. + + + Initializes a new instance of the class that listens on the specified port. + The port on which to listen for incoming connection attempts. + + is not between and . + + + Initializes a new instance of the class that listens for incoming connection attempts on the specified local IP address and port number. + An that represents the local IP address. + The port on which to listen for incoming connection attempts. + + is null. + + is not between and . + + + Initializes a new instance of the class with the specified local endpoint. + An that represents the local endpoint to which to bind the listener . + + is null. + + + Accepts a pending connection request. + A used to send and receive data. + The listener has not been started with a call to . + + + + + + + + + Accepts a pending connection request as an asynchronous operation. + Returns The task object representing the asynchronous operation. The property on the task object returns a used to send and receive data. + The listener has not been started with a call to . + + + Accepts a pending connection request. + A used to send and receive data. + The listener has not been started with a call to . + Use the property to obtain the specific error code. When you have obtained this code, you can refer to the Windows Sockets version 2 API error code documentation in MSDN for a detailed description of the error. + + + + + + + + + Accepts a pending connection request as an asynchronous operation. + Returns The task object representing the asynchronous operation. The property on the task object returns a used to send and receive data. + The listener has not been started with a call to . + Use the property to obtain the specific error code. When you have obtained this code, you can refer to the Windows Sockets version 2 API error code documentation in MSDN for a detailed description of the error. + + + Gets a value that indicates whether is actively listening for client connections. + true if is actively listening; otherwise, false. + + + Enables or disables Network Address Translation (NAT) traversal on a instance. + A Boolean value that specifies whether to enable or disable NAT traversal. + The method was called after calling the method + + + Begins an asynchronous operation to accept an incoming connection attempt. + An that references the asynchronous creation of the . + An delegate that references the method to invoke when the operation is complete. + A user-defined object containing information about the accept operation. This object is passed to the delegate when the operation is complete. + An error occurred while attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + + + + + + + Begins an asynchronous operation to accept an incoming connection attempt. + An that references the asynchronous creation of the . + An delegate that references the method to invoke when the operation is complete. + A user-defined object containing information about the accept operation. This object is passed to the delegate when the operation is complete. + An error occurred while attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + + + + + + + Creates a new instance to listen on the specified port. + Returns .A new instance to listen on the specified port. + The port on which to listen for incoming connection attempts. + + + Asynchronously accepts an incoming connection attempt and creates a new to handle remote host communication. + A .The used to send and receive data. + An returned by a call to the method. + The underlying has been closed. + The parameter is null. + The parameter was not created by a call to the method. + The method was previously called. + An error occurred while attempting to access the . See the Remarks section for more information. + + + + + + + + + Asynchronously accepts an incoming connection attempt and creates a new to handle remote host communication. + A .The used to send and receive data. + An returned by a call to the method. + + + + + + + + + Gets or sets a value that specifies whether the allows only one underlying socket to listen to a specific port. + true if the allows only one to listen to a specific port; otherwise, false. . The default is true for Windows Server 2003 and Windows XP Service Pack 2 and later, and false for all other versions. + The has been started. Call the method and then set the property. + An error occurred when attempting to access the underlying socket. + The underlying has been closed. + + + + + + + + Gets the underlying of the current . + The to which the is bound. + + + + + + + + Determines if there are pending connection requests. + true if connections are pending; otherwise, false. + The listener has not been started with a call to . + + + + + + + + Gets the underlying network . + The underlying . + + + Starts listening for incoming connection requests. + Use the property to obtain the specific error code. When you have obtained this code, you can refer to the Windows Sockets version 2 API error code documentation in MSDN for a detailed description of the error. + + + + + + + + + Starts listening for incoming connection requests with a maximum number of pending connection. + The maximum length of the pending connections queue. + An error occurred while accessing the socket. See the Remarks section for more information. + The parameter is less than zero or exceeds the maximum number of permitted connections. + The underlying is null. + + + + + + + + + Closes the listener. + Use the property to obtain the specific error code. When you have obtained this code, you can refer to the Windows Sockets version 2 API error code documentation in MSDN for a detailed description of the error. + + + + + + + + The enumeration defines values used in file transfer requests. + + + Start a transport-level disconnect after all the file data has been queued for transmission. When used with , these flags return the socket to a disconnected, reusable state after the file has been transmitted. + + + The socket handle may be reused when the request completes. This flag is valid only if is also specified. When used with , these flags return the socket to a disconnected, reusable state after the file has been transmitted. + + + Use the default thread to process long file transfer requests. + + + Use kernel asynchronous procedure calls (APCs) instead of worker threads to process long file transfer requests. Long requests are defined as requests that require more than a single read from the file or a cache; the request therefore depends on the size of the file and the specified length of the send packet. + + + Use system threads to process long file transfer requests. + + + Complete the file transfer request immediately, without pending. If this flag is specified and the file transfer succeeds, the data has been accepted by the system but not necessarily acknowledged by the remote end. Do not use this flag with the and flags. + + + Provides User Datagram Protocol (UDP) network services. + + + Initializes a new instance of the class. + An error occurred when accessing the socket. See the Remarks section for more information. + + + Initializes a new instance of the class and binds it to the local port number provided. + The local port number from which you intend to communicate. + The parameter is greater than or less than . + An error occurred when accessing the socket. See the Remarks section for more information. + + + Initializes a new instance of the class and binds it to the local port number provided. + The port on which to listen for incoming connection attempts. + One of the values that specifies the addressing scheme of the socket. + + is not or . + + is greater than or less than . + An error occurred when accessing the socket. See the Remarks section for more information. + + + Initializes a new instance of the class and binds it to the specified local endpoint. + An that respresents the local endpoint to which you bind the UDP connection. + + is null. + An error occurred when accessing the socket. See the Remarks section for more information. + + + Initializes a new instance of the class. + One of the values that specifies the addressing scheme of the socket. + + is not or . + An error occurred when accessing the socket. See the Remarks section for more information. + + + Initializes a new instance of the class and establishes a default remote host. + The name of the remote DNS host to which you intend to connect. + The remote port number to which you intend to connect. + + is null. + + is not between and . + An error occurred when accessing the socket. See the Remarks section for more information. + + + Gets or sets a value indicating whether a default remote host has been established. + true if a connection is active; otherwise, false. + + + Enables or disables Network Address Translation (NAT) traversal on a instance. + A Boolean value that specifies whether to enable or disable NAT traversal. + + + Gets the amount of data received from the network that is available to read. + The number of bytes of data received from the network. + An error occurred while attempting to access the socket. See the Remarks section for more information. + The has been closed. + + + + + + + + Receives a datagram from a remote host asynchronously. + An object that references the asynchronous receive. + An delegate that references the method to invoke when the operation is complete. + A user-defined object that contains information about the receive operation. This object is passed to the delegate when the operation is complete. + + + Sends a datagram to a remote host asynchronously. The destination was specified previously by a call to . + An object that references the asynchronous send. + A array that contains the data to be sent. + The number of bytes to send. + An delegate that references the method to invoke when the operation is complete. + A user-defined object that contains information about the send operation. This object is passed to the delegate when the operation is complete. + + + Sends a datagram to a destination asynchronously. The destination is specified by a . + An object that references the asynchronous send. + A array that contains the data to be sent. + The number of bytes to send. + The that represents the destination for the data. + An delegate that references the method to invoke when the operation is complete. + A user-defined object that contains information about the send operation. This object is passed to the delegate when the operation is complete. + + + Sends a datagram to a destination asynchronously. The destination is specified by the host name and port number. + An object that references the asynchronous send. + A array that contains the data to be sent. + The number of bytes to send. + The destination host. + The destination port number. + An delegate that references the method to invoke when the operation is complete. + A user-defined object that contains information about the send operation. This object is passed to the delegate when the operation is complete. + + + Gets or sets the underlying network . + The underlying Network . + + + Closes the UDP connection. + An error occurred when accessing the socket. See the Remarks section for more information. + + + + + + + + Establishes a default remote host using the specified IP address and port number. + The of the remote host to which you intend to send data. + The port number to which you intend send data. + + is closed. + + is null. + + is not between and . + An error occurred when accessing the socket. See the Remarks section for more information. + + + + + + + + + + Establishes a default remote host using the specified network endpoint. + An that specifies the network endpoint to which you intend to send data. + An error occurred when accessing the socket. See the Remarks section for more information. + + is null. + The is closed. + + + + + + + + + + Establishes a default remote host using the specified host name and port number. + The DNS name of the remote host to which you intend send data. + The port number on the remote host to which you intend to send data. + The is closed. + + is not between and . + An error occurred when accessing the socket. See the Remarks section for more information. + + + + + + + + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Gets or sets a value that specifies whether the allows Internet Protocol (IP) datagrams to be fragmented. + true if the allows datagram fragmentation; otherwise, false. The default is true. + This property can be set only for sockets that use the flag or the flag. + + + + + + + + Leaves a multicast group. + The of the multicast group to leave. + The underlying has been closed. + An error occurred when accessing the socket. See the Remarks section for more information. + The IP address is not compatible with the value that defines the addressing scheme of the socket. + + is null. + + + + + + + + Leaves a multicast group. + The of the multicast group to leave. + The local address of the multicast group to leave. + The underlying has been closed. + An error occurred when accessing the socket. See the Remarks section for more information. + The IP address is not compatible with the value that defines the addressing scheme of the socket. + + is null. + + + + + + + + Gets or sets a value that specifies whether the may send or receive broadcast packets. + true if the allows broadcast packets; otherwise, false. The default is false. + + + + + + + + Ends a pending asynchronous receive. + If successful, the number of bytes received. If unsuccessful, this method returns 0. + An object returned by a call to . + The specified remote endpoint. + + is null. + + was not returned by a call to the method. + + was previously called for the asynchronous read. + An error occurred when attempting to access the underlying . See the Remarks section for more information. + The underlying has been closed. + + + Ends a pending asynchronous send. + If successful, the number of bytes sent to the . + An object returned by a call to . + + is null. + + was not returned by a call to the method. + + was previously called for the asynchronous read. + An error occurred when attempting to access the underlying socket. See the Remarks section for more information. + The underlying has been closed. + + + Gets or sets a value that specifies whether the allows only one client to use a port. + true if the allows only one client to use a specific port; otherwise, false. The default is true for Windows Server 2003 and Windows XP Service Pack 2 and later, and false for all other versions. + An error occurred when attempting to access the underlying socket. + The underlying has been closed. + + + + + + + + Adds a to a multicast group. + The interface index associated with the local IP address on which to join the multicast group. + The multicast of the group you want to join. + The underlying has been closed. + An error occurred when accessing the socket. See the Remarks section for more information. + + + + + + + + Adds a to a multicast group. + The multicast of the group you want to join. + The underlying has been closed. + An error occurred when accessing the socket. See the Remarks section for more information. + The IP address is not compatible with the value that defines the addressing scheme of the socket. + + + + + + + + Adds a to a multicast group with the specified Time to Live (TTL). + The of the multicast group to join. + The Time to Live (TTL), measured in router hops. + The TTL provided is not between 0 and 255 + The underlying has been closed. + An error occurred when accessing the socket. See the Remarks section for more information. + + is null. + The IP address is not compatible with the value that defines the addressing scheme of the socket. + + + + + + + + Adds a to a multicast group. + The multicast of the group you want to join. + The local . + The underlying has been closed. + An error occurred when accessing the socket. See the Remarks section for more information. + + + + + + + + Gets or sets a value that specifies whether outgoing multicast packets are delivered to the sending application. + true if the receives outgoing multicast packets; otherwise, false. + + + + + + + + Returns a UDP datagram that was sent by a remote host. + An array of type that contains datagram data. + An that represents the remote host from which the data was sent. + The underlying has been closed. + An error occurred when accessing the socket. See the Remarks section for more information. + + + + + + + + + + Returns a UDP datagram asynchronously that was sent by a remote host. + Returns .The task object representing the asynchronous operation. + The underlying has been closed. + An error occurred when accessing the socket. See the Remarks section for more information. + + + Sends a UDP datagram to a remote host. + The number of bytes sent. + An array of type that specifies the UDP datagram that you intend to send represented as an array of bytes. + The number of bytes in the datagram. + + is null. + The has already established a default remote host. + The is closed. + An error occurred when accessing the socket. See the Remarks section for more information. + + + + + + + + + Sends a UDP datagram to the host at the specified remote endpoint. + The number of bytes sent. + An array of type that specifies the UDP datagram that you intend to send, represented as an array of bytes. + The number of bytes in the datagram. + An that represents the host and port to which to send the datagram. + + is null. + + has already established a default remote host. + + is closed. + An error occurred when accessing the socket. See the Remarks section for more information. + + + + + + + + + Sends a UDP datagram to a specified port on a specified remote host. + The number of bytes sent. + An array of type that specifies the UDP datagram that you intend to send represented as an array of bytes. + The number of bytes in the datagram. + The name of the remote host to which you intend to send the datagram. + The remote port number with which you intend to communicate. + + is null. + The has already established a default remote host. + The is closed. + An error occurred when accessing the socket. See the Remarks section for more information. + + + + + + + + + Sends a UDP datagram asynchronously to a remote host. + Returns . + An array of type that specifies the UDP datagram that you intend to send represented as an array of bytes. + The number of bytes in the datagram. + + is null. + The has already established a default remote host. + The is closed. + An error occurred when accessing the socket. See the Remarks section for more information. + + + Sends a UDP datagram asynchronously to a remote host. + Returns . + An array of type that specifies the UDP datagram that you intend to send represented as an array of bytes. + The number of bytes in the datagram. + An that represents the host and port to which to send the datagram. + + is null. + + has already established a default remote host. + + is closed. + An error occurred when accessing the socket. See the Remarks section for more information. + + + Sends a UDP datagram asynchronously to a remote host. + Returns . + An array of type that specifies the UDP datagram that you intend to send represented as an array of bytes. + The number of bytes in the datagram. + The name of the remote host to which you intend to send the datagram. + The remote port number with which you intend to communicate. + + is null. + The has already established a default remote host. + The is closed. + An error occurred when accessing the socket. See the Remarks section for more information. + + + Releases all resources used by the . + + + Gets or sets a value that specifies the Time to Live (TTL) value of Internet Protocol (IP) packets sent by the . + The TTL value. + + + + + + + + Presents UDP receive result information from a call to the method. + + + Initializes a new instance of the class. + A buffer for data to receive in the UDP packet. + The remote endpoint of the UDP packet. + + + Gets a buffer with the data received in the UDP packet. + Returns .A array with the data received in the UDP packet. + + + Returns a value that indicates whether this instance is equal to a specified object. + Returns .true if is an instance of and equals the value of the instance; otherwise, false. + The object to compare with this instance. + + + Returns a value that indicates whether this instance is equal to a specified object. + Returns .true if is an instance of and equals the value of the instance; otherwise, false. + The object to compare with this instance. + + + Returns the hash code for this instance. + Returns .The hash code. + + + Tests whether two specified instances are equivalent. + Returns .true if and are equal; otherwise, false. + The instance that is to the left of the equality operator. + The instance that is to the right of the equality operator. + + + Tests whether two specified instances are not equal. + Returns .true if and are unequal; otherwise, false. + The instance that is to the left of the not equal operator. + The instance that is to the right of the not equal operator. + + + Gets the remote endpoint from which the UDP packet was received. + Returns .The remote endpoint from which the UDP packet was received. + + + Provides a client for connecting to WebSocket services. + + + Creates an instance of the class. + + + Aborts the connection and cancels any pending IO operations. + + + Close the instance as an asynchronous operation. + Returns .The task object representing the asynchronous operation. + The WebSocket close status. + A description of the close status. + A cancellation token used to propagate notification that this operation should be canceled. + + + Close the output for the instance as an asynchronous operation. + Returns .The task object representing the asynchronous operation. + The WebSocket close status. + A description of the close status. + A cancellation token used to propagate notification that this operation should be canceled. + + + Gets the reason why the close handshake was initiated on instance. + Returns .The reason why the close handshake was initiated. + + + Gets a description of the reason why the instance was closed. + Returns .The description of the reason why the instance was closed. + + + Connect to a WebSocket server as an asynchronous operation. + Returns .The task object representing the asynchronous operation. + The URI of the WebSocket server to connect to. + A cancellation token used to propagate notification that the operation should be canceled. + + + Releases the unmanaged resources used by the instance. + + + Gets the WebSocket options for the instance. + Returns .The WebSocket options for the instance. + + + Receive data on as an asynchronous operation. + Returns .The task object representing the asynchronous operation. + The buffer to receive the response. + A cancellation token used to propagate notification that this operation should be canceled. + + + Send data on as an asynchronous operation. + Returns .The task object representing the asynchronous operation. + The buffer containing the message to be sent. + Specifies whether the buffer is clear text or in a binary format. + Specifies whether this is the final asynchronous send. Set to true if this is the final send; false otherwise. + A cancellation token used to propagate notification that this operation should be canceled. + + + Get the WebSocket state of the instance. + Returns .The WebSocket state of the instance. + + + Gets the supported WebSocket sub-protocol for the instance. + Returns .The supported WebSocket sub-protocol. + + + Options to use with a object. + + + Adds a sub-protocol to be negotiated during the WebSocket connection handshake. + The WebSocket sub-protocol to add. + + + Gets or sets a collection of client side certificates. + Returns .A collection of client side certificates. + + + Gets or sets the cookies associated with the request. + Returns .The cookies associated with the request. + + + Gets or sets the credential information for the client. + Returns .The credential information for the client. + + + Gets or sets the WebSocket protocol keep-alive interval in milliseconds. + Returns .The WebSocket protocol keep-alive interval in milliseconds. + + + Gets or sets the proxy for WebSocket requests. + Returns .The proxy for WebSocket requests. + + + Sets the client buffer parameters. + The size, in bytes, of the client receive buffer. + The size, in bytes, of the client send buffer. + + + Sets client buffer parameters. + The size, in bytes, of the client receive buffer. + The size, in bytes, of the client send buffer. + The receive buffer to use. + + + Creates a HTTP request header and its value. + The name of the HTTP header. + The value of the HTTP header. + + + Gets or sets a value that indicates if default credentials should be used during WebSocket handshake. + Returns .true if default credentials should be used during WebSocket handshake; otherwise false. The default is true. + + + Provides access to information received by the class when accepting WebSocket connections. + + + Gets the cookies received by the object in the WebSocket opening handshake. + Returns .The cookies received by the object. + + + Gets the HTTP headers received by the object in the WebSocket opening handshake. + Returns .The HTTP headers received by the object. + + + Gets a value that indicates if the WebSocket client is authenticated. + Returns .true if the WebSocket client is authenticated; otherwise false. + + + Gets a value that indicates if the WebSocket client connected from the local machine. + Returns .true if the WebSocket client connected from the local machine; otherwise false. + + + Gets a value that indicates if the WebSocket connection is secured using Secure Sockets Layer (SSL). + Returns .true if the WebSocket connection is secured using SSL; otherwise false. + + + Gets the value of the Origin HTTP header included in the WebSocket opening handshake. + Returns .The value of the Origin HTTP header. + + + Gets the URI requested by the WebSocket client. + Returns .The URI requested by the WebSocket client. + + + Gets the value of the SecWebSocketKey HTTP header included in the WebSocket opening handshake. + Returns .The value of the SecWebSocketKey HTTP header. + + + Gets the list of the Secure WebSocket protocols included in the WebSocket opening handshake. + Returns .The list of the Secure WebSocket protocols. + + + Gets the list of sub-protocols requested by the WebSocket client. + Returns .The list of sub-protocols requested by the WebSocket client. + + + Gets an object used to obtain identity, authentication information, and security roles for the WebSocket client. + Returns .The identity, authentication information, and security roles for the WebSocket client. + + + Gets the WebSocket instance used to send and receive data over the WebSocket connection. + Returns .The WebSocket instance. + + + The WebSocket class allows applications to send and receive data after the WebSocket upgrade has completed. + + + Creates an instance of the class. + + + Aborts the WebSocket connection and cancels any pending IO operations. + + + Closes the WebSocket connection as an asynchronous operation using the close handshake defined in the WebSocket protocol specification section 7. + Returns .The task object representing the asynchronous operation. + Indicates the reason for closing the WebSocket connection. + Specifies a human readable explanation as to why the connection is closed. + The token that can be used to propagate notification that operations should be canceled. + + + Initiates or completes the close handshake defined in the WebSocket protocol specification section 7. + Returns .The task object representing the asynchronous operation. + Indicates the reason for closing the WebSocket connection. + Allows applications to specify a human readable explanation as to why the connection is closed. + The token that can be used to propagate notification that operations should be canceled. + + + Indicates the reason why the remote endpoint initiated the close handshake. + Returns . + + + Allows the remote endpoint to describe the reason why the connection was closed. + Returns . + + + Create client buffers to use with this instance. + Returns .An array with the client buffers. + The size, in bytes, of the client receive buffer. + The size, in bytes, of the send buffer. + + + This API supports the .NET Framework infrastructure and is not intended to be used directly from your code.Allows callers to create a client side WebSocket class which will use the WSPC for framing purposes. + Returns . + The connection to be used for IO operations. + The subprotocol accepted by the client. + The size in bytes of the client WebSocket receive buffer. + The size in bytes of the client WebSocket send buffer. + Determines how regularly a frame is sent over the connection as a keep-alive. Applies only when the connection is idle. + Indicates whether a random key or a static key (just zeros) should be used for the WebSocket masking. + Will be used as the internal buffer in the WPC. The size has to be at least 2 * ReceiveBufferSize + SendBufferSize + 256 + 20 (16 on 32-bit). + + + Creates a WebSocket server buffer. + Returns . + The size, in bytes, of the desired buffer. + + + Gets the default WebSocket protocol keep-alive interval in milliseconds. + Returns .The default WebSocket protocol keep-alive interval in milliseconds. The typical value for this interval is 30 seconds. + + + Used to clean up unmanaged resources for ASP.NET and self-hosted implementations. + + + Returns a value that indicates if the WebSocket instance is targeting .NET Framework 4.5. + Returns .true if the is targeting .NET Framework 4.5; otherwise false. + + + Returns a value that indicates if the state of the WebSocket instance is closed or aborted. + Returns .true if the is closed or aborted; otherwise false. + The current state of the WebSocket. + + + Receives data from the WebSocket connection asynchronously. + Returns .The task object representing the asynchronous operation. The property on the task object returns a array containing the received data. + References the application buffer that is the storage location for the received data. + Propagate the notification that operations should be canceled. + + + This API supports the .NET Framework infrastructure and is not intended to be used directly from your code. Allows callers to register prefixes for WebSocket requests (ws and wss). + + + Sends data over the WebSocket connection asynchronously. + Returns .The task object representing the asynchronous operation. + The buffer to be sent over the connection. + Indicates whether the application is sending a binary or text message. + Indicates whether the data in “buffer” is the last part of a message. + The token that propagates the notification that operations should be canceled. + + + Returns the current state of the WebSocket connection. + Returns . + + + The subprotocol that was negotiated during the opening handshake. + Returns . + + + Verifies that the connection is in an expected state. + The current state of the WebSocket to be tested against the list of valid states. + List of valid connection states. + + + Represents well known WebSocket close codes as defined in section 11.7 of the WebSocket protocol spec. + + + No error specified. + + + (1001) Indicates an endpoint is being removed. Either the server or client will become unavailable. + + + The connection will be closed by the server because of an error on the server. + + + (1003) The client or server is terminating the connection because it cannot accept the data type it received. + + + (1007) The client or server is terminating the connection because it has received data inconsistent with the message type. + + + (1010) The client is terminating the connection because it expected the server to negotiate an extension. + + + (1004) Reserved for future use. + + + (1000) The connection has closed after the request was fulfilled. + + + (1008) The connection will be closed because an endpoint has received a message that violates its policy. + + + (1002) The client or server is terminating the connection because of a protocol error. + + + Used for accessing the information in the WebSocket handshake. + + + Creates an instance of the class. + + + The cookies that were passed to the server during the opening handshake. + Returns . + + + The HTTP headers that were sent to the server during the opening handshake. + Returns . + + + Whether the WebSocket client is authenticated. + Returns . + + + Whether the WebSocket client connected from the local machine. + Returns . + + + Whether the WebSocket connection is secured using Secure Sockets Layer (SSL). + Returns . + + + The value of the Origin HTTP header included in the opening handshake. + Returns . + + + The URI requested by the WebSocket client. + Returns . + + + The value of the SecWebSocketKey HTTP header included in the opening handshake. + Returns . + + + The value of the SecWebSocketKey HTTP header included in the opening handshake. + Returns . + + + The list of subprotocols requested by the WebSocket client. + Returns . + + + An object used to obtain identity, authentication information, and security roles for the WebSocket client. + Returns . + + + The WebSocket instance used to interact (send/receive/close/etc) with the WebSocket connection. + Returns . + + + Contains the list of possible WebSocket errors. + + + Indicates that the connection was terminated unexpectedly. + + + Indicates a general error. + + + Indicates an error occurred when parsing the HTTP headers during the opening handshake. + + + Indicates that a WebSocket frame with an unknown opcode was received. + + + Indicates the WebSocket is an invalid state for the given operation (such as being closed or aborted). + + + Indicates that an unknown native error occurred. + + + Indicates that the incoming request was not a valid websocket request. + + + Indicates that there was no native error information for the exception. + + + Indicates that the client requested an unsupported WebSocket subprotocol. + + + Indicates that the client requested an unsupported version of the WebSocket protocol. + + + Represents an exception that occurred when performing an operation on a WebSocket connection. + + + Creates an instance of the class. + + + Creates an instance of the class. + The native error code for the exception. + + + Creates an instance of the class. + The native error code for the exception. + Indicates the previous exception that led to the current exception. + + + Creates an instance of the class. + The native error code for the exception. + The description of the error. + + + Creates an instance of the class. + The error from the WebSocketError enumeration. + + + Creates an instance of the class. + The error from the WebSocketError enumeration. + Indicates the previous exception that led to the current exception. + + + Creates an instance of the class. + The error from the WebSocketError enumeration. + The native error code for the exception. + + + Creates an instance of the class. + The error from the WebSocketError enumeration. + The native error code for the exception. + Indicates the previous exception that led to the current exception. + + + Creates an instance of the class. + The error from the WebSocketError enumeration. + The native error code for the exception. + The description of the error. + + + Creates an instance of the class. + The error from the WebSocketError enumeration. + The native error code for the exception. + The description of the error. + Indicates the previous exception that led to the current exception. + + + Creates an instance of the class. + The error from the WebSocketError enumeration. + The description of the error. + + + Creates an instance of the class. + The error from the WebSocketError enumeration. + The description of the error. + Indicates the previous exception that led to the current exception. + + + Creates an instance of the class. + The description of the error. + + + Creates an instance of the class. + The description of the error. + Indicates the previous exception that led to the current exception. + + + The native error code for the exception that occurred. + Returns . + + + Sets the SerializationInfo object with the file name and line number where the exception occurred. + A SerializationInfo object. + The contextual information about the source or destination. + + + Returns a WebSocketError indicating the type of error that occurred. + Returns . + + + Indicates the message type. + + + The message is in binary format. + + + A receive has completed because a close message was received. + + + The message is clear text. + + + An instance of this class represents the result of performing a single ReceiveAsync operation on a WebSocket. + + + Creates an instance of the class. + The number of bytes received. + The type of message that was received. + Indicates whether this is the final message. + + + Creates an instance of the class. + The number of bytes received. + The type of message that was received. + Indicates whether this is the final message. + Indicates the of the connection. + The description of . + + + Indicates the reason why the remote endpoint initiated the close handshake. + Returns . + + + Returns the optional description that describes why the close handshake has been initiated by the remote endpoint. + Returns . + + + Indicates the number of bytes that the WebSocket received. + Returns . + + + Indicates whether the message has been received completely. + Returns . + + + Indicates whether the current message is a UTF-8 message or a binary message. + Returns . + + + Defines the different states a WebSockets instance can be in. + + + Reserved for future use. + + + Indicates the WebSocket close handshake completed gracefully. + + + A close message was received from the remote endpoint. + + + A close message was sent to the remote endpoint. + + + The connection is negotiating the handshake with the remote endpoint. + + + Reserved for future use. + + + The initial state after the HTTP handshake has been completed. + + + Represents an object that provides a custom type. + + + Gets the custom type provided by this object. + The custom type. + + + Sets the default value of a parameter when called from a language that supports default parameters. This class cannot be inherited. + + + Initializes a new instance of the class with the default value of a parameter. + An object that represents the default value of a parameter. + + + Gets the default value of a parameter. + An object that represents the default value of a parameter. + + + Tracks outstanding handles and forces a garbage collection when the specified threshold is reached. + + + Initializes a new instance of the class using a name and a threshold at which to begin handle collection. + A name for the collector. This parameter allows you to name collectors that track handle types separately. + A value that specifies the point at which collections should begin. + The parameter is less than 0. + + + Initializes a new instance of the class using a name, a threshold at which to begin handle collection, and a threshold at which handle collection must occur. + A name for the collector. This parameter allows you to name collectors that track handle types separately. + A value that specifies the point at which collections should begin. + A value that specifies the point at which collections must occur. This should be set to the maximum number of available handles. + The parameter is less than 0.-or-The parameter is less than 0. + The parameter is less than the parameter. + + + Increments the current handle count. + The property is less than 0. + + + Gets the number of handles collected. + The number of handles collected. + + + Gets a value that specifies the point at which collections should begin. + A value that specifies the point at which collections should begin. + + + Gets a value that specifies the point at which collections must occur. + A value that specifies the point at which collections must occur. + + + Gets the name of a object. + This property allows you to name collectors that track handle types separately. + + + Decrements the current handle count. + The property is less than 0. + + + Replaces the standard common language runtime (CLR) free-threaded marshaler with the standard OLE STA marshaler. + + + Initializes a new instance of the class. + + + Specifies the requested behavior when setting up an advise sink or a caching connection with an object. + + + For data advisory connections, assures accessibility to data. + + + For data advisory connections ( or ), this flag requests the data object not to send data when it calls . + + + Requests that the object make only one change notification or cache update before deleting the connection. + + + Requests that the object not wait for the data or view to change before making an initial call to (for data or view advisory connections) or updating the cache (for cache connections). + + + This value is used by DLL object applications and object handlers that perform the drawing of their objects. + + + Synonym for , which is used more often. + + + For cache connections, this flag updates the cached representation only when the object containing the cache is saved. + + + Specifies the direction of the data flow in the parameter of the method. This determines the formats that the resulting enumerator can enumerate. + + + Requests that supply an enumerator for the formats that can be specified in . + + + Requests that supply an enumerator for the formats that can be specified in . + + + Specifies the desired data or view aspect of the object when drawing or getting data. + + + A representation of an object that lets that object be displayed as an embedded object inside a container. This value is typically specified for compound document objects. The presentation can be provided for the screen or printer. + + + A representation of an object on the screen as though it were printed to a printer using the Print command from the File menu. The described data may represent a sequence of pages. + + + An iconic representation of an object. + + + A thumbnail representation of an object that lets that object be displayed in a browsing tool. The thumbnail is approximately a 120 by 120 pixel, 16-color (recommended), device-independent bitmap potentially wrapped in a metafile. + + + Represents a generalized Clipboard format. + + + Specifies the particular clipboard format of interest. + + + Specifies one of the enumeration constants that indicates how much detail should be contained in the rendering. + + + Specifies part of the aspect when the data must be split across page boundaries. + + + Specifies a pointer to a DVTARGETDEVICE structure containing information about the target device that the data is being composed for. + + + Specifies one of the enumeration constants, which indicates the type of storage medium used to transfer the object's data. + + + Provides a managed definition of the IAdviseSink interface. + + + Notifies all registered advisory sinks that the object has changed from the running state to the loaded state. This method is called by a server. + + + Notifies all data objects currently registered advisory sinks that data in the object has changed. + A , passed by reference, which describes the format, target device, rendering, and storage information of the calling data object. + A , passed by reference, which defines the storage medium (global memory, disk file, storage object, stream object, Graphics Device Interface (GDI) object, or undefined) and ownership of that medium for the calling data object. + + + Notifies all registered advisory sinks that the object has been renamed. This method is called by a server. + A pointer to the IMoniker interface on the new full moniker of the object. + + + Notifies all registered advisory sinks that the object has been saved. This method is called by a server. + + + Notifies an object's registered advisory sinks that its view has changed. This method is called by a server. + The aspect, or view, of the object. Contains a value taken from the enumeration. + The portion of the view that has changed. Currently, only -1 is valid. + + + Provides the managed definition of the IDataObject interface. + + + Creates a connection between a data object and an advisory sink. This method is called by an object that supports an advisory sink and enables the advisory sink to be notified of changes in the object's data. + This method supports the standard return values E_INVALIDARG, E_UNEXPECTED, and E_OUTOFMEMORY, as well as the following: ValueDescriptionS_OKThe advisory connection was created.E_NOTIMPLThis method is not implemented on the data object.DV_E_LINDEXThere is an invalid value for ; currently, only -1 is supported.DV_E_FORMATETCThere is an invalid value for the parameter.OLE_E_ADVISENOTSUPPORTEDThe data object does not support change notification. + A structure, passed by reference, that defines the format, target device, aspect, and medium that will be used for future notifications. + One of the values that specifies a group of flags for controlling the advisory connection. + A pointer to the interface on the advisory sink that will receive the change notification. + When this method returns, contains a pointer to a DWORD token that identifies this connection. You can use this token later to delete the advisory connection by passing it to . If this value is zero, the connection was not established. This parameter is passed uninitialized. + + + Destroys a notification connection that had been previously established. + A DWORD token that specifies the connection to remove. Use the value returned by when the connection was originally established. + + + Creates an object that can be used to enumerate the current advisory connections. + This method supports the standard return value E_OUTOFMEMORY, as well as the following:ValueDescriptionS_OKThe enumerator object is successfully instantiated or there are no connections.OLE_E_ADVISENOTSUPPORTEDThis object does not support advisory notifications. + When this method returns, contains an that receives the interface pointer to the new enumerator object. If the implementation sets to null, there are no connections to advisory sinks at this time. This parameter is passed uninitialized. + + + Creates an object for enumerating the structures for a data object. These structures are used in calls to or . + This method supports the standard return values E_INVALIDARG and E_OUTOFMEMORY, as well as the following:ValueDescriptionS_OKThe enumerator object was successfully created.E_NOTIMPLThe direction specified by the parameter is not supported.OLE_S_USEREGRequests that OLE enumerate the formats from the registry. + One of the values that specifies the direction of the data. + + + Provides a standard structure that is logically equivalent to a more complex structure. Use this method to determine whether two different structures would return the same data, removing the need for duplicate rendering. + This method supports the standard return values E_INVALIDARG, E_UNEXPECTED, and E_OUTOFMEMORY, as well as the following: ValueDescriptionS_OKThe returned structure is different from the one that was passed.DATA_S_SAMEFORMATETCThe structures are the same and null is returned in the parameter.DV_E_LINDEXThere is an invalid value for ; currently, only -1 is supported.DV_E_FORMATETCThere is an invalid value for the parameter.OLE_E_NOTRUNNINGThe application is not running. + A pointer to a structure, passed by reference, that defines the format, medium, and target device that the caller would like to use to retrieve data in a subsequent call such as . The member is not significant in this case and should be ignored. + When this method returns, contains a pointer to a structure that contains the most general information possible for a specific rendering, making it canonically equivalent to . The caller must allocate this structure and the method must fill in the data. To retrieve data in a subsequent call such as , the caller uses the supplied value of , unless the value supplied is null. This value is null if the method returns DATA_S_SAMEFORMATETC. The member is not significant in this case and should be ignored. This parameter is passed uninitialized. + + + Obtains data from a source data object. The method, which is called by a data consumer, renders the data described in the specified structure and transfers it through the specified structure. The caller then assumes responsibility for releasing the structure. + A pointer to a structure, passed by reference, that defines the format, medium, and target device to use when passing the data. It is possible to specify more than one medium by using the Boolean OR operator, allowing the method to choose the best medium among those specified. + When this method returns, contains a pointer to the structure that indicates the storage medium containing the returned data through its member, and the responsibility for releasing the medium through the value of its member. If is null, the receiver of the medium is responsible for releasing it; otherwise, points to the IUnknown interface on the appropriate object so its Release method can be called. The medium must be allocated and filled in by . This parameter is passed uninitialized. + + + Obtains data from a source data object. This method, which is called by a data consumer, differs from the method in that the caller must allocate and free the specified storage medium. + A pointer to a structure, passed by reference, that defines the format, medium, and target device to use when passing the data. Only one medium can be specified in , and only the following values are valid: , , , or . + A , passed by reference, that defines the storage medium containing the data being transferred. The medium must be allocated by the caller and filled in by . The caller must also free the medium. The implementation of this method must always supply a value of null for the member of the structure that this parameter points to. + + + Determines whether the data object is capable of rendering the data described in the structure. Objects attempting a paste or drop operation can call this method before calling to get an indication of whether the operation may be successful. + This method supports the standard return values E_INVALIDARG, E_UNEXPECTED, and E_OUTOFMEMORY, as well as the following: ValueDescriptionS_OKA subsequent call to would probably be successful.DV_E_LINDEXAn invalid value for ; currently, only -1 is supported.DV_E_FORMATETCAn invalid value for the parameter.DV_E_TYMEDAn invalid value.DV_E_DVASPECTAn invalid value.OLE_E_NOTRUNNINGThe application is not running. + A pointer to a structure, passed by reference, that defines the format, medium, and target device to use for the query. + + + Transfers data to the object that implements this method. This method is called by an object that contains a data source. + A structure, passed by reference, that defines the format used by the data object when interpreting the data contained in the storage medium. + A structure, passed by reference, that defines the storage medium in which the data is being passed. + true to specify that the data object called, which implements , owns the storage medium after the call returns. This means that the data object must free the medium after it has been used by calling the ReleaseStgMedium function. false to specify that the caller retains ownership of the storage medium, and the data object called uses the storage medium for the duration of the call only. + + + Provides the managed definition of the IEnumFORMATETC interface. + + + Creates a new enumerator that contains the same enumeration state as the current enumerator. + When this method returns, contains a reference to the newly created enumerator. This parameter is passed uninitialized. + + + Retrieves a specified number of items in the enumeration sequence. + S_OK if the parameter equals the parameter; otherwise, S_FALSE. + The number of references to return in . + When this method returns, contains a reference to the enumerated references. This parameter is passed uninitialized. + When this method returns, contains a reference to the actual number of references enumerated in . This parameter is passed uninitialized. + + + Resets the enumeration sequence to the beginning. + An HRESULT with the value S_OK. + + + Skips a specified number of items in the enumeration sequence. + S_OK if the number of elements skipped equals the parameter; otherwise, S_FALSE. + The number of elements to skip in the enumeration. + + + Provides the managed definition of the IEnumSTATDATA interface. + + + Creates a new enumerator that contains the same enumeration state as the current enumerator. + When this method returns, contains a reference to the newly created enumerator. This parameter is passed uninitialized. + + + Retrieves a specified number of items in the enumeration sequence. + S_OK if the parameter equals the parameter; otherwise, S_FALSE. + The number of references to return in . + When this method returns, contains a reference to the enumerated references. This parameter is passed uninitialized. + When this parameter returns, contains a reference to the actual number of references enumerated in . This parameter is passed uninitialized. + + + Resets the enumeration sequence to the beginning. + An HRESULT with the value S_OK. + + + Skips a specified number of items in the enumeration sequence. + S_OK if the number of elements skipped equals the parameter; otherwise, S_FALSE. + The number of elements to skip in the enumeration. + + + Provides the managed definition of the STATDATA structure. + + + Represents the enumeration value that determines when the advisory sink is notified of changes in the data. + + + Represents the interface that will receive change notifications. + + + Represents the token that uniquely identifies the advisory connection. This token is returned by the method that sets up the advisory connection. + + + Represents the structure for the data of interest to the advise sink. The advise sink receives notification of changes to the data specified by this structure. + + + Provides the managed definition of the STGMEDIUM structure. + + + Represents a pointer to an interface instance that allows the sending process to control the way the storage is released when the receiving process calls the ReleaseStgMedium function. If is null, ReleaseStgMedium uses default procedures to release the storage; otherwise, ReleaseStgMedium uses the specified IUnknown interface. + + + Specifies the type of storage medium. The marshaling and unmarshaling routines use this value to determine which union member was used. This value must be one of the elements of the enumeration. + + + Represents a handle, string, or interface pointer that the receiving process can use to access the data being transferred. + + + Provides the managed definition of the TYMED structure. + + + The storage medium is an enhanced metafile. If the member is null, the destination process should use DeleteEnhMetaFile to delete the bitmap. + + + The storage medium is a disk file identified by a path. If the STGMEDIUM member is null, the destination process should use OpenFile to delete the file. + + + The storage medium is a Graphics Device Interface (GDI) component (HBITMAP). If the member is null, the destination process should use DeleteObject to delete the bitmap. + + + The storage medium is a global memory handle (HGLOBAL). Allocate the global handle with the GMEM_SHARE flag. If the member is null, the destination process should use GlobalFree to release the memory. + + + The storage medium is a storage component identified by an IStorage pointer. The data is in the streams and storages contained by this IStorage instance. If the member is not null, the destination process should use IStorage::Release to release the storage component. + + + The storage medium is a stream object identified by an IStream pointer. Use ISequentialStream::Read to read the data. If the member is not null, the destination process should use IStream::Release to release the stream component. + + + The storage medium is a metafile (HMETAFILE). Use the Windows or WIN32 functions to access the metafile's data. If the member is null, the destination process should use DeleteMetaFile to delete the bitmap. + + + No data is being passed. + + + Represents the name of a version of the .NET Framework. + + + Initializes a new instance of the class from a string that contains information about a version of the .NET Framework. + A string that contains .NET Framework version information. + + is .-or- has fewer than two components or more than three components.-or- does not include a major and minor version number.-or-does not include a valid version number. + + is null. + + + Initializes a new instance of the class from a string and a object that identify a .NET Framework version. + A string that identifies a .NET Framework version. + An object that contains .NET Framework version information. + + is . + + is null.-or- is null. + + + Initializes a new instance of the class from a string, a object that identifies a .NET Framework version, and a profile name. + A string that identifies a .NET Framework version. + An object that contains .NET Framework version information. + A profile name. + + is . + + is null.-or- is null. + + + Returns a value that indicates whether this instance represents the same .NET Framework version as a specified object. + true if every component of the current object matches the corresponding component of ; otherwise, false. + The object to compare to the current instance. + + + Returns a value that indicates whether this instance represents the same .NET Framework version as a specified instance. + true if every component of the current object matches the corresponding component of ; otherwise, false. + The object to compare to the current instance. + + + Gets the full name of this object. + The full name of this object. + + + Returns the hash code for the object. + A 32-bit signed integer that represents the hash code of this instance. + + + Gets the identifier of this object. + The identifier of this object. + + + Returns a value that indicates whether two objects represent the same .NET Framework version. + true if the and parameters represent the same .NET Framework version; otherwise, false. + The first object to compare. + The second object to compare. + + + Returns a value that indicates whether two objects represent different .NET Framework versions. + true if the and parameters represent different .NET Framework versions; otherwise, false. + The first object to compare. + The second object to compare. + + + Gets the profile name of this object. + The profile name of this object. + + + Returns the string representation of this object. + A string that represents this object. + + + Gets the version of this object. + An object that contains version information about this object. + + + Represents a set of access rights allowed or denied for a user or group. This class cannot be inherited. + + + Initializes a new instance of the class, specifying the user or group the rule applies to, the access rights, and whether the specified access rights are allowed or denied. + The user or group the rule applies to. Must be of type or a type such as that can be converted to type . + A bitwise combination of values specifying the rights allowed or denied. + One of the values specifying whether the rights are allowed or denied. + + specifies an invalid value.-or- specifies an invalid value. + + is null. -or- is zero. + + is neither of type nor of a type such as that can be converted to type . + + + Initializes a new instance of the class, specifying the name of the user or group the rule applies to, the access rights, and whether the specified access rights are allowed or denied. + The name of the user or group the rule applies to. + A bitwise combination of values specifying the rights allowed or denied. + One of the values specifying whether the rights are allowed or denied. + + specifies an invalid value.-or- specifies an invalid value. + + is zero. + + is null.-or- is a zero-length string.-or- is longer than 512 characters. + + + Gets the rights allowed or denied by the access rule. + A bitwise combination of values indicating the rights allowed or denied by the access rule. + + + Represents a set of access rights to be audited for a user or group. This class cannot be inherited. + + + Initializes a new instance of the class, specifying the user or group to audit, the rights to audit, and whether to audit success, failure, or both. + The user or group the rule applies to. Must be of type or a type such as that can be converted to type . + A bitwise combination of values specifying the kinds of access to audit. + A bitwise combination of values specifying whether to audit success, failure, or both. + + specifies an invalid value.-or- specifies an invalid value. + + is null. -or- is zero. + + is neither of type nor of a type such as that can be converted to type . + + + Gets the access rights affected by the audit rule. + A bitwise combination of values that indicates the rights affected by the audit rule. + + + Specifies the access control rights that can be applied to named system semaphore objects. + + + The right to change the security and audit rules associated with a named semaphore. + + + The right to delete a named semaphore. + + + The right to exert full control over a named semaphore, and to modify its access rules and audit rules. + + + The right to release a named semaphore. + + + The right to open and copy the access rules and audit rules for a named semaphore. + + + The right to wait on a named semaphore. + + + The right to change the owner of a named semaphore. + + + Represents the Windows access control security for a named semaphore. This class cannot be inherited. + + + Initializes a new instance of the class with default values. + This class is not supported on Windows 98 or Windows Millennium Edition. + + + Initializes a new instance of the class with the specified sections of the access control security rules from the system semaphore with the specified name. + The name of the system semaphore whose access control security rules are to be retrieved. + A combination of flags specifying the sections to retrieve. + This class is not supported on Windows 98 or Windows Millennium Edition. + + + Gets the enumeration that the class uses to represent access rights. + A object representing the enumeration. + + + Creates a new access control rule for the specified user, with the specified access rights, access control, and flags. + A object representing the specified rights for the specified user. + An that identifies the user or group the rule applies to. + A bitwise combination of values specifying the access rights to allow or deny, cast to an integer. + Meaningless for named semaphores, because they have no hierarchy. + Meaningless for named semaphores, because they have no hierarchy. + Meaningless for named semaphores, because they have no hierarchy. + One of the values specifying whether the rights are allowed or denied. + + , , , or specifies an invalid value. + + is null. -or- is zero. + + is neither of type , nor of a type such as that can be converted to type . + + + Gets the type that the class uses to represent access rules. + A object representing the class. + + + Searches for a matching rule with which the new rule can be merged. If none are found, adds the new rule. + The access control rule to add. + + is null. + + + Searches for an audit rule with which the new rule can be merged. If none are found, adds the new rule. + The audit rule to add. The user specified by this rule determines the search. + + + Creates a new audit rule, specifying the user the rule applies to, the access rights to audit, and the outcome that triggers the audit rule. + A object representing the specified audit rule for the specified user. The return type of the method is the base class, , but the return value can be cast safely to the derived class. + An that identifies the user or group the rule applies to. + A bitwise combination of values specifying the access rights to audit, cast to an integer. + Meaningless for named wait handles, because they have no hierarchy. + Meaningless for named wait handles, because they have no hierarchy. + Meaningless for named wait handles, because they have no hierarchy. + A bitwise combination of values that specify whether to audit successful access, failed access, or both. + + , , , or specifies an invalid value. + + is null. -or- is zero. + + is neither of type , nor of a type such as that can be converted to type . + + + Gets the type that the class uses to represent audit rules. + A object representing the class. + + + Searches for an access control rule with the same user and (allow or deny) as the specified rule, and with compatible inheritance and propagation flags; if such a rule is found, the rights contained in the specified access rule are removed from it. + true if a compatible rule is found; otherwise false. + A that specifies the user and to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Specifies the rights to remove from the compatible rule, if found. + + is null. + + + Searches for all access control rules with the same user and (allow or deny) as the specified rule and, if found, removes them. + A that specifies the user and to search for. Any rights specified by this rule are ignored. + + is null. + + + Searches for an access control rule that exactly matches the specified rule and, if found, removes it. + The to remove. + + is null. + + + Searches for an audit control rule with the same user as the specified rule, and with compatible inheritance and propagation flags; if a compatible rule is found, the rights contained in the specified rule are removed from it. + true if a compatible rule is found; otherwise, false. + A that specifies the user to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Specifies the rights to remove from the compatible rule, if found. + + is null. + + + Searches for all audit rules with the same user as the specified rule and, if found, removes them. + A that specifies the user to search for. Any rights specified by this rule are ignored. + + is null. + + + Searches for an audit rule that exactly matches the specified rule and, if found, removes it. + The to remove. + + is null. + + + Removes all access control rules with the same user as the specified rule, regardless of , and then adds the specified rule. + The to add. The user specified by this rule determines the rules to remove before this rule is added. + + is null. + + + Removes all access control rules with the same user and (allow or deny) as the specified rule, and then adds the specified rule. + The to add. The user and of this rule determine the rules to remove before this rule is added. + + is null. + + + Removes all audit rules with the same user as the specified rule, regardless of the value, and then adds the specified rule. + The to add. The user specified by this rule determines the rules to remove before this rule is added. + + is null. + + + The exception that is thrown when authentication fails for an authentication stream. + + + Initializes a new instance of the class with no message. + + + Initializes a new instance of the class from the specified instances of the and classes. + A instance that contains the information required to deserialize the new instance. + A instance. + + + Initializes a new instance of the class with the specified message. + A that describes the authentication failure. + + + Initializes a new instance of the class with the specified message and inner exception. + A that describes the authentication failure. + The that is the cause of the current exception. + + + Defines the possible cipher algorithms for the class. + + + The Advanced Encryption Standard (AES) algorithm. + + + The Advanced Encryption Standard (AES) algorithm with a 128 bit key. + + + The Advanced Encryption Standard (AES) algorithm with a 192 bit key. + + + The Advanced Encryption Standard (AES) algorithm with a 256 bit key. + + + The Data Encryption Standard (DES) algorithm. + + + No encryption algorithm is used. + + + No encryption is used with a Null cipher algorithm. + + + Rivest's Code 2 (RC2) algorithm. + + + Rivest's Code 4 (RC4) algorithm. + + + The Triple Data Encryption Standard (3DES) algorithm. + + + Specifies the algorithm used to create keys shared by the client and server. + + + The Diffie Hellman ephemeral key exchange algorithm. + + + No key exchange algorithm is used. + + + The RSA public-key exchange algorithm. + + + The RSA public-key signature algorithm. + + + Specifies the algorithm used for generating message authentication codes (MACs). + + + The Message Digest 5 (MD5) hashing algorithm. + + + No hashing algorithm is used. + + + The Secure Hashing Algorithm (SHA1). + + + The exception that is thrown when authentication fails for an authentication stream and cannot be retried. + + + Initializes a new instance of the class with no message. + + + Initializes a new instance of the class from the specified instances of the and classes. + A instance that contains the information required to deserialize the new instance. + A instance. + + + Initializes a new instance of the class with the specified message. + A that describes the authentication failure. + + + Initializes a new instance of the class with the specified message and inner exception. + A that describes the authentication failure. + The that is the cause of the current exception. + + + Defines the possible versions of . + + + Specifies that either Secure Sockets Layer (SSL) 3.0 or Transport Layer Security (TLS) 1.0 are acceptable for secure communications + + + No SSL protocol is specified. + + + Specifies the SSL 2.0 protocol. SSL 2.0 has been superseded by the TLS protocol and is provided for backward compatibility only. + + + Specifies the SSL 3.0 protocol. SSL 3.0 has been superseded by the TLS protocol and is provided for backward compatibility only. + + + Specifies the TLS 1.0 security protocol. The TLS protocol is defined in IETF RFC 2246. + + + Specifies the TLS 1.1 security protocol. The TLS protocol is defined in IETF RFC 4346. + + + Specifies the TLS 1.2 security protocol. The TLS protocol is defined in IETF RFC 5246. + + + The class encapsulates a pointer to the opaque data used to bind an authenticated transaction to a secure channel. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + A Boolean value that indicates if the application owns the safe handle to a native memory region containing the byte data that would be passed to native calls that provide extended protection for integrated windows authentication. + + + The property gets the size, in bytes, of the channel binding token associated with the instance. + The size, in bytes, of the channel binding token in the instance. + + + The enumeration represents the kinds of channel bindings that can be queried from secure channels. + + + A channel binding unique to a given endpoint (a TLS server certificate, for example). + + + A channel binding completely unique to a given channel (a TLS session key, for example). + + + An unknown channel binding type. + + + The class represents the extended protection policy used by the server to validate incoming client connections. + + + Initializes a new instance of the class from a object that contains the required data to populate the . + A instance that contains the information that is required to serialize the new instance. + A that contains the source of the serialized stream that is associated with the new instance. + + + Initializes a new instance of the class that specifies when the extended protection policy should be enforced. + A value that indicates when the extended protection policy should be enforced. + + + Initializes a new instance of the class that specifies when the extended protection policy should be enforced and the channel binding token (CBT) to be used. + A value that indicates when the extended protection policy should be enforced. + A that contains a custom channel binding to use for validation. + + is specified as . + + is null. + + + Initializes a new instance of the class that specifies when the extended protection policy should be enforced, the kind of protection enforced by the policy, and a custom Service Provider Name (SPN) list that is used to match against a client's SPN. + A value that indicates when the extended protection policy should be enforced. + A value that indicates the kind of protection enforced by the policy. + A that contains the custom SPN list that is used to match against a client's SPN. + + is specified as . + + is nullor an empty list. + + + Initializes a new instance of the class that specifies when the extended protection policy should be enforced, the kind of protection enforced by the policy, and a custom Service Provider Name (SPN) list that is used to match against a client's SPN. + A value that indicates when the extended protection policy should be enforced. + A value that indicates the kind of protection enforced by the policy. + A that contains the custom SPN list that is used to match against a client's SPN. + + is specified as . + + is nullor an empty list. + + + Gets a custom channel binding token (CBT) to use for validation. + A that contains a custom channel binding to use for validation. + + + Gets the custom Service Provider Name (SPN) list used to match against a client's SPN. + A that contains the custom SPN list that is used to match against a client's SPN. + + + Indicates whether the operating system supports integrated windows authentication with extended protection. + true if the operating system supports integrated windows authentication with extended protection, otherwise false. + + + Gets when the extended protection policy should be enforced. + A value that indicates when the extended protection policy should be enforced. + + + Gets the kind of protection enforced by the extended protection policy. + A value that indicates the kind of protection enforced by the policy. + + + Populates a object with the required data to serialize an object. + A object that holds the serialized data for an object. + A that contains the destination of the serialized stream that is associated with the new . + + + Gets a string representation for the extended protection policy instance. + A instance that contains the representation of the instance. + + + The class represents the type converter for extended protection policy used by the server to validate incoming client connections. + + + Initializes a new instance of the class. + + + Returns whether this converter can convert the object to the specified type. + true if this converter can perform the conversion; otherwise false. + The object to convert. + A that represents the type you want to convert to. + + + Convert the object to the specified type + An that represents the converted parameter. + An that provides a format context. + A object. If null is passed, the current culture is assumed. + The to convert. This should be a object. + The to convert the value parameter to. + The parameter is null. + The conversion could not be performed. + + + The enumeration specifies when the should be enforced. + + + The is always enforced. Clients that don’t support extended protection will fail to authenticate. + + + The is never enforced and extended protection is disabled. + + + The is enforced only if the client and server supports extended protection. + + + The enumeration specifies the protection scenario enforced by the policy. + + + The transport will select between a secure and standard protection scenario depending on the type of channel used. For secure protection, integrated Windows authentication is wrapped in a secure channel and has an exactly matching channel binding token with no Service Provider Name (SPN) validation. For standard protection, integrated Windows authentication is optionally wrapped in a secure channel with an optional channel binding token and SPN validation is required. So if the request comes through a secure channel, the channel binding token (CBT) is checked, otherwise the SPN is checked. + + + Integrated Windows authentication is wrapped in a secure channel terminated by a trusted proxy and has a channel binding token with SPN validation required. This requires the presence of a CBT, but the CBT is not checked while the SPN is checked. + + + The class is a read-only collection of service principal names. + + + Initializes a new read-only instance of the class based on an existing . + An instance of the class that contains the specified values of service names to be used to initialize the class. + + is null. + + is empty. + + + Returns a value indicating whether the specified string occurs within this instance. + Returns .true if the parameter occurs within this instance; otherwise, false. + The string to seek. + + + Merges the current with the specified values to create a new containing the union. + A new instance that contains the union of the existing instance merged with the specified values. + An instance of the class that contains the specified values of service names to be merged. + + is null. + + is empty. + + + Merges the current with the specified values to create a new containing the union. + A new instance that contains the union of the existing instance merged with the specified values. + A string that contains the specified values of service names to be used to initialize the class. + + is null. + + is empty. + + + The class represents a configuration element for an . + + + Initializes a new instance of the class. + + + The method builds a new instance based on the properties set on the class. + A new instance that represents the extended protection policy created. + + + Gets or sets the custom Service Provider Name (SPN) list used to match against a client's SPN for this configuration policy element. + Returns a that includes the custom SPN list used to match against a client's SPN. + + + Gets or sets the policy enforcement value for this configuration policy element. + Returns a value that indicates when the extended protection policy should be enforced. + + + Gets or sets the kind of protection enforced by the extended protection policy for this configuration policy element. + A value that indicates the kind of protection enforced by the policy. + + + The class represents a configuration element for a service name used in a . + + + Initializes a new instance of the class. + + + Gets or sets the Service Provider Name (SPN) for this instance. + A that contains the representation of SPN for this instance. + + + The class is a collection of service principal names that represent a configuration element for an . + + + Initializes a new instance of the class. + + + The method adds a instance to this . + The instance to add to this . + + + The method removes all configuration element objects from this . + + + The method retrieves the index of the specified configuration element in this . + The index of the specified in this . + The instance to retrieve the index of in this . + + + The property gets or sets the instance at the specified index location. + The instance requested. If the requested instance is not found, then null is returned. + The index of the instance in this . + + + The property gets or sets the instance based on a string that represents the instance. + The instance requested. If the requested instance is not found, then null is returned. + A that represents the instance in this . + + + The method removes a instance from this . + The instance to remove from this . + + is null. + + + The method removes a instance from this based on the specified. + A that represents the instance to remove from this + + + The method removes a instance from this based on the index specified. + The index of the instance to remove from this . + + + The single method, , exposed by this class is obsolete. You can use a object to add claims to a object. + + + You can use a object to add claims to a object. + The claims identity to which to add the claims. + The claims to add. + + + Represents Abstract Syntax Notation One (ASN.1)-encoded data. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using a byte array. + A byte array that contains Abstract Syntax Notation One (ASN.1)-encoded data. + + + Initializes a new instance of the class using an instance of the class. + An instance of the class. + + is null. + + + Initializes a new instance of the class using an object and a byte array. + An object. + A byte array that contains Abstract Syntax Notation One (ASN.1)-encoded data. + + + Initializes a new instance of the class using a byte array. + A string that represents information. + A byte array that contains Abstract Syntax Notation One (ASN.1)-encoded data. + + + Copies information from an object. + The object to base the new object on. + + is null. + + + Returns a formatted version of the Abstract Syntax Notation One (ASN.1)-encoded data as a string. + A formatted string that represents the Abstract Syntax Notation One (ASN.1)-encoded data. + true if the return string should contain carriage returns; otherwise, false. + + + Gets or sets the value for an object. + An object. + + + Gets or sets the Abstract Syntax Notation One (ASN.1)-encoded data represented in a byte array. + A byte array that represents the Abstract Syntax Notation One (ASN.1)-encoded data. + The value is null. + + + Represents a collection of objects. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class and adds an object to the collection. + The object to add to the collection. + + + Adds an object to the object. + The index of the added object. + The object to add to the collection. + + is null. + Neither of the OIDs are null and the OIDs do not match. + One of the OIDs is null and the OIDs do not match. + + + Copies the object into an array. + The array that the object is to be copied into. + The location where the copy operation starts. + + + Gets the number of objects in a collection. + The number of objects. + + + Returns an object that can be used to navigate the object. + An object. + + + Gets a value that indicates whether access to the object is thread safe. + false in all cases. + + + Gets an object from the object. + An object. + The location in the collection. + + + Removes an object from the object. + The object to remove. + + is null. + + + Gets an object that can be used to synchronize access to the object. + An object used to synchronize access to the object. + + + Copies the object into an array. + The array that the object is to be copied into. + The location where the copy operation starts. + + is a multidimensional array, which is not supported by this method. + The length for is invalid. + + is null. + The length for is out of range. + + + Returns an object that can be used to navigate the object. + An object that can be used to navigate the collection. + + + Provides the ability to navigate through an object. This class cannot be inherited. + + + Gets the current object in an object. + The current object in the collection. + + + Advances to the next object in an object. + true, if the enumerator was successfully advanced to the next element; false, if the enumerator has passed the end of the collection. + The collection was modified after the enumerator was created. + + + Sets an enumerator to its initial position. + The collection was modified after the enumerator was created. + + + Gets the current object in an object. + The current object. + + + Represents a cryptographic object identifier. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified object. + The object identifier information to use to create the new object identifier. + + is null. + + + Initializes a new instance of the class using a string value of an object. + An object identifier. + + + Initializes a new instance of the class using the specified value and friendly name. + The dotted number of the identifier. + The friendly name of the identifier. + + + Gets or sets the friendly name of the identifier. + The friendly name of the identifier. + + + Creates an object from an OID friendly name by searching the specified group. + An object that represents the specified OID. + The friendly name of the identifier. + The group to search in. + + is null. + The OID was not found. + + + Creates an object by using the specified OID value and group. + A new instance of an object. + The OID value. + The group to search in. + + is null. + The friendly name for the OID value was not found. + + + Gets or sets the dotted number of the identifier. + The dotted number of the identifier. + + + Represents a collection of objects. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Adds an object to the object. + The index of the added object. + The object to add to the collection. + + + Copies the object into an array. + The array to copy the object into. + The location where the copy operation starts. + + + Gets the number of objects in a collection. + The number of objects in a collection. + + + Returns an object that can be used to navigate the object. + An object. + + + Gets a value that indicates whether access to the object is thread safe. + false in all cases. + + + Gets an object from the object. + An object. + The location of the object in the collection. + + + Gets the first object that contains a value of the property or a value of the property that matches the specified string value from the object. + An object. + A string that represents a property or a property. + + + Gets an object that can be used to synchronize access to the object. + An object that can be used to synchronize access to the object. + + + Copies the object into an array. + The array to copy the object to. + The location where the copy operation starts. + + cannot be a multidimensional array.-or-The length of is an invalid offset length. + + is null. + The value of is out range. + + + Returns an object that can be used to navigate the object. + An object that can be used to navigate the collection. + + + Provides the ability to navigate through an object. This class cannot be inherited. + + + Gets the current object in an object. + The current object in the collection. + + + Advances to the next object in an object. + true, if the enumerator was successfully advanced to the next element; false, if the enumerator has passed the end of the collection. + The collection was modified after the enumerator was created. + + + Sets an enumerator to its initial position. + The collection was modified after the enumerator was created. + + + Gets the current object in an object. + The current object. + + + Identifies Windows cryptographic object identifier (OID) groups. + + + All the groups. + + + The Windows group that is represented by CRYPT_RDN_ATTR_OID_GROUP_ID. + + + The Windows group that is represented by CRYPT_ENCRYPT_ALG_OID_GROUP_ID. + + + The Windows group that is represented by CRYPT_ENHKEY_USAGE_OID_GROUP_ID. + + + The Windows group that is represented by CRYPT_EXT_OR_ATTR_OID_GROUP_ID. + + + The Windows group that is represented by CRYPT_HASH_ALG_OID_GROUP_ID. + + + The Windows group that is represented by CRYPT_KDF_OID_GROUP_ID. + + + The Windows group that is represented by CRYPT_POLICY_OID_GROUP_ID. + + + The Windows group that is represented by CRYPT_PUBKEY_ALG_OID_GROUP_ID. + + + The Windows group that is represented by CRYPT_SIGN_ALG_OID_GROUP_ID. + + + The Windows group that is represented by CRYPT_TEMPLATE_OID_GROUP_ID. + + + Specifies the way to open the X.509 certificate store. + + + Open the X.509 certificate store and include archived certificates. + + + Open the X.509 certificate store for the highest access allowed. + + + Opens only existing stores; if no store exists, the method will not create a new store. + + + Open the X.509 certificate store for reading only. + + + Open the X.509 certificate store for both reading and writing. + + + Represents a certificate's public key information. This class cannot be inherited. + + + Initializes a new instance of the class using an object identifier (OID) object of the public key, an ASN.1-encoded representation of the public key parameters, and an ASN.1-encoded representation of the public key value. + An object identifier (OID) object that represents the public key. + An ASN.1-encoded representation of the public key parameters. + An ASN.1-encoded representation of the public key value. + + + Gets the ASN.1-encoded representation of the public key value. + The ASN.1-encoded representation of the public key value. + + + Gets the ASN.1-encoded representation of the public key parameters. + The ASN.1-encoded representation of the public key parameters. + + + Gets an or object representing the public key. + An object representing the public key. + The key algorithm is not supported. + + + Gets an object identifier (OID) object of the public key. + An object identifier (OID) object of the public key. + + + Specifies the location of the X.509 certificate store. + + + The X.509 certificate store used by the current user. + + + The X.509 certificate store assigned to the local machine. + + + Specifies the name of the X.509 certificate store to open. + + + The X.509 certificate store for other users. + + + The X.509 certificate store for third-party certificate authorities (CAs). + + + The X.509 certificate store for intermediate certificate authorities (CAs). + + + The X.509 certificate store for revoked certificates. + + + The X.509 certificate store for personal certificates. + + + The X.509 certificate store for trusted root certificate authorities (CAs). + + + The X.509 certificate store for directly trusted people and resources. + + + The X.509 certificate store for directly trusted publishers. + + + Represents the distinguished name of an X509 certificate. This class cannot be inherited. + + + Initializes a new instance of the class using information from the specified byte array. + A byte array that contains distinguished name information. + + + Initializes a new instance of the class using the specified object. + An object that represents the distinguished name. + + + Initializes a new instance of the class using the specified object. + An object. + + + Initializes a new instance of the class using information from the specified string. + A string that represents the distinguished name. + + + Initializes a new instance of the class using the specified string and flag. + A string that represents the distinguished name. + A bitwise combination of the enumeration values that specify the characteristics of the distinguished name. + + + Decodes a distinguished name using the characteristics specified by the parameter. + The decoded distinguished name. + A bitwise combination of the enumeration values that specify the characteristics of the distinguished name. + The certificate has an invalid name. + + + Returns a formatted version of an X500 distinguished name for printing or for output to a text window or to a console. + A formatted string that represents the X500 distinguished name. + true if the return string should contain carriage returns; otherwise, false. + + + Gets the comma-delimited distinguished name from an X500 certificate. + The comma-delimited distinguished name of the X509 certificate. + + + Specifies characteristics of the X.500 distinguished name. + + + The distinguished name does not use the plus sign. + + + The distinguished name does not use quotation marks. + + + Forces the distinguished name to encode specific X.500 keys as UTF-8 strings rather than printable Unicode strings. For more information and the list of X.500 keys affected, see the X500NameFlags enumeration. + + + The distinguished name has no special characteristics. + + + The distinguished name is reversed. + + + The distinguished name uses commas. + + + The distinguished name uses the new line character. + + + The distinguished name uses semicolons. + + + The distinguished name uses T61 encoding. + + + The distinguished name uses UTF8 encoding instead of Unicode character encoding. + + + Defines the constraints set on a certificate. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. Parameters specify a value that indicates whether a certificate is a certificate authority (CA) certificate, a value that indicates whether the certificate has a restriction on the number of path levels it allows, the number of levels allowed in a certificate's path, and a value that indicates whether the extension is critical. + true if the certificate is a certificate authority (CA) certificate; otherwise, false. + true if the certificate has a restriction on the number of path levels it allows; otherwise, false. + The number of levels allowed in a certificate's path. + true if the extension is critical; otherwise, false. + + + Initializes a new instance of the class using an object and a value that identifies whether the extension is critical. + The encoded data to use to create the extension. + true if the extension is critical; otherwise, false. + + + Gets a value indicating whether a certificate is a certificate authority (CA) certificate. + true if the certificate is a certificate authority (CA) certificate, otherwise, false. + + + Initializes a new instance of the class using an object. + The encoded data to use to create the extension. + + + Gets a value indicating whether a certificate has a restriction on the number of path levels it allows. + true if the certificate has a restriction on the number of path levels it allows, otherwise, false. + The extension cannot be decoded. + + + Gets the number of levels allowed in a certificate's path. + An integer indicating the number of levels allowed in a certificate's path. + The extension cannot be decoded. + + + Represents an X.509 certificate. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using information from a byte array. + A byte array containing data from an X.509 certificate. + An error with the certificate occurs. For example:The certificate file does not exist.The certificate is invalid.The certificate's password is incorrect. + + + Initializes a new instance of the class using a byte array and a password. + A byte array that contains data from an X.509 certificate. + The password required to access the X.509 certificate data. + An error with the certificate occurs. For example:The certificate file does not exist.The certificate is invalid.The certificate's password is incorrect. + + + Initializes a new instance of the class using a byte array, a password, and a key storage flag. + A byte array that contains data from an X.509 certificate. + The password required to access the X.509 certificate data. + A bitwise combination of the enumeration values that control where and how to import the certificate. + An error with the certificate occurs. For example:The certificate file does not exist.The certificate is invalid.The certificate's password is incorrect. + + + Initializes a new instance of the class using a byte array and a password. + A byte array containing data from an X.509 certificate. + The password required to access the X.509 certificate data. + An error with the certificate occurs. For example:The certificate file does not exist.The certificate is invalid.The certificate's password is incorrect. + + + Initializes a new instance of the class using a byte array, a password, and a key storage flag. + A byte array containing data from an X.509 certificate. + The password required to access the X.509 certificate data. + A bitwise combination of the enumeration values that control where and how to import the certificate. + An error with the certificate occurs. For example:The certificate file does not exist.The certificate is invalid.The certificate's password is incorrect. + + + Initializes a new instance of the class using an unmanaged handle. + A pointer to a certificate context in unmanaged code. The C structure is called PCCERT_CONTEXT. + An error with the certificate occurs. For example:The certificate file does not exist.The certificate is invalid.The certificate's password is incorrect. + + + Initializes a new instance of the class using the specified serialization and stream context information. + The serialization information required to deserialize the new . + Contextual information about the source of the stream to be deserialized. + + + Initializes a new instance of the class using an object. + An object. + An error with the certificate occurs. For example:The certificate file does not exist.The certificate is invalid.The certificate's password is incorrect. + + + Initializes a new instance of the class using a certificate file name. + The name of a certificate file. + An error with the certificate occurs. For example:The certificate file does not exist.The certificate is invalid.The certificate's password is incorrect. + + + Initializes a new instance of the class using a certificate file name and a password. + The name of a certificate file. + The password required to access the X.509 certificate data. + An error with the certificate occurs. For example:The certificate file does not exist.The certificate is invalid.The certificate's password is incorrect. + + + Initializes a new instance of the class using a certificate file name, a password, and a key storage flag. + The name of a certificate file. + The password required to access the X.509 certificate data. + A bitwise combination of the enumeration values that control where and how to import the certificate. + An error with the certificate occurs. For example:The certificate file does not exist.The certificate is invalid.The certificate's password is incorrect. + + + Initializes a new instance of the class using a certificate file name and a password used to access the certificate. + The name of a certificate file. + The password required to access the X.509 certificate data. + An error with the certificate occurs. For example:The certificate file does not exist.The certificate is invalid.The certificate's password is incorrect. + + + Initializes a new instance of the class using a certificate file name, a password used to access the certificate, and a key storage flag. + The name of a certificate file. + The password required to access the X.509 certificate data. + A bitwise combination of the enumeration values that control where and how to import the certificate. + An error with the certificate occurs. For example:The certificate file does not exist.The certificate is invalid.The certificate's password is incorrect. + + + Gets or sets a value indicating that an X.509 certificate is archived. + true if the certificate is archived, false if the certificate is not archived. + The certificate is unreadable. + + + Gets a collection of objects. + An object. + The certificate is unreadable. + + + Gets or sets the associated alias for a certificate. + The certificate's friendly name. + The certificate is unreadable. + + + Indicates the type of certificate contained in a byte array. + An object. + A byte array containing data from an X.509 certificate. + + has a zero length or is null. + + + Indicates the type of certificate contained in a file. + An object. + The name of a certificate file. + + is null. + + + Gets the subject and issuer names from a certificate. + The name of the certificate. + The value for the subject. + true to include the issuer name; otherwise, false. + + + Gets a value that indicates whether an object contains a private key. + true if the object contains a private key; otherwise, false. + The certificate context is invalid. + + + Populates an object with data from a byte array. + A byte array containing data from an X.509 certificate. + + + Populates an object using data from a byte array, a password, and a key storage flag. + A byte array that contains data from an X.509 certificate. + The password required to access the X.509 certificate data. + A bitwise combination of the enumeration values that control where and how to import the certificate. + + + Populates an object using data from a byte array, a password, and flags for determining how to import the private key. + A byte array containing data from an X.509 certificate. + The password required to access the X.509 certificate data. + A bitwise combination of the enumeration values that control where and how to import the certificate. + + + Populates an object with information from a certificate file. + The name of a certificate. + + + Populates an object with information from a certificate file, a password, and a key storage flag. + The name of a certificate file. + The password required to access the X.509 certificate data. + A bitwise combination of the enumeration values that control where and how to import the certificate. + + + Populates an object with information from a certificate file, a password, and a value. + The name of a certificate file. + The password required to access the X.509 certificate data. + A bitwise combination of the enumeration values that control where and how to import the certificate. + + + Gets the distinguished name of the certificate issuer. + An object that contains the name of the certificate issuer. + The certificate context is invalid. + + + Gets the date in local time after which a certificate is no longer valid. + A object that represents the expiration date for the certificate. + The certificate is unreadable. + + + Gets the date in local time on which a certificate becomes valid. + A object that represents the effective date of the certificate. + The certificate is unreadable. + + + Gets or sets the object that represents the private key associated with a certificate. + An object, which is either an RSA or DSA cryptographic service provider. + The key value is not an RSA or DSA key, or the key is unreadable. + The value being set for this property is null. + The key algorithm for this private key is not supported. + The X.509 keys do not match. + The cryptographic service provider key is null. + + + Gets a object associated with a certificate. + A object. + The key value is not an RSA or DSA key, or the key is unreadable. + + + Gets the raw data of a certificate. + The raw data of the certificate as a byte array. + + + Resets the state of an object. + + + Gets the serial number of a certificate. + The serial number of the certificate. + + + Gets the algorithm used to create the signature of a certificate. + Returns the object identifier () of the signature algorithm. + The certificate is unreadable. + + + Gets the subject distinguished name from a certificate. + An object that represents the name of the certificate subject. + The certificate context is invalid. + + + Gets the thumbprint of a certificate. + The thumbprint of the certificate. + + + Displays an X.509 certificate in text format. + The certificate information. + + + Displays an X.509 certificate in text format. + The certificate information. + true to display the public key, private key, extensions, and so forth; false to display information that is similar to the class, including thumbprint, serial number, subject and issuer names, and so on. + + + Performs a X.509 chain validation using basic validation policy. + true if the validation succeeds; false if the validation fails. + The certificate is unreadable. + + + Gets the X.509 format version of a certificate. + The certificate format. + The certificate is unreadable. + + + Represents a collection of objects. This class cannot be inherited. + + + Initializes a new instance of the class without any information. + + + Initializes a new instance of the class using an object. + An object to start the collection from. + + + Initializes a new instance of the class using an array of objects. + An array of objects. + + + Initializes a new instance of the class using the specified certificate collection. + An object. + + + Adds an object to the end of the . + The index at which the has been added. + An X.509 certificate represented as an object. + + is null. + + + Adds multiple objects in an array to the object. + An array of objects. + + is null. + + + Adds multiple objects in an object to another object. + An object. + + is null. + + + Determines whether the object contains a specific certificate. + true if the contains the specified ; otherwise, false. + The object to locate in the collection. + + is null. + + + Exports X.509 certificate information into a byte array. + X.509 certificate information in a byte array. + A supported object. + + + Exports X.509 certificate information into a byte array using a password. + X.509 certificate information in a byte array. + A supported object. + A string used to protect the byte array. + The certificate is unreadable, the content is invalid or, in the case of a certificate requiring a password, the private key could not be exported because the password provided was incorrect. + + + Searches an object using the search criteria specified by the enumeration and the object. + An object. + One of the values. + The search criteria as an object. + true to allow only valid certificates to be returned from the search; otherwise, false. + + is invalid. + + + Returns an enumerator that can iterate through a object. + An object that can iterate through the object. + + + Imports a certificate in the form of a byte array into a object. + A byte array containing data from an X.509 certificate. + + + Imports a certificate, in the form of a byte array that requires a password to access the certificate, into a object. + A byte array containing data from an object. + The password required to access the certificate information. + A bitwise combination of the enumeration values that control how and where the certificate is imported. + + + Imports a certificate file into a object. + The name of the file containing the certificate information. + + + Imports a certificate file that requires a password into a object. + The name of the file containing the certificate information. + The password required to access the certificate information. + A bitwise combination of the enumeration values that control how and where the certificate is imported. + + + Inserts an object into the object at the specified index. + The zero-based index at which to insert . + The object to insert. + + is less than zero.-or- is greater than the property. + The collection is read-only.-or- The collection has a fixed size. + + is null. + + + Gets or sets the element at the specified index. + The element at the specified index. + The zero-based index of the element to get or set. + + is less than zero.-or- is equal to or greater than the property. + + is null. + + + Removes the first occurrence of a certificate from the object. + The object to be removed from the object. + + is null. + + + Removes multiple objects in an array from an object. + An array of objects. + + is null. + + + Removes multiple objects in an object from another object. + An object. + + is null. + + + Supports a simple iteration over a object. This class cannot be inherited. + + + Gets the current element in the object. + The current element in the object. + The enumerator is positioned before the first element of the collection or after the last element. + + + Advances the enumerator to the next element in the object. + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + The collection was modified after the enumerator was created. + + + Sets the enumerator to its initial position, which is before the first element in the object. + The collection was modified after the enumerator was created. + + + For a description of this member, see . + The current element in the object. + The enumerator is positioned before the first element of the collection or after the last element. + + + For a description of this member, see . + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + The collection was modified after the enumerator was created. + + + For a description of this member, see . + The collection was modified after the enumerator was created. + + + Defines a collection that stores objects. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class from an array of objects. + The array of objects with which to initialize the new object. + + + Initializes a new instance of the class from another . + The with which to initialize the new object. + + + Adds an with the specified value to the current . + The index into the current at which the new was inserted. + The to add to the current . + + + Copies the elements of an array of type to the end of the current . + The array of type containing the objects to add to the current . + The parameter is null. + + + Copies the elements of the specified to the end of the current . + The containing the objects to add to the collection. + The parameter is null. + + + Gets a value indicating whether the current contains the specified . + true if the is contained in this collection; otherwise, false. + The to locate. + + + Copies the values in the current to a one-dimensional instance at the specified index. + The one-dimensional that is the destination of the values copied from . + The index into to begin copying. + The parameter is multidimensional.-or- The number of elements in the is greater than the available space between and the end of . + The parameter is null. + The parameter is less than the parameter's lower bound. + + + Returns an enumerator that can iterate through the . + An enumerator of the subelements of you can use to iterate through the collection. + + + Builds a hash value based on all values contained in the current . + A hash value based on all values contained in the current . + + + Returns the index of the specified in the current . + The index of the specified by the parameter in the , if found; otherwise, -1. + The to locate. + + + Inserts a into the current at the specified index. + The zero-based index where should be inserted. + The to insert. + + + Gets or sets the entry at the specified index of the current . + The at the specified index of the current . + The zero-based index of the entry to locate in the current . + The parameter is outside the valid range of indexes for the collection. + + + Removes a specific from the current . + The to remove from the current . + The specified by the parameter is not found in the current . + + + Enumerates the objects in an . + + + Initializes a new instance of the class for the specified . + The to enumerate. + + + Gets the current in the . + The current in the . + The enumerator is positioned before the first element of the collection or after the last element. + + + Advances the enumerator to the next element of the collection. + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + The collection was modified after the enumerator was instantiated. + + + Sets the enumerator to its initial position, which is before the first element in the collection. + The collection is modified after the enumerator is instantiated. + + + For a description of this member, see . + The current X.509 certificate object in the object. + The enumerator is positioned before the first element of the collection or after the last element. + + + For a description of this member, see . + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + The collection was modified after the enumerator was instantiated. + + + For a description of this member, see . + The collection was modified after the enumerator was instantiated. + + + Represents a chain-building engine for certificates. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class specifying a value that indicates whether the machine context should be used. + true to use the machine context; false to use the current user context. + + + Initializes a new instance of the class using an handle to an X.509 chain. + An handle to an X.509 chain. + The parameter is null. + The parameter points to an invalid context. + + + Builds an X.509 chain using the policy specified in . + true if the X.509 certificate is valid; otherwise, false. + An object. + The is not a valid certificate or is null. + The is unreadable. + + + Gets a handle to an X.509 chain. + An handle to an X.509 chain. + + + Gets a collection of objects. + An object. + + + Gets or sets the to use when building an X.509 certificate chain. + The object associated with this X.509 chain. + The value being set for this property is null. + + + Gets the status of each element in an object. + An array of objects. + + + + + + Creates an object after querying for the mapping defined in the CryptoConfig file, and maps the chain to that mapping. + An object. + + + + + + Clears the current object. + + + Represents an element of an X.509 chain. + + + Gets the X.509 certificate at a particular chain element. + An object. + + + Gets the error status of the current X.509 certificate in a chain. + An array of objects. + + + + + + Gets additional error information from an unmanaged certificate chain structure. + A string representing the pwszExtendedErrorInfo member of the unmanaged CERT_CHAIN_ELEMENT structure in the Crypto API. + + + Represents a collection of objects. This class cannot be inherited. + + + Copies an object into an array, starting at the specified index. + An array of objects. + An integer representing the index value. + The specified is less than zero, or greater than or equal to the length of the array. + + is null. + + plus the current count is greater than the length of the array. + + + Gets the number of elements in the collection. + An integer representing the number of elements in the collection. + + + Gets an object that can be used to navigate through a collection of chain elements. + An object. + + + Gets a value indicating whether the collection of chain elements is synchronized. + Always returns false. + + + Gets the object at the specified index. + An object. + An integer value. + + is less than zero. + + is greater than or equal to the length of the collection. + + + Gets an object that can be used to synchronize access to an object. + A pointer reference to the current object. + + + Copies an object into an array, starting at the specified index. + An array to copy the object to. + The index of at which to start copying. + The specified is less than zero, or greater than or equal to the length of the array. + + is null. + + plus the current count is greater than the length of the array. + + + Gets an object that can be used to navigate a collection of chain elements. + An object. + + + Supports a simple iteration over an . This class cannot be inherited. + + + Gets the current element in the . + The current element in the . + The enumerator is positioned before the first element of the collection or after the last element. + + + + + + Advances the enumerator to the next element in the . + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + The collection was modified after the enumerator was created. + + + Sets the enumerator to its initial position, which is before the first element in the . + The collection was modified after the enumerator was created. + + + Gets the current element in the . + The current element in the . + The enumerator is positioned before the first element of the collection or after the last element. + + + Represents the chain policy to be applied when building an X509 certificate chain. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Gets a collection of object identifiers (OIDs) specifying which application policies or enhanced key usages (EKUs) the certificate supports. + An object. + + + Gets a collection of object identifiers (OIDs) specifying which certificate policies the certificate supports. + An object. + + + Represents an additional collection of certificates that can be searched by the chaining engine when validating a certificate chain. + An object. + + + Resets the members to their default values. + + + Gets or sets values for X509 revocation flags. + An object. + The value supplied is not a valid flag. + + + Gets or sets values for X509 certificate revocation mode. + An object. + The value supplied is not a valid flag. + + + Gets the time span that elapsed during online revocation verification or downloading the certificate revocation list (CRL). + A object. + + + Gets verification flags for the certificate. + A value from the enumeration. + The value supplied is not a valid flag. is the default value. + + + The time that the certificate was verified expressed in local time. + A object. + + + Provides a simple structure for storing X509 chain status and error information. + + + Specifies the status of the X509 chain. + An value. + + + Specifies a description of the value. + A localizable string. + + + Defines the status of an X509 chain. + + + Specifies that the certificate trust list (CTL) contains an invalid signature. + + + Specifies that the certificate trust list (CTL) is not valid because of an invalid time value, such as one that indicates that the CTL has expired. + + + Specifies that the certificate trust list (CTL) is not valid for this use. + + + Specifies that the X509 chain could not be built. + + + Specifies that the X509 chain is invalid because a certificate has excluded a name constraint. + + + Specifies that the certificate has an undefined name constraint. + + + Specifies that the certificate has an impermissible name constraint. + + + Specifies that the certificate does not have a supported name constraint or has a name constraint that is unsupported. + + + Specifies that the X509 chain is invalid due to invalid basic constraints. + + + Specifies that the X509 chain is invalid due to an invalid extension. + + + Specifies that the X509 chain is invalid due to invalid name constraints. + + + Specifies that the X509 chain is invalid due to invalid policy constraints. + + + Specifies that the X509 chain has no errors. + + + Specifies that there is no certificate policy extension in the certificate. This error would occur if a group policy has specified that all certificates must have a certificate policy. + + + Specifies that the X509 chain is invalid due to an invalid certificate signature. + + + Deprecated. Specifies that the CA (certificate authority) certificate and the issued certificate have validity periods that are not nested. For example, the CA cert can be valid from January 1 to December 1 and the issued certificate from January 2 to December 2, which would mean the validity periods are not nested. + + + Specifies that the X509 chain is not valid due to an invalid time value, such as a value that indicates an expired certificate. + + + Specifies that the key usage is not valid. + + + Specifies that the online certificate revocation list (CRL) the X509 chain relies on is currently offline. + + + Specifies that the X509 chain could not be built up to the root certificate. + + + Specifies that it is not possible to determine whether the certificate has been revoked. This can be due to the certificate revocation list (CRL) being offline or unavailable. + + + Specifies that the X509 chain is invalid due to a revoked certificate. + + + Specifies that the X509 chain is invalid due to an untrusted root certificate. + + + Defines the collection of object identifiers (OIDs) that indicates the applications that use the key. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using an object and a value that identifies whether the extension is critical. + The encoded data to use to create the extension. + true if the extension is critical; otherwise, false. + + + Initializes a new instance of the class using an and a value that identifies whether the extension is critical. + An collection. + true if the extension is critical; otherwise, false. + The specified contains one or more corrupt values. + + + Initializes a new instance of the class using an object. + The encoded data to use to create the extension. + + + Gets the collection of object identifiers (OIDs) that indicate the applications that use the key. + An object indicating the applications that use the key. + + + + + + Represents an X509 extension. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + The encoded data to be used to create the extension. + true if the extension is critical; otherwise false. + + + Initializes a new instance of the class. + The object identifier used to identify the extension. + The encoded data used to create the extension. + true if the extension is critical; otherwise false. + + is null. + + is an empty string (""). + + + Initializes a new instance of the class. + A string representing the object identifier. + The encoded data used to create the extension. + true if the extension is critical; otherwise false. + + + Copies the extension properties of the specified object. + The to be copied. + + is null. + + does not have a valid X.509 extension. + + + Gets a Boolean value indicating whether the extension is critical. + true if the extension is critical; otherwise, false. + + + Represents a collection of objects. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Adds an object to an object. + The index at which the parameter was added. + An object to add to the object. + The value of the parameter is null. + + + Copies a collection into an array starting at the specified index. + An array of objects. + The location in the array at which copying starts. + + is a zero-length string or contains an invalid value. + + is null. + + specifies a value that is not in the range of the array. + + + Gets the number of objects in a object. + An integer representing the number of objects in the object. + + + Returns an enumerator that can iterate through an object. + An object to use to iterate through the object. + + + Gets a value indicating whether the collection is guaranteed to be thread safe. + true if the collection is thread safe; otherwise, false. + + + Gets the object at the specified index. + An object. + The location of the object to retrieve. + + is less than zero. + + is equal to or greater than the length of the array. + + + Gets the first object whose value or friendly name is specified by an object identifier (OID). + An object. + The object identifier (OID) of the extension to retrieve. + + + Gets an object that you can use to synchronize access to the object. + An object that you can use to synchronize access to the object. + + + Copies the collection into an array starting at the specified index. + An array of objects. + The location in the array at which copying starts. + + is a zero-length string or contains an invalid value. + + is null. + + specifies a value that is not in the range of the array. + + + Returns an enumerator that can iterate through an object. + An object to use to iterate through the object. + + + Supports a simple iteration over a . This class cannot be inherited. + + + Gets the current element in the . + The current element in the . + The enumerator is positioned before the first element of the collection or after the last element. + + + + + + Advances the enumerator to the next element in the . + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + The collection was modified after the enumerator was created. + + + Sets the enumerator to its initial position, which is before the first element in the . + The collection was modified after the enumerator was created. + + + Gets an object from a collection. + The current element in the . + The enumerator is positioned before the first element of the collection or after the last element. + + + Specifies the type of value the method searches for. + + + The parameter for the method must be a string representing either the application policy friendly name or the object identifier (OID, or ) of the certificate. For example, "Encrypting File System" or "1.3.6.1.4.1.311.10.3.4" can be used. For an application that will be localized, the OID value must be used, because the friendly name is localized. + + + The parameter for the method must be a string representing either the friendly name or the object identifier (OID, or ) of the certificate policy. The best practice is to use the OID, such as "1.3.6.1.4.1.311.10.3.4". For an application that will be localized, the OID must be used, because the friendly name is localized. + + + The parameter for the method must be a string describing the extension to find. The object identifier (OID) is most commonly used to direct the method to search for all certificates that have an extension matching that OID value. + + + The parameter for the method must be a string representing the issuer distinguished name of the certificate. This is a more specific search than that provided by the enumeration value. Using the value, the method performs a case-insensitive string comparison for the entire distinguished name. Searching by issuer name is a less precise search. + + + The parameter for the method must be a string representing the issuer name of the certificate. This is a less specific search than that provided by the enumeration value. Using the value, the method performs a case-insensitive string comparison using the supplied value. For example, if you pass "MyCA" to the method, it will find all certificates with the issuer name containing that string, regardless of other issuer values. + + + The parameter for the method must be either a string representing the key usage or an integer representing a bit mask containing all the requested key usages. For the string value, only one key usage at a time can be specified, but the method can be used in a cascading sequence to get the intersection of the requested usages. For example, the parameter can be set to "KeyEncipherment" or an integer (0x30 indicates "KeyEncipherment" and "DataEncipherment"). Values of the enumeration can also be used. + + + The parameter for the method must be a string that represents the serial number of the certificate as displayed by the certificate dialog box, but without the spaces, or as returned by the method. + + + The parameter for the method must be a string representing the subject distinguished name of the certificate. This is a more specific search than that provided by the enumeration value. Using the value, the method performs a case-insensitive string comparison for the entire distinguished name. Searching by subject name is a less precise search. + + + The parameter for the method must be a string representing the subject key identifier in hexadecimal, such as "F3E815D45E83B8477B9284113C64EF208E897112", as displayed in the UI. + + + The parameter for the method must be a string representing the subject name of the certificate. This is a less specific search than that provided by the enumeration value. Using the value, the method performs a case-insensitive string comparison using the supplied value. For example, if you pass "MyCert" to the method, it will find all certificates with the subject name containing that string, regardless of other subject values. Searching by distinguished name is a more precise search. + + + The parameter for the method must be a string representing the template name of the certificate, such as "ClientAuth". A template name is an X509 version 3 extension that specifies the uses of the certificate. + + + The parameter for the method must be a string representing the thumbprint of the certificate. + + + The parameter for the method must be a value in local time. For example, you can find all the certificates that will be valid until the end of the year by eliminating the results of a operation for of the last day of the year from the results of a operation for . + + + The parameter for the method must be a value in local time. The value does not have to be in the future. For example, you can use to find certificates that became valid in the current year by taking the intersection of the results of a operation for for the last day of last year with the results of a operation for of . + + + The parameter for the method must be a value in local time. You can use to find all the currently valid certificates. + + + Specifies how much of the X.509 certificate chain should be included in the X.509 data. + + + Only the end certificate is included in the X.509 chain information. + + + The entire X.509 chain is included except for the root certificate. + + + No X.509 chain information is included. + + + The entire X.509 chain is included. + + + Defines the usage of a key contained within an X.509 certificate. This class cannot be inherited. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using an object and a value that identifies whether the extension is critical. + The encoded data to use to create the extension. + true if the extension is critical; otherwise, false. + + + Initializes a new instance of the class using the specified value and a value that identifies whether the extension is critical. + One of the values that describes how to use the key. + true if the extension is critical; otherwise, false. + + + Initializes a new instance of the class using an object. + The encoded data to use to create the extension. + + + Gets the key usage flag associated with the certificate. + One of the values. + The extension cannot be decoded. + + + Defines how the certificate key can be used. If this value is not defined, the key can be used for any purpose. + + + The key can be used to sign a certificate revocation list (CRL). + + + The key can be used for data encryption. + + + The key can be used for decryption only. + + + The key can be used as a digital signature. + + + The key can be used for encryption only. + + + The key can be used to determine key agreement, such as a key created using the Diffie-Hellman key agreement algorithm. + + + The key can be used to sign certificates. + + + The key can be used for key encryption. + + + No key usage parameters. + + + The key can be used for authentication. + + + Specifies the type of name the X509 certificate contains. + + + The DNS name associated with the alternative name of either the subject or the issuer of an X.509 certificate. This value is equivalent to the value. + + + The DNS name associated with the alternative name of either the subject or issuer of an X509 certificate. + + + The email address of the subject or issuer associated of an X509 certificate. + + + The simple name of a subject or issuer of an X509 certificate. + + + The UPN name of the subject or issuer of an X509 certificate. + + + The URL address associated with the alternative name of either the subject or issuer of an X509 certificate. + + + Specifies which X509 certificates in the chain should be checked for revocation. + + + Only the end certificate is checked for revocation. + + + The entire chain of certificates is checked for revocation. + + + The entire chain, except the root certificate, is checked for revocation. + + + Specifies the mode used to check for X509 certificate revocation. + + + No revocation check is performed on the certificate. + + + A revocation check is made using a cached certificate revocation list (CRL). + + + A revocation check is made using an online certificate revocation list (CRL). + + + Represents an X.509 store, which is a physical store where certificates are persisted and managed. This class cannot be inherited. + + + Initializes a new instance of the class using the personal certificates of the current user store. + + + Initializes a new instance of the class using an Intptr handle to an HCERTSTORE store. + A handle to an HCERTSTORE store. + The parameter is null. + The parameter points to an invalid context. + + + Initializes a new instance of the class using the specified value. + One of the enumeration values that specifies the location of the X.509 certificate store. + + + Initializes a new instance of the class using the specified value. + One of the enumeration values that specifies the name of the X.509 certificate store. + + + Initializes a new instance of the class using the specified and values. + One of the enumeration values that specifies the name of the X.509 certificate store. + One of the enumeration values that specifies the location of the X.509 certificate store. + + is not a valid location or is not a valid name. + + + Initializes a new instance of the class using the specified store name. + A string value that represents the store name. See for more information. + + + Initializes a new instance of the class using a string that represents a value from the enumeration and a value from the enumeration. + A string that represents a value from the enumeration. + One of the enumeration values that specifies the location of the X.509 certificate store. + + contains invalid values. + + + Adds a certificate to an X.509 certificate store. + The certificate to add. + + is null. + The certificate could not be added to the store. + + + Adds a collection of certificates to an X.509 certificate store. + The collection of certificates to add. + + is null. + The caller does not have the required permission. + + + Returns a collection of certificates located in an X.509 certificate store. + A collection of certificates. + + + Closes an X.509 certificate store. + + + Gets the location of the X.509 certificate store. + The location of the certificate store. + + + Gets the name of the X.509 certificate store. + The name of the certificate store. + + + Opens an X.509 certificate store or creates a new store, depending on flag settings. + A bitwise combination of enumeration values that specifies the way to open the X.509 certificate store. + The store is unreadable. + The caller does not have the required permission. + The store contains invalid values. + + + Removes a certificate from an X.509 certificate store. + The certificate to remove. + + is null. + The caller does not have the required permission. + + + Removes a range of certificates from an X.509 certificate store. + A range of certificates to remove. + + is null. + The caller does not have the required permission. + + + Gets an handle to an HCERTSTORE store. + A handle to an HCERTSTORE store. + The store is not open. + + + Defines a string that identifies a certificate's subject key identifier (SKI). This class cannot be inherited. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using a byte array and a value that identifies whether the extension is critical. + A byte array that represents data to use to create the extension. + true if the extension is critical; otherwise, false. + + + Initializes a new instance of the class using encoded data and a value that identifies whether the extension is critical. + The object to use to create the extension. + true if the extension is critical; otherwise, false. + + + Initializes a new instance of the class using a public key and a value indicating whether the extension is critical. + A object to create a subject key identifier (SKI) from. + true if the extension is critical; otherwise, false. + + + Initializes a new instance of the class using a public key, a hash algorithm identifier, and a value indicating whether the extension is critical. + A object to create a subject key identifier (SKI) from. + One of the values that identifies which hash algorithm to use. + true if the extension is critical; otherwise, false. + + + Initializes a new instance of the class using a string and a value that identifies whether the extension is critical. + A string, encoded in hexadecimal format, that represents the subject key identifier (SKI) for a certificate. + true if the extension is critical; otherwise, false. + + + Creates a new instance of the class by copying information from encoded data. + The object to use to create the extension. + + + Gets a string that represents the subject key identifier (SKI) for a certificate. + A string, encoded in hexadecimal format, that represents the subject key identifier (SKI). + The extension cannot be decoded. + + + Defines the type of hash algorithm to use with the class. + + + The subject key identifier (SKI) is composed of a 160-bit SHA-1 hash of the encoded public key (including the tag, length, and number of unused bits). + + + The SKI is composed of the 160-bit SHA-1 hash of the value of the public key (excluding the tag, length, and number of unused bits). + + + The SKI is composed of a four-bit type field with the value 0100, followed by the least significant 60 bits of the SHA-1 hash of the value of the public key (excluding the tag, length, and number of unused bit string bits) + + + Specifies conditions under which verification of certificates in the X509 chain should be conducted. + + + All flags pertaining to verification are included. + + + Ignore that the chain cannot be verified due to an unknown certificate authority (CA). + + + Ignore that the certificate authority revocation is unknown when determining certificate verification. + + + Ignore that the certificate trust list (CTL) is not valid, for reasons such as the CTL has expired, when determining certificate verification. + + + Ignore that the certificate trust list (CTL) signer revocation is unknown when determining certificate verification. + + + Ignore that the end certificate (the user certificate) revocation is unknown when determining certificate verification. + + + Ignore that the basic constraints are not valid when determining certificate verification. + + + Ignore that the certificate has an invalid name when determining certificate verification. + + + Ignore that the certificate has invalid policy when determining certificate verification. + + + Ignore that the CA (certificate authority) certificate and the issued certificate have validity periods that are not nested when verifying the certificate. For example, the CA cert can be valid from January 1 to December 1 and the issued certificate from January 2 to December 2, which would mean the validity periods are not nested. + + + Ignore certificates in the chain that are not valid either because they have expired or they are not yet in effect when determining certificate validity. + + + Ignore that the root revocation is unknown when determining certificate verification. + + + Ignore that the certificate was not issued for the current use when determining certificate verification. + + + No flags pertaining to verification are included. + + + Allows control of code access security permissions. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with the specified level of access to resources at creation. + One of the values. + The parameter is not a valid value of . + + + Adds a permission entry to the permission. + The to add. + The specified is null. + The number of elements in the property is not equal to the number of elements in the property.-or- The is already included in the permission. + + + Specifies the character to be used to represent the any wildcard character. + + + Clears the permission of the added permission entries. + + + Creates and returns an identical copy of the current permission object. + A copy of the current permission object. + + + + + + Reconstructs a security object with a specified state from an XML encoding. + The XML encoding to use to reconstruct the security object. + The parameter is not a valid permission element.-or- The version number of the parameter is not supported. + The parameter is null. + + + Returns an array of the objects added to this permission. + An array of objects that were added to this permission. + + + Creates and returns a permission object that is the intersection of the current permission object and a target permission object. + A new permission object that represents the intersection of the current object and the specified target. This object is null if the intersection is empty. + A permission object of the same type as the current permission object. + The target permission object is not of the same type as the current permission object. + + + Determines whether the current permission object is a subset of the specified permission. + true if the current permission object is a subset of the specified permission object; otherwise, false. + A permission object that is to be tested for the subset relationship. + + + Gets a value indicating whether the permission is unrestricted. + true if permission is unrestricted; otherwise, false. + + + Specifies the character to be used to represent a local reference. + + + Gets or sets an enumeration value that describes the types of access that you are giving the resource. + An enumeration value that is derived from and describes the types of access that you are giving the resource. + The property value is null. + The property value is not an enumeration value. + + + Removes a permission entry from the permission. + The to remove. + The specified is null. + The number of elements in the property is not equal to the number of elements in the property.-or- The is not in the permission. + + + Gets or sets an array of strings that identify the resource you are protecting. + An array of strings that identify the resource you are trying to protect. + The property value is null. + The length of the array is 0. + + + Creates and returns an XML encoding of the security object and its current state. + An XML encoding of the security object, including any state information. + + + Creates a permission object that combines the current permission object and the target permission object. + A new permission object that represents the union of the current permission object and the specified permission object. + A permission object to combine with the current permission object. It must be of the same type as the current permission object. + The permission object is not of the same type as the current permission object. + + + Defines the smallest unit of a code access security permission set. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with the specified permission access and permission access path. + The integer representation of the permission access level enumeration value. The property is set to this value. + The array of strings that identify the resource you are protecting. The property is set to this value. + The specified is null. + + + Gets an integer representation of the access level enumeration value. + The access level enumeration value. + + + Gets an array of strings that identify the resource you are protecting. + An array of strings that identify the resource you are protecting. + + + Controls access to stores containing X.509 certificates. This class cannot be inherited. + + + Initializes a new instance of the class with either fully restricted or unrestricted permission state. + One of the values. + + is not a valid value. + + + Initializes a new instance of the class with the specified access. + A bitwise combination of the values. + + is not a valid combination of values. + + + Creates and returns an identical copy of the current permission. + A copy of the current permission. + + + + + + Gets or sets the type of access allowed by the current permission. + A bitwise combination of the values. + An attempt is made to set this property to an invalid value. See for the valid values. + + + Reconstructs a permission with a specified state from an XML encoding. + A that contains the XML encoding to use to reconstruct the permission. + + is null. + + is not a valid permission element.-or- The version number in is not valid. + + + Creates and returns a permission that is the intersection of the current permission and the specified permission. + A new permission that represents the intersection of the current permission and the specified permission. This new permission is null if the intersection is empty. + A permission to intersect with the current permission. It must be of the same type as the current permission. + + s not null and is not of the same type as the current permission. + + + Determines whether the current permission is a subset of the specified permission. + true if the current permission is a subset of the specified permission; otherwise, false. + A permission to test for the subset relationship. This permission must be of the same type as the current permission. + + is not null and is not of the same type as the current permission. + + + Returns a value indicating whether the current permission is unrestricted. + true if the current permission is unrestricted; otherwise, false. + + + Creates an XML encoding of the permission and its current state. + A that contains an XML encoding of the permission, including any state information. + + + + + + Creates a permission that is the union of the current permission and the specified permission. + A new permission that represents the union of the current permission and the specified permission. + A permission to combine with the current permission. It must be of the same type as the current permission. + + is not null and is not of the same type as the current permission. + + + Allows security actions for to be applied to code using declarative security. This class cannot be inherited. + + + Initializes a new instance of the class with the specified security action. + One of the values. + + + Gets or sets a value indicating whether the code is permitted to add to a store. + true if the ability to add to a store is allowed; otherwise, false. + + + Creates and returns a new . + A that corresponds to the attribute. + + + + + + Gets or sets a value indicating whether the code is permitted to create a store. + true if the ability to create a store is allowed; otherwise, false. + + + Gets or sets a value indicating whether the code is permitted to delete a store. + true if the ability to delete a store is allowed; otherwise, false. + + + Gets or sets a value indicating whether the code is permitted to enumerate the certificates in a store. + true if the ability to enumerate certificates is allowed; otherwise, false. + + + Gets or sets a value indicating whether the code is permitted to enumerate stores. + true if the ability to enumerate stores is allowed; otherwise, false. + + + Gets or sets the store permissions. + A bitwise combination of the values. The default is . + + + Gets or sets a value indicating whether the code is permitted to open a store. + true if the ability to open a store is allowed; otherwise, false. + + + Gets or sets a value indicating whether the code is permitted to remove a certificate from a store. + true if the ability to remove a certificate from a store is allowed; otherwise, false. + + + Specifies the permitted access to X.509 certificate stores. + + + The ability to add a certificate to a store. + + + The ability to perform all certificate and store operations. + + + The ability to create a new store. + + + The ability to delete a store. + + + The ability to enumerate the certificates in a store. + + + The ability to enumerate the stores on a computer. + + + Permission is not given to perform any certificate or store operations. + + + The ability to open a store. + + + The ability to remove a certificate from a store. + + + Defines partial-trust access to the class. + + + Initializes a new instance of the class. + The to request. Only and are valid. + + is not a valid permission state. Only and are valid. + + + Initializes a new instance of the class with the specified permission flags. + The permission flags to request. + + + A copy of the current permission object. + + + Gets or sets the for the type descriptor. + The for the type descriptor. + + + The XML encoding to use to reconstruct the security object. + + + A new permission that represents the intersection of the current permission and the specified permission. This new permission is null if the intersection is empty. + A permission to intersect with the current permission. It must be of the same type as the current permission. + + + true if the current permission is a subset of the specified permission; otherwise, false. + A permission that is to be tested for the subset relationship. This permission must be of the same type as the current permission. + + + Gets a value that indicates whether the type descriptor may be called from partially trusted code. + true if the property is set to ; otherwise, false. + + + An XML encoding of the security object, including any state information. + + + A new permission that represents the union of the current permission and the specified permission. + A permission to combine with the current permission. It must be of the same type as the current permission. + + + Determines the permission flags that apply to a . + + + Initializes a new instance of the class with the specified . + One of the values. + + + A serializable permission object. + + + Gets or sets the for the . + The for the . + + + Gets or sets a value that indicates whether the type descriptor can be accessed from partial trust. + true if the type descriptor can be accessed from partial trust; otherwise, false. + + + Defines permission settings for type descriptors. + + + No permission flags are set on the type descriptor. + + + The type descriptor may be called from partially trusted code. + + + Represents the results from a single successful subexpression capture. + + + The position in the original string where the first character of the captured substring is found. + The zero-based starting position in the original string where the captured substring is found. + + + Gets the length of the captured substring. + The length of the captured substring. + + + Retrieves the captured substring from the input string by calling the property. + The substring that was captured by the match. + + + Gets the captured substring from the input string. + The substring that is captured by the match. + + + Represents the set of captures made by a single capturing group. + + + Copies all the elements of the collection to the given array beginning at the given index. + The array the collection is to be copied into. + The position in the destination array where copying is to begin. + + is null. + + is outside the bounds of . -or- plus is outside the bounds of . + + + Gets the number of substrings captured by the group. + The number of items in the . + + + Provides an enumerator that iterates through the collection. + An object that contains all objects within the . + + + Gets a value that indicates whether the collection is read only. + true in all cases. + + + Gets a value that indicates whether access to the collection is synchronized (thread-safe). + false in all cases. + + + Gets an individual member of the collection. + The captured substring at position in the collection. + Index into the capture collection. + + is less than 0 or greater than . + + + Gets an object that can be used to synchronize access to the collection. + An object that can be used to synchronize access to the collection. + + + Represents the results from a single capturing group. + + + Gets a collection of all the captures matched by the capturing group, in innermost-leftmost-first order (or innermost-rightmost-first order if the regular expression is modified with the option). The collection may have zero or more items. + The collection of substrings matched by the group. + + + Gets a value indicating whether the match is successful. + true if the match is successful; otherwise, false. + + + Returns a Group object equivalent to the one supplied that is safe to share between multiple threads. + A regular expression Group object. + The input object. + + is null. + + + Returns the set of captured groups in a single match. + + + Copies all the elements of the collection to the given array beginning at the given index. + The array the collection is to be copied into. + The position in the destination array where the copying is to begin. + + is null. + + is outside the bounds of .-or- plus is outside the bounds of . + + + Returns the number of groups in the collection. + The number of groups in the collection. + + + Provides an enumerator that iterates through the collection. + An enumerator that contains all objects in the . + + + Gets a value that indicates whether the collection is read-only. + true in all cases. + + + Gets a value that indicates whether access to the is synchronized (thread-safe). + false in all cases. + + + Enables access to a member of the collection by integer index. + The member of the collection specified by . + The zero-based index of the collection member to be retrieved. + + + Enables access to a member of the collection by string index. + The member of the collection specified by . + The name of a capturing group. + + + Gets an object that can be used to synchronize access to the . + A copy of the object to synchronize. + + + Represents the results from a single regular expression match. + + + Gets the empty group. All failed matches return this empty match. + An empty match. + + + Gets a collection of groups matched by the regular expression. + The character groups matched by the pattern. + + + Returns a new object with the results for the next match, starting at the position at which the last match ended (at the character after the last matched character). + The next regular expression match. + A time-out occurred. + + + + + + Returns the expansion of the specified replacement pattern. + The expanded version of the parameter. + The replacement pattern to use. + + is null. + Expansion is not allowed for this pattern. + + + Returns a instance equivalent to the one supplied that is suitable to share between multiple threads. + A regular expression match that is suitable to share between multiple threads. + A regular expression match equivalent to the one expected. + + is null. + + + Represents the set of successful matches found by iteratively applying a regular expression pattern to the input string. + + + Copies all the elements of the collection to the given array starting at the given index. + The array the collection is to be copied into. + The position in the array where copying is to begin. + + is a multi-dimensional array. + + is outside the bounds of .-or- plus is outside the bounds of . + A time-out occurred. + + + Gets the number of matches. + The number of matches. + A time-out occurred. + + + + + + Provides an enumerator that iterates through the collection. + An object that contains all objects within the . + A time-out occurred. + + + Gets a value that indicates whether the collection is read only. + true in all cases. + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + false in all cases. + + + Gets an individual member of the collection. + The captured substring at position in the collection. + Index into the collection. + + is less than 0 or greater than or equal to . + A time-out occurred. + + + Gets an object that can be used to synchronize access to the collection. + An object that can be used to synchronize access to the collection. This property always returns the object itself. + + + Represents the method that is called each time a regular expression match is found during a method operation. + A string returned by the method that is represented by the delegate. + The object that represents a single regular expression match during a method operation. + + + Represents an immutable regular expression. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class by using serialized data. + The object that contains a serialized pattern and information. + The destination for this serialization. (This parameter is not used; specify null.) + A regular expression parsing error occurred. + The pattern that contains is null. + + contains an invalid flag. + + + Initializes a new instance of the class for the specified regular expression. + The regular expression pattern to match. + A regular expression parsing error occurred. + + is null. + + + Initializes a new instance of the class for the specified regular expression, with options that modify the pattern. + The regular expression pattern to match. + A bitwise combination of the enumeration values that modify the regular expression. + A regular expression parsing error occurred. + + is null. + + contains an invalid flag. + + + Initializes a new instance of the class for the specified regular expression, with options that modify the pattern and a value that specifies how long a pattern matching method should attempt a match before it times out. + The regular expression pattern to match. + A bitwise combination of the enumeration values that modify the regular expression. + A time-out interval, or to indicate that the method should not time out. + A regular expression parsing error occurred. + + is null. + + is not a valid value.-or- is negative, zero, or greater than approximately 24 days. + + + Gets or sets the maximum number of entries in the current static cache of compiled regular expressions. + The maximum number of entries in the static cache. + The value in a set operation is less than zero. + + + Used by a object generated by the method. + + + Used by a object generated by the method. + + + Used by a object generated by the method. + + + Used by a object generated by the method. + + + Compiles one or more specified objects to a named assembly. + An array that describes the regular expressions to compile. + The file name of the assembly. + The value of the parameter's property is an empty or null string.-or-The regular expression pattern of one or more objects in contains invalid syntax. + + or is null. + + + + + + + Compiles one or more specified objects to a named assembly with the specified attributes. + An array that describes the regular expressions to compile. + The file name of the assembly. + An array that defines the attributes to apply to the assembly. + The value of the parameter's property is an empty or null string.-or-The regular expression pattern of one or more objects in contains invalid syntax. + + or is null. + + + + + + + Compiles one or more specified objects and a specified resource file to a named assembly with the specified attributes. + An array that describes the regular expressions to compile. + The file name of the assembly. + An array that defines the attributes to apply to the assembly. + The name of the Win32 resource file to include in the assembly. + The value of the parameter's property is an empty or null string.-or-The regular expression pattern of one or more objects in contains invalid syntax. + + or is null. + The parameter designates an invalid Win32 resource file. + The file designated by the parameter cannot be found. + + + + + + + Escapes a minimal set of characters (\, *, +, ?, |, {, [, (,), ^, $,., #, and white space) by replacing them with their escape codes. This instructs the regular expression engine to interpret these characters literally rather than as metacharacters. + A string of characters with metacharacters converted to their escaped form. + The input string that contains the text to convert. + + is null. + + + Used by a object generated by the method. + + + Returns an array of capturing group names for the regular expression. + A string array of group names. + + + + + + Returns an array of capturing group numbers that correspond to group names in an array. + An integer array of group numbers. + + + Gets the group name that corresponds to the specified group number. + A string that contains the group name associated with the specified group number. If there is no group name that corresponds to , the method returns . + The group number to convert to the corresponding group name. + + + Returns the group number that corresponds to the specified group name. + The group number that corresponds to the specified group name, or -1 if is not a valid group name. + The group name to convert to the corresponding group number. + + is null. + + + Specifies that a pattern-matching operation should not time out. + + + Used by a object generated by the method. + References have already been initialized. + + + The maximum amount of time that can elapse in a pattern-matching operation before the operation times out. + + + Indicates whether the regular expression specified in the constructor finds a match in a specified input string. + true if the regular expression finds a match; otherwise, false. + The string to search for a match. + + is null. + A time-out occurred. For more information about time-outs, see the Remarks section. + + + + + + + Indicates whether the regular expression specified in the constructor finds a match in the specified input string, beginning at the specified starting position in the string. + true if the regular expression finds a match; otherwise, false. + The string to search for a match. + The character position at which to start the search. + + is null. + + is less than zero or greater than the length of . + A time-out occurred. For more information about time-outs, see the Remarks section. + + + + + + + Indicates whether the specified regular expression finds a match in the specified input string. + true if the regular expression finds a match; otherwise, false. + The string to search for a match. + The regular expression pattern to match. + A regular expression parsing error occurred. + + or is null. + A time-out occurred. For more information about time-outs, see the Remarks section. + + + + + + + Indicates whether the specified regular expression finds a match in the specified input string, using the specified matching options. + true if the regular expression finds a match; otherwise, false. + The string to search for a match. + The regular expression pattern to match. + A bitwise combination of the enumeration values that provide options for matching. + A regular expression parsing error occurred. + + or is null. + + is not a valid value. + A time-out occurred. For more information about time-outs, see the Remarks section. + + + + + + + Indicates whether the specified regular expression finds a match in the specified input string, using the specified matching options and time-out interval. + true if the regular expression finds a match; otherwise, false. + The string to search for a match. + The regular expression pattern to match. + A bitwise combination of the enumeration values that provide options for matching. + A time-out interval, or to indicate that the method should not time out. + A regular expression parsing error occurred. + + or is null. + + is not a valid value.-or- is negative, zero, or greater than approximately 24 days. + A time-out occurred. + + + Searches the specified input string for the first occurrence of the regular expression specified in the constructor. + An object that contains information about the match. + The string to search for a match. + + is null. + A time-out occurred. For more information about time-outs, see the Remarks section. + + + + + + + Searches the input string for the first occurrence of a regular expression, beginning at the specified starting position in the string. + An object that contains information about the match. + The string to search for a match. + The zero-based character position at which to start the search. + + is null. + + is less than zero or greater than the length of . + A time-out occurred. For more information about time-outs, see the Remarks section. + + + + + + + Searches the input string for the first occurrence of a regular expression, beginning at the specified starting position and searching only the specified number of characters. + An object that contains information about the match. + The string to search for a match. + The zero-based character position in the input string that defines the leftmost position to be searched. + The number of characters in the substring to include in the search. + + is null. + + is less than zero or greater than the length of .-or- is less than zero or greater than the length of .-or-+– 1 identifies a position that is outside the range of . + A time-out occurred. For more information about time-outs, see the Remarks section. + + + + + + + Searches the specified input string for the first occurrence of the specified regular expression. + An object that contains information about the match. + The string to search for a match. + The regular expression pattern to match. + A regular expression parsing error occurred. + + or is null. + A time-out occurred. For more information about time-outs, see the Remarks section. + + + + + + + Searches the input string for the first occurrence of the specified regular expression, using the specified matching options. + An object that contains information about the match. + The string to search for a match. + The regular expression pattern to match. + A bitwise combination of the enumeration values that provide options for matching. + A regular expression parsing error occurred. + + or is null. + + is not a valid bitwise combination of values. + A time-out occurred. For more information about time-outs, see the Remarks section. + + + + + + + Searches the input string for the first occurrence of the specified regular expression, using the specified matching options and time-out interval. + An object that contains information about the match. + The string to search for a match. + The regular expression pattern to match. + A bitwise combination of the enumeration values that provide options for matching. + A time-out interval, or to indicate that the method should not time out. + A regular expression parsing error occurred. + + or is null. + + is not a valid bitwise combination of values.-or- is negative, zero, or greater than approximately 24 days. + A time-out occurred. For more information about time-outs, see the Remarks section. + + + Searches the specified input string for all occurrences of a regular expression. + A collection of the objects found by the search. If no matches are found, the method returns an empty collection object. + The string to search for a match. + + is null. + + + + + + + Searches the specified input string for all occurrences of a regular expression, beginning at the specified starting position in the string. + A collection of the objects found by the search. If no matches are found, the method returns an empty collection object. + The string to search for a match. + The character position in the input string at which to start the search. + + is null. + + is less than zero or greater than the length of . + + + + + + + Searches the specified input string for all occurrences of a specified regular expression. + A collection of the objects found by the search. If no matches are found, the method returns an empty collection object. + The string to search for a match. + The regular expression pattern to match. + A regular expression parsing error occurred. + + or is null. + + + + + + + Searches the specified input string for all occurrences of a specified regular expression, using the specified matching options. + A collection of the objects found by the search. If no matches are found, the method returns an empty collection object. + The string to search for a match. + The regular expression pattern to match. + A bitwise combination of the enumeration values that specify options for matching. + A regular expression parsing error occurred. + + or is null. + + is not a valid bitwise combination of values. + + + + + + + Searches the specified input string for all occurrences of a specified regular expression, using the specified matching options and time-out interval. + A collection of the objects found by the search. If no matches are found, the method returns an empty collection object. + The string to search for a match. + The regular expression pattern to match. + A bitwise combination of the enumeration values that specify options for matching. + A time-out interval, or to indicate that the method should not time out. + A regular expression parsing error occurred. + + or is null. + + is not a valid bitwise combination of values.-or- is negative, zero, or greater than approximately 24 days. + + + Gets the time-out interval of the current instance. + The maximum time interval that can elapse in a pattern-matching operation before a is thrown, or if time-outs are disabled. + + + Gets the options that were passed into the constructor. + One or more members of the enumeration that represent options that were passed to the constructor + + + Used by a object generated by the method. + + + In a specified input string, replaces all strings that match a regular expression pattern with a specified replacement string. + A new string that is identical to the input string, except that the replacement string takes the place of each matched string. If the regular expression pattern is not matched in the current instance, the method returns the current instance unchanged. + The string to search for a match. + The replacement string. + + or is null. + A time-out occurred. For more information about time-outs, see the Remarks section. + + + + + + + In a specified input string, replaces a specified maximum number of strings that match a regular expression pattern with a specified replacement string. + A new string that is identical to the input string, except that the replacement string takes the place of each matched string. If the regular expression pattern is not matched in the current instance, the method returns the current instance unchanged. + The string to search for a match. + The replacement string. + The maximum number of times the replacement can occur. + + or is null. + A time-out occurred. For more information about time-outs, see the Remarks section. + + + + + + + In a specified input substring, replaces a specified maximum number of strings that match a regular expression pattern with a specified replacement string. + A new string that is identical to the input string, except that the replacement string takes the place of each matched string. If the regular expression pattern is not matched in the current instance, the method returns the current instance unchanged. + The string to search for a match. + The replacement string. + Maximum number of times the replacement can occur. + The character position in the input string where the search begins. + + or is null. + + is less than zero or greater than the length of . + A time-out occurred. For more information about time-outs, see the Remarks section. + + + + + + + In a specified input string, replaces all strings that match a specified regular expression with a specified replacement string. + A new string that is identical to the input string, except that the replacement string takes the place of each matched string. If is not matched in the current instance, the method returns the current instance unchanged. + The string to search for a match. + The regular expression pattern to match. + The replacement string. + A regular expression parsing error occurred. + + , , or is null. + A time-out occurred. For more information about time-outs, see the Remarks section. + + + + + + + In a specified input string, replaces all strings that match a specified regular expression with a specified replacement string. Specified options modify the matching operation. + A new string that is identical to the input string, except that the replacement string takes the place of each matched string. If is not matched in the current instance, the method returns the current instance unchanged. + The string to search for a match. + The regular expression pattern to match. + The replacement string. + A bitwise combination of the enumeration values that provide options for matching. + A regular expression parsing error occurred. + + , , or is null. + + is not a valid bitwise combination of values. + A time-out occurred. For more information about time-outs, see the Remarks section. + + + + + + + In a specified input string, replaces all strings that match a specified regular expression with a specified replacement string. Additional parameters specify options that modify the matching operation and a time-out interval if no match is found. + A new string that is identical to the input string, except that the replacement string takes the place of each matched string. If is not matched in the current instance, the method returns the current instance unchanged. + The string to search for a match. + The regular expression pattern to match. + The replacement string. + A bitwise combination of the enumeration values that provide options for matching. + A time-out interval, or to indicate that the method should not time out. + A regular expression parsing error occurred. + + , , or is null. + + is not a valid bitwise combination of values.-or- is negative, zero, or greater than approximately 24 days. + A time-out occurred. For more information about time-outs, see the Remarks section. + + + In a specified input string, replaces all strings that match a specified regular expression with a string returned by a delegate. + A new string that is identical to the input string, except that a replacement string takes the place of each matched string. If is not matched in the current instance, the method returns the current instance unchanged. + The string to search for a match. + The regular expression pattern to match. + A custom method that examines each match and returns either the original matched string or a replacement string. + A regular expression parsing error occurred. + + , , or is null. + A time-out occurred. For more information about time-outs, see the Remarks section. + + + + + + + In a specified input string, replaces all strings that match a specified regular expression with a string returned by a delegate. Specified options modify the matching operation. + A new string that is identical to the input string, except that a replacement string takes the place of each matched string. If is not matched in the current instance, the method returns the current instance unchanged. + The string to search for a match. + The regular expression pattern to match. + A custom method that examines each match and returns either the original matched string or a replacement string. + A bitwise combination of the enumeration values that provide options for matching. + A regular expression parsing error occurred. + + , , or is null. + + is not a valid bitwise combination of values. + A time-out occurred. For more information about time-outs, see the Remarks section. + + + + + + + In a specified input string, replaces all substrings that match a specified regular expression with a string returned by a delegate. Additional parameters specify options that modify the matching operation and a time-out interval if no match is found. + A new string that is identical to the input string, except that the replacement string takes the place of each matched string. If is not matched in the current instance, the method returns the current instance unchanged. + The string to search for a match. + The regular expression pattern to match. + A custom method that examines each match and returns either the original matched string or a replacement string. + A bitwise combination of enumeration values that provide options for matching. + A time-out interval, or to indicate that the method should not time out. + A regular expression parsing error occurred. + + , , or is null. + + is not a valid bitwise combination of values.-or- is negative, zero, or greater than approximately 24 days. + A time-out occurred. For more information about time-outs, see the Remarks section. + + + In a specified input string, replaces all strings that match a specified regular expression with a string returned by a delegate. + A new string that is identical to the input string, except that a replacement string takes the place of each matched string. If the regular expression pattern is not matched in the current instance, the method returns the current instance unchanged. + The string to search for a match. + A custom method that examines each match and returns either the original matched string or a replacement string. + + or is null. + A time-out occurred. For more information about time-outs, see the Remarks section. + + + + + + + In a specified input string, replaces a specified maximum number of strings that match a regular expression pattern with a string returned by a delegate. + A new string that is identical to the input string, except that a replacement string takes the place of each matched string. If the regular expression pattern is not matched in the current instance, the method returns the current instance unchanged. + The string to search for a match. + A custom method that examines each match and returns either the original matched string or a replacement string. + The maximum number of times the replacement will occur. + + or is null. + A time-out occurred. For more information about time-outs, see the Remarks section. + + + + + + + In a specified input substring, replaces a specified maximum number of strings that match a regular expression pattern with a string returned by a delegate. + A new string that is identical to the input string, except that a replacement string takes the place of each matched string. If the regular expression pattern is not matched in the current instance, the method returns the current instance unchanged. + The string to search for a match. + A custom method that examines each match and returns either the original matched string or a replacement string. + The maximum number of times the replacement will occur. + The character position in the input string where the search begins. + + or is null. + + is less than zero or greater than the length of . + A time-out occurred. For more information about time-outs, see the Remarks section. + + + + + + + Gets a value that indicates whether the regular expression searches from right to left. + true if the regular expression searches from right to left; otherwise, false. + + + Used by a object generated by the method. + + + Splits an input string into an array of substrings at the positions defined by a regular expression pattern specified in the constructor. + An array of strings. + The string to split. + + is null. + A time-out occurred. For more information about time-outs, see the Remarks section. + + + + + + + Splits an input string a specified maximum number of times into an array of substrings, at the positions defined by a regular expression specified in the constructor. + An array of strings. + The string to be split. + The maximum number of times the split can occur. + + is null. + A time-out occurred. For more information about time-outs, see the Remarks section. + + + + + + + Splits an input string a specified maximum number of times into an array of substrings, at the positions defined by a regular expression specified in the constructor. The search for the regular expression pattern starts at a specified character position in the input string. + An array of strings. + The string to be split. + The maximum number of times the split can occur. + The character position in the input string where the search will begin. + + is null. + + is less than zero or greater than the length of . + A time-out occurred. For more information about time-outs, see the Remarks section. + + + + + + + Splits an input string into an array of substrings at the positions defined by a regular expression pattern. + An array of strings. + The string to split. + The regular expression pattern to match. + A regular expression parsing error occurred. + + or is null. + A time-out occurred. For more information about time-outs, see the Remarks section. + + + + + + + Splits an input string into an array of substrings at the positions defined by a specified regular expression pattern. Specified options modify the matching operation. + An array of strings. + The string to split. + The regular expression pattern to match. + A bitwise combination of the enumeration values that provide options for matching. + A regular expression parsing error occurred. + + or is null. + + is not a valid bitwise combination of values. + A time-out occurred. For more information about time-outs, see the Remarks section. + + + + + + + Splits an input string into an array of substrings at the positions defined by a specified regular expression pattern. Additional parameters specify options that modify the matching operation and a time-out interval if no match is found. + A string array. + The string to split. + The regular expression pattern to match. + A bitwise combination of the enumeration values that provide options for matching. + A time-out interval, or to indicate that the method should not time out. + A regular expression parsing error occurred. + + or is null. + + is not a valid bitwise combination of values.-or- is negative, zero, or greater than approximately 24 days. + A time-out occurred. For more information about time-outs, see the Remarks section. + + + Populates a object with the data necessary to deserialize the current object. + The object to populate with serialization information. + The place to store and retrieve serialized data. This parameter is reserved for future use. + + + Returns the regular expression pattern that was passed into the Regex constructor. + The parameter that was passed into the Regex constructor. + + + Converts any escaped characters in the input string. + A string of characters with any escaped characters converted to their unescaped form. + The input string containing the text to convert. + + includes an unrecognized escape sequence. + + is null. + + + Used by a object generated by the method. + true if the property contains the option; otherwise, false. + + + Used by a object generated by the method. + true if the property contains the option; otherwise, false. + + + Checks whether a time-out interval is within an acceptable range. + The time-out interval to check. + + + Provides information about a regular expression that is used to compile a regular expression to a stand-alone assembly. + + + Initializes a new instance of the class that contains information about a regular expression to be included in an assembly. + The regular expression to compile. + The regular expression options to use when compiling the regular expression. + The name of the type that represents the compiled regular expression. + The namespace to which the new type belongs. + true to make the compiled regular expression publicly visible; otherwise, false. + + is . + + is null.-or- is null.-or- is null. + + + Initializes a new instance of the class that contains information about a regular expression with a specified time-out value to be included in an assembly. + The regular expression to compile. + The regular expression options to use when compiling the regular expression. + The name of the type that represents the compiled regular expression. + The namespace to which the new type belongs. + true to make the compiled regular expression publicly visible; otherwise, false. + The default time-out interval for the regular expression. + + is . + + is null.-or- is null.-or- is null. + + is negative, zero, or greater than approximately 24 days. + + + Gets or sets a value that indicates whether the compiled regular expression has public visibility. + true if the regular expression has public visibility; otherwise, false. + + + Gets or sets the regular expression's default time-out interval. + The default maximum time interval that can elapse in a pattern-matching operation before a is thrown, or if time-outs are disabled. + + + Gets or sets the name of the type that represents the compiled regular expression. + The name of the new type. + The value for this property is null. + The value for this property is an empty string. + + + Gets or sets the namespace to which the new type belongs. + The namespace of the new type. + The value for this property is null. + + + Gets or sets the options to use when compiling the regular expression. + A bitwise combination of the enumeration values. + + + Gets or sets the regular expression to compile. + The regular expression to compile. + The value for this property is null. + + + The exception that is thrown when the execution time of a regular expression pattern-matching method exceeds its time-out interval. + + + Initializes a new instance of the class with a system-supplied message. + + + Initializes a new instance of the class with serialized data. + The object that contains the serialized data. + The stream that contains the serialized data. + + + Initializes a new instance of the class with the specified message string. + A string that describes the exception. + + + Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. + A string that describes the exception. + The exception that is the cause of the current exception. + + + Initializes a new instance of the class with information about the regular expression pattern, the input text, and the time-out interval. + The input text processed by the regular expression engine when the time-out occurred. + The pattern used by the regular expression engine when the time-out occurred. + The time-out interval. + + + Gets the input text that the regular expression engine was processing when the time-out occurred. + The regular expression input text. + + + Gets the time-out interval for a regular expression match. + The time-out interval. + + + Gets the regular expression pattern that was used in the matching operation when the time-out occurred. + The regular expression pattern. + + + Populates a object with the data needed to serialize a object. + The object to populate with data. + The destination for this serialization. + + + Provides enumerated values to use to set regular expression options. + + + Specifies that the regular expression is compiled to an assembly. This yields faster execution but increases startup time. This value should not be assigned to the property when calling the method. + + + Specifies that cultural differences in language is ignored. See Regular Expression Options for more information. + + + Enables ECMAScript-compliant behavior for the expression. This value can be used only in conjunction with the , , and values. The use of this value with any other values results in an exception. + + + Specifies that the only valid captures are explicitly named or numbered groups of the form (?<name>…). This allows unnamed parentheses to act as noncapturing groups without the syntactic clumsiness of the expression (?:…). + + + Specifies case-insensitive matching. + + + Eliminates unescaped white space from the pattern and enables comments marked with #. However, the value does not affect or eliminate white space in character classes. + + + Multiline mode. Changes the meaning of ^ and $ so they match at the beginning and end, respectively, of any line, and not just the beginning and end of the entire string. + + + Specifies that no options are set. + + + Specifies that the search will be from right to left instead of from left to right. + + + Specifies single-line mode. Changes the meaning of the dot (.) so it matches every character (instead of every character except \n). + + + The class is the base class for compiled regular expressions. + + + Initializes a new instance of the class. + + + Used by a object generated by the method. + + + Used by a object generated by the method. Determines whether a character is in a character class. + true if the parameter is in the character class specified by the parameter. + A character to test. + The internal name of a character class. + + + Used by a object generated by the method. + Returns . + + + Used by a object generated by the method. + + + Used by a object generated by the method. + + + Used by a object generated by the method. + Returns . + + + Used by a object generated by the method. + + + Used by a object generated by the method. + + + Used by a object generated by the method. + + + Used by a object generated by the method. + + + Used by a object generated by the method. + Returns . + + + Used by a object generated by the method. + + + Used by a object generated by the method. + + + Used by a object generated by the method. + Returns . + + + Used by a object generated by the method. + Returns . + + + Used by a object generated by the method. + Returns . + + + Used by a object generated by the method. + Returns . + + + Used by a object generated by the method. + Returns . + + + Used by a object generated by the method. + Returns . + + + Used by a object generated by the method. + + + Used by a object generated by the method. + + + Used by a object generated by the method. + + + Used by a object generated by the method. + + + Used by a object generated by the method. + + + Used by a object generated by the method. + + + Used by a object generated by the method. + + + Used by a object generated by the method. + + + Used by a object generated by the method. + + + Used by a object generated by the method. + + + Used by a object generated by the method. + + + Used by a object generated by the method. + + + Used by a object generated by the method. + + + Used by a object generated by the method. + + + Returns . + + + Used by a object generated by the method. + Returns . + + + Used by a object generated by the method. + + + Used by a object generated by the method. + + + Creates a class for a compiled regular expression. + + + Initializes a new instance of the class. + + + When overridden in a derived class, creates a object for a specific compiled regular expression. + A object designed to execute a specific compiled regular expression. + + + Enables multiple tasks to cooperatively work on an algorithm in parallel through multiple phases. + + + Initializes a new instance of the class. + The number of participating threads. + + is less than 0 or greater than 32,767. + + + Initializes a new instance of the class. + The number of participating threads. + The to be executed after each phase. null (Nothing in Visual Basic) may be passed to indicate no action is taken. + + is less than 0 or greater than 32,767. + + + Notifies the that there will be an additional participant. + The phase number of the barrier in which the new participants will first participate. + The current instance has already been disposed. + Adding a participant would cause the barrier's participant count to exceed 32,767.-or-The method was invoked from within a post-phase action. + + + Notifies the that there will be additional participants. + The phase number of the barrier in which the new participants will first participate. + The number of additional participants to add to the barrier. + The current instance has already been disposed. + + is less than 0.-or-Adding participants would cause the barrier's participant count to exceed 32,767. + The method was invoked from within a post-phase action. + + + Gets the number of the barrier's current phase. + Returns the number of the barrier's current phase. + + + Releases all resources used by the current instance of the class. + The method was invoked from within a post-phase action. + + + Releases the unmanaged resources used by the , and optionally releases the managed resources. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Gets the total number of participants in the barrier. + Returns the total number of participants in the barrier. + + + Gets the number of participants in the barrier that haven’t yet signaled in the current phase. + Returns the number of participants in the barrier that haven’t yet signaled in the current phase. + + + Notifies the that there will be one less participant. + The current instance has already been disposed. + The barrier already has 0 participants.-or-The method was invoked from within a post-phase action. + + + Notifies the that there will be fewer participants. + The number of additional participants to remove from the barrier. + The current instance has already been disposed. + + is less than 0. + The barrier already has 0 participants.-or-The method was invoked from within a post-phase action. -or-current participant count is less than the specified participantCount + The total participant count is less than the specified + + + Signals that a participant has reached the barrier and waits for all other participants to reach the barrier as well. + The current instance has already been disposed. + The method was invoked from within a post-phase action, the barrier currently has 0 participants, or the barrier is signaled by more threads than are registered as participants. + If an exception is thrown from the post phase action of a Barrier after all participating threads have called SignalAndWait, the exception will be wrapped in a BarrierPostPhaseException and be thrown on all participating threads. + + + Signals that a participant has reached the barrier and waits for all other participants to reach the barrier as well, using a 32-bit signed integer to measure the timeout. + if all participants reached the barrier within the specified time; otherwise false. + The number of milliseconds to wait, or (-1) to wait indefinitely. + The current instance has already been disposed. + + is a negative number other than -1, which represents an infinite time-out. + The method was invoked from within a post-phase action, the barrier currently has 0 participants, or the barrier is signaled by more threads than are registered as participants. + If an exception is thrown from the post phase action of a Barrier after all participating threads have called SignalAndWait, the exception will be wrapped in a BarrierPostPhaseException and be thrown on all participating threads. + + + Signals that a participant has reached the barrier and waits for all other participants to reach the barrier as well, using a 32-bit signed integer to measure the timeout, while observing a cancellation token. + if all participants reached the barrier within the specified time; otherwise false + The number of milliseconds to wait, or (-1) to wait indefinitely. + The to observe. + + has been canceled. + The current instance has already been disposed. + + is a negative number other than -1, which represents an infinite time-out. + The method was invoked from within a post-phase action, the barrier currently has 0 participants, or the barrier is signaled by more threads than are registered as participants. + + + Signals that a participant has reached the barrier and waits for all other participants to reach the barrier, while observing a cancellation token. + The to observe. + + has been canceled. + The current instance has already been disposed. + The method was invoked from within a post-phase action, the barrier currently has 0 participants, or the barrier is signaled by more threads than are registered as participants. + + + Signals that a participant has reached the barrier and waits for all other participants to reach the barrier as well, using a object to measure the time interval. + true if all other participants reached the barrier; otherwise, false. + A that represents the number of milliseconds to wait, or a that represents -1 milliseconds to wait indefinitely. + The current instance has already been disposed. + + is a negative number other than -1 milliseconds, which represents an infinite time-out, or it is greater than 32,767. + The method was invoked from within a post-phase action, the barrier currently has 0 participants, or the barrier is signaled by more threads than are registered as participants. + + + Signals that a participant has reached the barrier and waits for all other participants to reach the barrier as well, using a object to measure the time interval, while observing a cancellation token. + true if all other participants reached the barrier; otherwise, false. + A that represents the number of milliseconds to wait, or a that represents -1 milliseconds to wait indefinitely. + The to observe. + + has been canceled. + The current instance has already been disposed. + + is a negative number other than -1 milliseconds, which represents an infinite time-out. + The method was invoked from within a post-phase action, the barrier currently has 0 participants, or the barrier is signaled by more threads than are registered as participants. + + + The exception that is thrown when the post-phase action of a fails + + + Initializes a new instance of the class with a system-supplied message that describes the error. + + + Initializes a new instance of the class with the specified inner exception. + The exception that is the cause of the current exception. + + + Initializes a new instance of the class with serialized data. + The object that holds the serialized object data. + The contextual information about the source or destination. + + + Initializes a new instance of the class with a specified message that describes the error. + The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture. + + + Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. + The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture. + The exception that is the cause of the current exception. If the parameter is not null, the current exception is raised in a catch block that handles the inner exception. + + + Limits the number of threads that can access a resource or pool of resources concurrently. + 1 + + + Initializes a new instance of the class, specifying the maximum number of concurrent entries and optionally reserving some entries. + The initial number of requests for the semaphore that can be granted concurrently. + The maximum number of requests for the semaphore that can be granted concurrently. + + is greater than . + + is less than 1.-or- is less than 0. + + + Initializes a new instance of the class, specifying the maximum number of concurrent entries, optionally reserving some entries for the calling thread, and optionally specifying the name of a system semaphore object. + The initial number of requests for the semaphore that can be granted concurrently. + The maximum number of requests for the semaphore that can be granted concurrently. + The name of a named system semaphore object. + + is greater than .-or- is longer than 260 characters. + + is less than 1.-or- is less than 0. + A Win32 error occurred. + The named semaphore exists and has access control security, and the user does not have . + The named semaphore cannot be created, perhaps because a wait handle of a different type has the same name. + + + Initializes a new instance of the class, specifying the maximum number of concurrent entries, optionally reserving some entries for the calling thread, optionally specifying the name of a system semaphore object, and specifying a variable that receives a value indicating whether a new system semaphore was created. + The initial number of requests for the semaphore that can be satisfied concurrently. + The maximum number of requests for the semaphore that can be satisfied concurrently. + The name of a named system semaphore object. + When this method returns, contains true if a local semaphore was created (that is, if is null or an empty string) or if the specified named system semaphore was created; false if the specified named system semaphore already existed. This parameter is passed uninitialized. + + is greater than . -or- is longer than 260 characters. + + is less than 1.-or- is less than 0. + A Win32 error occurred. + The named semaphore exists and has access control security, and the user does not have . + The named semaphore cannot be created, perhaps because a wait handle of a different type has the same name. + + + Initializes a new instance of the class, specifying the maximum number of concurrent entries, optionally reserving some entries for the calling thread, optionally specifying the name of a system semaphore object, specifying a variable that receives a value indicating whether a new system semaphore was created, and specifying security access control for the system semaphore. + The initial number of requests for the semaphore that can be satisfied concurrently. + The maximum number of requests for the semaphore that can be satisfied concurrently. + The name of a named system semaphore object. + When this method returns, contains true if a local semaphore was created (that is, if is null or an empty string) or if the specified named system semaphore was created; false if the specified named system semaphore already existed. This parameter is passed uninitialized. + A object that represents the access control security to be applied to the named system semaphore. + + is greater than .-or- is longer than 260 characters. + + is less than 1.-or- is less than 0. + The named semaphore exists and has access control security, and the user does not have . + A Win32 error occurred. + The named semaphore cannot be created, perhaps because a wait handle of a different type has the same name. + + + Gets the access control security for a named system semaphore. + A object that represents the access control security for the named system semaphore. + The current object represents a named system semaphore, and the user does not have rights.-or-The current object represents a named system semaphore and was not opened with rights. + Not supported for Windows 98 or Windows Millennium Edition. + 1 + + + Opens the specified named semaphore, if it already exists. + An object that represents the named system semaphore. + The name of the system semaphore to open. + + is an empty string.-or- is longer than 260 characters. + + is null. + The named semaphore does not exist. + A Win32 error occurred. + The named semaphore exists, but the user does not have the security access required to use it. + 1 + + + + + + Opens the specified named semaphore, if it already exists, with the desired security access. + An object that represents the named system semaphore. + The name of the system semaphore to open. + A bitwise combination of the enumeration values that represent the desired security access. + + is an empty string.-or- is longer than 260 characters. + + is null. + The named semaphore does not exist. + A Win32 error occurred. + The named semaphore exists, but the user does not have the desired security access rights. + 1 + + + Exits the semaphore and returns the previous count. + The count on the semaphore before the method was called. + The semaphore count is already at the maximum value. + A Win32 error occurred with a named semaphore. + The current semaphore represents a named system semaphore, but the user does not have .-or-The current semaphore represents a named system semaphore, but it was not opened with . + 1 + + + Exits the semaphore a specified number of times and returns the previous count. + The count on the semaphore before the method was called. + The number of times to exit the semaphore. + + is less than 1. + The semaphore count is already at the maximum value. + A Win32 error occurred with a named semaphore. + The current semaphore represents a named system semaphore, but the user does not have rights.-or-The current semaphore represents a named system semaphore, but it was not opened with rights. + 1 + + + Sets the access control security for a named system semaphore. + A object that represents the access control security to be applied to the named system semaphore. + + is null. + The user does not have rights.-or-The semaphore was not opened with rights. + The current object does not represent a named system semaphore. + 1 + + + Opens the specified named semaphore, if it already exists, with the desired security access, and returns a value that indicates whether the operation succeeded. + true if the named semaphore was opened successfully; otherwise, false. + The name of the system semaphore to open. + A bitwise combination of the enumeration values that represent the desired security access. + When this method returns, contains a object that represents the named semaphore if the call succeeded, or null if the call failed. This parameter is treated as uninitialized. + + is an empty string.-or- is longer than 260 characters. + + is null. + A Win32 error occurred. + The named semaphore exists, but the user does not have the security access required to use it. + + + Opens the specified named semaphore, if it already exists, and returns a value that indicates whether the operation succeeded. + true if the named semaphore was opened successfully; otherwise, false. + The name of the system semaphore to open. + When this method returns, contains a object that represents the named semaphore if the call succeeded, or null if the call failed. This parameter is treated as uninitialized. + + is an empty string.-or- is longer than 260 characters. + + is null. + A Win32 error occurred. + The named semaphore exists, but the user does not have the security access required to use it. + + + Provides data for the event. + 2 + + + Initializes a new instance of the class. + The that occurred. + + + Gets the that occurred. + The that occurred. + 1 + + + Represents the method that will handle the event of an . + The source of the event. + A that contains the event data. + 2 + + + Provides data for the event. + + + Gets the time the event was raised. + The time the event was raised. + + + Represents the method that will handle the event of a . + The source of the event. + An object that contains the event data. + + + Generates recurring events in an application. + + + Initializes a new instance of the class, and sets all the properties to their initial values. + + + Initializes a new instance of the class, and sets the property to the specified number of milliseconds. + The time, in milliseconds, between events. The value must be greater than zero and less than or equal to . + The value of the parameter is less than or equal to zero, or greater than . + + + Gets or sets a value indicating whether the should raise the event each time the specified interval elapses or only after the first time it elapses. + true if the should raise the event each time the interval elapses; false if it should raise the event only once, after the first time the interval elapses. The default is true. + + + Begins the run-time initialization of a that is used on a form or by another component. + + + Releases the resources used by the . + + + Releases all resources used by the current . + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Occurs when the interval elapses. + + + Gets or sets a value indicating whether the should raise the event. + true if the should raise the event; otherwise, false. The default is false. + This property cannot be set because the timer has been disposed. + The property was set to a value greater than before the timer was enabled. + + + Ends the run-time initialization of a that is used on a form or by another component. + + + + + + Gets or sets the interval at which to raise the event. + The time, in milliseconds, between events. The value must be greater than zero, and less than or equal to . The default is 100 milliseconds. + The interval is less than or equal to zero.-or-The interval is greater than , and the timer is currently enabled. (If the timer is not currently enabled, no exception is thrown until it becomes enabled.) + + + Gets or sets the site that binds the to its container in design mode. + An interface representing the site that binds the object to its container. + + + Starts raising the event by setting to true. + The is created with an interval equal to or greater than + 1, or set to an interval less than zero. + + + + + + Stops raising the event by setting to false. + + + + + + Gets or sets the object used to marshal event-handler calls that are issued when an interval has elapsed. + The representing the object used to marshal the event-handler calls that are issued when an interval has elapsed. The default is null. + + + Sets the description that visual designers can display when referencing an event, extender, or property. + + + Initializes a new instance of the class. + The description to use. + + + Gets the description that visual designers can display when referencing an event, extender, or property. + The description for the event, extender, or property. + + + Controls access permissions in ASP.NET hosted environments. This class cannot be inherited. + + + Initializes a new instance of the class with the specified enumeration value. + A enumeration value. + + is not set to one of the enumeration values. + + + Initializes a new instance of the class with the specified permission level. + An enumeration value. + + + When implemented by a derived class, creates and returns an identical copy of the current permission object. + A copy of the current permission object. + + + Reconstructs a permission object with a specified state from an XML encoding. + The containing the XML encoding to use to reconstruct the permission object. + + is null. + The property of is not equal to "IPermission". - or- The class of is null or an empty string (""). + + + When implemented by a derived class, creates and returns a permission that is the intersection of the current permission and the specified permission. + An that represents the intersection of the current permission and the specified permission; otherwise, null if the intersection is empty. + A permission to combine with the current permission. It must be of the same type as the current permission. + + is not an . + + + Returns a value indicating whether the current permission is a subset of the specified permission. + true if the current is a subset of the specified ; otherwise, false. + The to combine with the current permission. It must be of the same type as the current . + + is not an . + + + Returns a value indicating whether unrestricted access to the resource that is protected by the current permission is allowed. + true if unrestricted use of the resource protected by the permission is allowed; otherwise, false. + + + Gets or sets the current hosting permission level for an ASP.NET application. + One of the enumeration values. + + + Creates an XML encoding of the permission object and its current state. + A containing the XML encoding of the permission object, including any state information. + + + Creates a permission that is the union of the current permission and the specified permission. + An that represents the union of the current permission and the specified permission. + A permission to combine with the current permission. It must be of the same type as the current permission. + + is not an . + + + Allows security actions for to be applied to code using declarative security. This class cannot be inherited. + + + Initializes a new instance of the class. + One of the enumeration values. + + + Creates a new with the permission level previously set by the property. + An that is the new . + + + + + + Gets or sets the current hosting permission level. + One of the enumeration values. + + + Specifies the trust level that is granted to an ASP.NET Web application. + + + Indicates that features protected with a demand for any level less than or equal to the High trust level will succeed. This level is intended for highly trusted managed-code applications that need to use most of the managed permissions that support semi-trusted access. It does not grant some of the highest permissions (for example, the ability to call into native code), but it does provide a way to run trusted applications with least privilege or to provide some level of constraints for highly trusted applications. This level is granted by configuring at least the trust level in the trust section in a configuration file. + + + Indicates that features protected with a demand for any level less than or equal to the level will succeed. This level is intended to allow read-only access to limited resources in a constrained environment. This level is granted by specifying the trust level in the trust section in a configuration file. + + + Indicates that features protected with a demand for any level less than or equal to the level will succeed. This level is granted by configuring at least the trust level in the trust section in a configuration file. + + + Indicates that features protected with a demand for the level will succeed. This level allows code to execute but not to interact with resources present on the system. This level is granted by configuring at least the trust level using the trust section in a configuration file. + + + Indicates that no permission is granted. All demands for will fail. + + + Indicates that all demands for permission to use all features of an application will be granted. This is equivalent to granting Full trust level in the trust section in a configuration file. + + + Defines a command. + + + Defines the method that determines whether the command can execute in its current state. + true if this command can be executed; otherwise, false. + Data used by the command. If the command does not require data to be passed, this object can be set to null. + + + Occurs when changes occur that affect whether or not the command should execute. + + + Defines the method to be called when the command is invoked. + Data used by the command. If the command does not require data to be passed, this object can be set to null. + + + Identifies the class that a type or property should use when it is serialized. + + + Initializes a new instance of the class, using an assembly qualified type name string. + The assembly qualified type name string for the class to use. + + + Initializes a new instance of the class, using the specified type. + A type that represents the type of the class. + + + Gets the type of the class reported by this attribute. + The type of the . + + + Gets the assembly qualified name of the type for this type or property. + The assembly qualified name of the type. + + + \ No newline at end of file diff --git a/Bin/Debug/SuperDesign/UserDb/FindReplace.ini b/Bin/Debug/SuperDesign/UserDb/FindReplace.ini new file mode 100644 index 0000000..a276230 --- /dev/null +++ b/Bin/Debug/SuperDesign/UserDb/FindReplace.ini @@ -0,0 +1,9 @@ +[FileFind] +Exts=*.cs;*.sln;*.csproj +SkipDirName_On=1 +SkipDirName_Text=debug;.git +SearchSubDir=1 +IgnoreBinExt=1 +SearchHiddenDir=0 +LimitFileSize_On=1 +LimitFileSize_Value=20 diff --git a/Bin/Debug/SuperDesign/UserDb/MyDb.dat b/Bin/Debug/SuperDesign/UserDb/MyDb.dat index 188139b..49c54bd 100644 Binary files a/Bin/Debug/SuperDesign/UserDb/MyDb.dat and b/Bin/Debug/SuperDesign/UserDb/MyDb.dat differ diff --git a/Bin/Debug/SuperDesign/UserDb/history.dat b/Bin/Debug/SuperDesign/UserDb/history.dat new file mode 100644 index 0000000..c1fb64c Binary files /dev/null and b/Bin/Debug/SuperDesign/UserDb/history.dat differ diff --git a/Bin/Debug/SuperDesign/WeifenLuo.WinFormsUI.Docking.ThemeVS2015.dll b/Bin/Debug/SuperDesign/WeifenLuo.WinFormsUI.Docking.ThemeVS2015.dll deleted file mode 100644 index 3d97c2c..0000000 Binary files a/Bin/Debug/SuperDesign/WeifenLuo.WinFormsUI.Docking.ThemeVS2015.dll and /dev/null differ diff --git a/Bin/Debug/SuperDesign/WeifenLuo.WinFormsUI.Docking.dll b/Bin/Debug/SuperDesign/WeifenLuo.WinFormsUI.Docking.dll deleted file mode 100644 index c2a7771..0000000 Binary files a/Bin/Debug/SuperDesign/WeifenLuo.WinFormsUI.Docking.dll and /dev/null differ diff --git a/Bin/Debug/SuperDesign/WinSCP.exe b/Bin/Debug/SuperDesign/WinSCP.exe new file mode 100644 index 0000000..d2922b6 Binary files /dev/null and b/Bin/Debug/SuperDesign/WinSCP.exe differ diff --git a/Bin/Debug/SuperDesign/WinSCPnet.dll b/Bin/Debug/SuperDesign/WinSCPnet.dll new file mode 100644 index 0000000..64f97a3 Binary files /dev/null and b/Bin/Debug/SuperDesign/WinSCPnet.dll differ diff --git a/Bin/Debug/SuperDesign/runtimes/win-arm64/native/WebView2Loader.dll b/Bin/Debug/SuperDesign/runtimes/win-arm64/native/WebView2Loader.dll new file mode 100644 index 0000000..052bd8c Binary files /dev/null and b/Bin/Debug/SuperDesign/runtimes/win-arm64/native/WebView2Loader.dll differ diff --git a/Bin/Debug/SuperDesign/runtimes/win-x64/native/WebView2Loader.dll b/Bin/Debug/SuperDesign/runtimes/win-x64/native/WebView2Loader.dll new file mode 100644 index 0000000..5230d04 Binary files /dev/null and b/Bin/Debug/SuperDesign/runtimes/win-x64/native/WebView2Loader.dll differ diff --git a/Bin/Debug/SuperDesign/runtimes/win-x86/native/WebView2Loader.dll b/Bin/Debug/SuperDesign/runtimes/win-x86/native/WebView2Loader.dll new file mode 100644 index 0000000..c97f28f Binary files /dev/null and b/Bin/Debug/SuperDesign/runtimes/win-x86/native/WebView2Loader.dll differ diff --git a/Bin/Debug/SuperDesign/ryControls.dll b/Bin/Debug/SuperDesign/ryControls.dll deleted file mode 100644 index a7d24af..0000000 Binary files a/Bin/Debug/SuperDesign/ryControls.dll and /dev/null differ diff --git a/Bin/Debug/SuperDesign/winscp.ini b/Bin/Debug/SuperDesign/winscp.ini new file mode 100644 index 0000000..2f96343 --- /dev/null +++ b/Bin/Debug/SuperDesign/winscp.ini @@ -0,0 +1,5 @@ +[Configuration] + +[Configuration\Interface\Updates] +DotNetVersion=5.13.4 + diff --git a/Bin/Debug/SuperDesign/x64/Lexilla.dll b/Bin/Debug/SuperDesign/x64/Lexilla.dll new file mode 100644 index 0000000..bb41112 Binary files /dev/null and b/Bin/Debug/SuperDesign/x64/Lexilla.dll differ diff --git a/Bin/Debug/SuperDesign/x64/Scintilla.dll b/Bin/Debug/SuperDesign/x64/Scintilla.dll new file mode 100644 index 0000000..f55c7f4 Binary files /dev/null and b/Bin/Debug/SuperDesign/x64/Scintilla.dll differ diff --git a/Bin/Debug/SuperDesign/x64/version.txt b/Bin/Debug/SuperDesign/x64/version.txt new file mode 100644 index 0000000..8e9a9f7 --- /dev/null +++ b/Bin/Debug/SuperDesign/x64/version.txt @@ -0,0 +1,2 @@ +Scintilla: 5.3.2 +Lexilla: 5.2.1 \ No newline at end of file diff --git a/Bin/Debug/SuperDesign/x86/Lexilla.dll b/Bin/Debug/SuperDesign/x86/Lexilla.dll new file mode 100644 index 0000000..7927279 Binary files /dev/null and b/Bin/Debug/SuperDesign/x86/Lexilla.dll differ diff --git a/Bin/Debug/SuperDesign/x86/Scintilla.dll b/Bin/Debug/SuperDesign/x86/Scintilla.dll new file mode 100644 index 0000000..a004807 Binary files /dev/null and b/Bin/Debug/SuperDesign/x86/Scintilla.dll differ diff --git a/Bin/Debug/SuperDesign/x86/version.txt b/Bin/Debug/SuperDesign/x86/version.txt new file mode 100644 index 0000000..8e9a9f7 --- /dev/null +++ b/Bin/Debug/SuperDesign/x86/version.txt @@ -0,0 +1,2 @@ +Scintilla: 5.3.2 +Lexilla: 5.2.1 \ No newline at end of file diff --git a/Bin/Debug/SuperDesign/新建 文本文档.bat b/Bin/Debug/SuperDesign/新建 文本文档.bat new file mode 100644 index 0000000..059af49 --- /dev/null +++ b/Bin/Debug/SuperDesign/新建 文本文档.bat @@ -0,0 +1 @@ +SuperDesign.exe "E:\My Datas\ϷĿ\C#\SuperDesign\Bin\Debug\SuperDesign\.txt" \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index c13617d..e2ea613 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,9 @@ -### 2023-01-21更新 +### 2023-02-21更新 +------ +#### SuperDesign V3.0.2302.2101 +- *.[新增]全新文本编辑器,支持高亮、FTP查看和编辑、目录浏览,历史版本等众多功能。 + +### 2023-01-21更新 ------ #### SuperDesign V2.0.2301.2101 - *.[新增]新增API编辑器,自动保存和快速插入修改参数。 diff --git a/Source/.vs/开发辅助工具/FileContentIndex/eec68e65-4eaf-4c38-857d-d807532308ca.vsidx b/Source/.vs/开发辅助工具/FileContentIndex/eec68e65-4eaf-4c38-857d-d807532308ca.vsidx new file mode 100644 index 0000000..11ce58a Binary files /dev/null and b/Source/.vs/开发辅助工具/FileContentIndex/eec68e65-4eaf-4c38-857d-d807532308ca.vsidx differ diff --git a/Source/.vs/开发辅助工具/FileContentIndex/read.lock b/Source/.vs/开发辅助工具/FileContentIndex/read.lock new file mode 100644 index 0000000..e69de29 diff --git a/Source/.vs/开发辅助工具/project-colors.json b/Source/.vs/开发辅助工具/project-colors.json new file mode 100644 index 0000000..7f20ddb --- /dev/null +++ b/Source/.vs/开发辅助工具/project-colors.json @@ -0,0 +1,16 @@ +{ + "Version": 1, + "ProjectMap": { + "8177cfd1-097c-4d4e-919d-8b519289496e": { + "ProjectGuid": "8177cfd1-097c-4d4e-919d-8b519289496e", + "DisplayName": "SuperDesign", + "ColorIndex": 0 + }, + "a2fe74e1-b743-11d0-ae1a-00a0c90fffc3": { + "ProjectGuid": "a2fe74e1-b743-11d0-ae1a-00a0c90fffc3", + "DisplayName": "杂项文件", + "ColorIndex": -1 + } + }, + "NextColorIndex": 1 +} \ No newline at end of file diff --git a/Source/.vs/开发辅助工具/v17/.suo b/Source/.vs/开发辅助工具/v17/.suo index f206974..56df6bf 100644 Binary files a/Source/.vs/开发辅助工具/v17/.suo and b/Source/.vs/开发辅助工具/v17/.suo differ diff --git a/Source/packages/DiffPlex.1.7.1/.signature.p7s b/Source/packages/DiffPlex.1.7.1/.signature.p7s new file mode 100644 index 0000000..26dd954 Binary files /dev/null and b/Source/packages/DiffPlex.1.7.1/.signature.p7s differ diff --git a/Source/packages/DiffPlex.1.7.1/DiffPlex.1.7.1.nupkg b/Source/packages/DiffPlex.1.7.1/DiffPlex.1.7.1.nupkg new file mode 100644 index 0000000..4ea405a Binary files /dev/null and b/Source/packages/DiffPlex.1.7.1/DiffPlex.1.7.1.nupkg differ diff --git a/Source/packages/DiffPlex.1.7.1/README.md b/Source/packages/DiffPlex.1.7.1/README.md new file mode 100644 index 0000000..a573520 --- /dev/null +++ b/Source/packages/DiffPlex.1.7.1/README.md @@ -0,0 +1,399 @@ +DiffPlex ![.NET](https://github.com/mmanela/diffplex/workflows/.NET/badge.svg?branch=master) [![DiffPlex NuGet version](https://img.shields.io/nuget/v/DiffPlex.svg)](https://www.nuget.org/packages/DiffPlex/) +======== + +DiffPlex is C# library to generate textual diffs. It targets `netstandard1.0+`. + +# About the API + +The DiffPlex library currently exposes two interfaces for generating diffs: + +* `IDiffer` (implemented by the `Differ` class) - This is the core diffing class. It exposes the low level functions to generate differences between texts. +* `ISidebySideDiffer` (implemented by the `SideBySideDiffer` class) - This is a higher level interface. It consumes the `IDiffer` interface and generates a `SideBySideDiffModel`. This is a model which is suited for displaying the differences of two pieces of text in a side by side view. + +## Examples + +For examples of how to use the API please see the the following projects contained in the DiffPlex solution. + +For use of the `IDiffer` interface see: + +* `SidebySideDiffer.cs` contained in the `DiffPlex` Project. +* `UnidiffFormater.cs` contained in the `DiffPlex.ConsoleRunner` project. + +For use of the `ISidebySideDiffer` interface see: + +* `DiffController.cs` and associated MVC views in the `WebDiffer` project +* `TextBoxDiffRenderer.cs` in the `SilverlightDiffer` project + +## Sample code + +```csharp +var diff = InlineDiffBuilder.Diff(before, after); + +var savedColor = Console.ForegroundColor; +foreach (var line in diff.Lines) +{ + switch (line.Type) + { + case ChangeType.Inserted: + Console.ForegroundColor = ConsoleColor.Green; + Console.Write("+ "); + break; + case ChangeType.Deleted: + Console.ForegroundColor = ConsoleColor.Red; + Console.Write("- "); + break; + default: + Console.ForegroundColor = ConsoleColor.Gray; // compromise for dark or light background + Console.Write(" "); + break; + } + + Console.WriteLine(line.Text); +} +Console.ForegroundColor = savedColor; +``` + +## IDiffer Interface + +```csharp +/// +/// Provides methods for generate differences between texts +/// +public interface IDiffer +{ + /// + /// Create a diff by comparing text line by line + /// + /// The old text. + /// The new text. + /// if set to true will ignore white space when determining if lines are the same. + /// A DiffResult object which details the differences + DiffResult CreateLineDiffs(string oldText, string newText, bool ignoreWhiteSpace); + + /// + /// Create a diff by comparing text character by character + /// + /// The old text. + /// The new text. + /// if set to true will treat all whitespace characters are empty strings. + /// A DiffResult object which details the differences + DiffResult CreateCharacterDiffs(string oldText, string newText, bool ignoreWhitespace); + + /// + /// Create a diff by comparing text word by word + /// + /// The old text. + /// The new text. + /// if set to true will ignore white space when determining if words are the same. + /// The list of characters which define word separators. + /// A DiffResult object which details the differences + DiffResult CreateWordDiffs(string oldText, string newText, bool ignoreWhitespace, char[] separators); + + /// + /// Create a diff by comparing text in chunks determined by the supplied chunker function. + /// + /// The old text. + /// The new text. + /// if set to true will ignore white space when determining if chunks are the same. + /// A function that will break the text into chunks. + /// A DiffResult object which details the differences + DiffResult CreateCustomDiffs(string oldText, string newText, bool ignoreWhiteSpace, Func chunker); + + /// + /// Create a diff by comparing text line by line + /// + /// The old text. + /// The new text. + /// if set to true will ignore white space when determining if lines are the same. + /// Determine if the text comparision is case sensitive or not + /// Component responsible for tokenizing the compared texts + /// A DiffResult object which details the differences + DiffResult CreateDiffs(string oldText, string newText, bool ignoreWhiteSpace, bool ignoreCase, IChunker chunker); +} +``` + +## IChunker Interface + +```csharp +public interface IChunker +{ + /// + /// Dive text into sub-parts + /// + string[] Chunk(string text); +} +``` + +Currently provided implementations: + +- `CharacterChunker` +- `CustomFunctionChunker` +- `DelimiterChunker` +- `LineChunker` +- `LineEndingsPreservingChunker` +- `WordChunker` + + +## ISideBySideDifferBuilder Interface + +```csharp +/// +/// Provides methods that generate differences between texts for displaying in a side by side view. +/// +public interface ISideBySideDiffBuilder +{ + /// + /// Builds a diff model for displaying diffs in a side by side view + /// + /// The old text. + /// The new text. + /// The side by side diff model + SideBySideDiffModel BuildDiffModel(string oldText, string newText); +} +``` + +## Sample Website + +DiffPlex also contains a sample website that shows how to create a basic side by side diff in an ASP MVC website. + +![Web page sample](./images/website.png) + +# WPF Controls + +[![NuGet](https://img.shields.io/nuget/v/DiffPlex.Wpf.svg)](https://www.nuget.org/packages/DiffPlex.Wpf/) + +DiffPlex WPF control library `DiffPlex.Wpf` is used to render textual diffs in your WPF application. +It targets `.NET 5`, `.NET Core 3.1`, `.NET Framework 4.8` and `.NET Framework 4.6`. + +```csharp +using DiffPlex.Wpf.Controls; +``` + +To import the controls into your window/page/control, please insert following attribute into the root node (such as ``) of your xaml files. + +``` +xmlns:diffplex="clr-namespace:DiffPlex.Wpf.Controls;assembly=DiffPlex.Wpf" +``` + +Then you can add one of following controls in UI. + +- `DiffViewer` Textual diffs viewer control with view mode switching by setting an old text and a new text to diff. +- `SideBySideDiffViewer` Side-by-side (splitted) textual diffs viewer control by setting a diff model `SideBySideDiffModel`. +- `InlineDiffViewer` Inline textual diffs viewer control by setting a diff model `DiffPaneModel`. + +For example. + +```xaml + +``` + +```csharp +DiffView.OldText = oldText; +DiffView.NewText = newText; +``` + +![WPF sample](./images/wpf_side_light.jpg) + +You can also customize the style. +Following are some of the properties you can get or set. + +```csharp +// The header of old text. +public string OldTextHeader { get; set; } + +// The header of new text. +public string NewTextHeader { get; set; } + +// The header of new text. +public string NewTextHeader { get; set; } + +// true if it is in side-by-side (split) view; +// otherwise, false, in inline (unified) view. +public bool IsSideBySideViewMode { get; } + +// true if collapse unchanged sections; otherwise, false. +public bool IgnoreUnchanged { get; set; } + +// The font size. +public double FontSize { get; set; } + +// The preferred font family. +public FontFamily FontFamily { get; set; } + +// The font weight. +public FontWeight FontWeight { get; set; } + +// The font style. +public FontStyle FontStyle { get; set; } + +// The font-stretching characteristics. +public FontStretch FontStretch { get; set; } + +// The default text color (foreground brush). +public Brush Foreground { get; set; } + +// The background brush of the line inserted. +public Brush InsertedBackground { get; set; } + +// The background brush of the line deleted. +public Brush DeletedBackground { get; set; } + +// The text color (foreground brush) of the line number. +public Brush LineNumberForeground { get; set; } + +// The width of the line number and change type symbol. +public int LineNumberWidth { get; set; } + +// The background brush of the line imaginary. +public Brush ImaginaryBackground { get; set; } + +// The text color (foreground brush) of the change type symbol. +public Brush ChangeTypeForeground { get; set; } + +// The background brush of the header. +public Brush HeaderBackground { get; set; } + +// The height of the header. +public double HeaderHeight { get; set; } + +// The background brush of the grid splitter. +public Brush SplitterBackground { get; set; } + +// The width of the grid splitter. +public Thickness SplitterWidth { get; set; } + +// A value that represents the actual calculated width of the left side panel. +public double LeftSideActualWidth { get; } + +// A value that represents the actual calculated width of the right side panel. +public double RightSideActualWidth { get; } +``` + +And you can listen following event handlers. + +```csharp + +// Occurs when the grid splitter loses mouse capture. +public event DragCompletedEventHandler SplitterDragCompleted; + +// Occurs one or more times as the mouse changes position when the grid splitter has logical focus and mouse capture. +public event DragDeltaEventHandler SplitterDragDelta; + +// Occurs when the grid splitter receives logical focus and mouse capture. +public event DragStartedEventHandler SplitterDragStarted; + +// Occurs when the view mode is changed. +public event EventHandler ViewModeChanged; +``` + +# WinForms Controls + +[![NuGet](https://img.shields.io/nuget/v/DiffPlex.Wpf.svg)](https://www.nuget.org/packages/DiffPlex.Wpf/) + +Windows Forms control of diff viewer is a WPF element host control. +It is also included in `DiffPlex.Wpf` assembly. +You can import it to use in your Windows Forms application. +It targets `.NET 5`, `.NET Core 3.1`, `.NET Framework 4.8` and `.NET Framework 4.6`. + +```csharp +using DiffPlex.WindowsForms.Controls; +``` + +Then you can add the following control in window or user control. + +- `DiffViewer` Textual diffs viewer control with view mode switching by setting an old text and a new text to diff. + +For example. + +```csharp +public partial class Form1 : Form +{ + public Form1() + { + InitializeComponent(); + + var diffView = new DiffViewer + { + Margin = new Padding(0), + Dock = DockStyle.Fill, + OldText = oldText, + NewText = newText + }; + Controls.Add(diffView); + } +} +``` + +![Windows Forms sample](./images/wpf_side_light.jpg) + +You can also customize the style. +Following are some of the properties you can get or set. + +```csharp +// The header of old text. +public string OldTextHeader { get; set; } + +// The header of new text. +public string NewTextHeader { get; set; } + +// The header of new text. +public string NewTextHeader { get; set; } + +// true if it is in side-by-side (split) view; +// otherwise, false, in inline (unified) view. +public bool IsSideBySideViewMode { get; } + +// true if collapse unchanged sections; otherwise, false. +public bool IgnoreUnchanged { get; set; } + +// The font size. +public double FontSize { get; set; } + +// The preferred font family names in string. +public string FontFamilyNames { get; set; } + +// The font weight. +public int FontWeight { get; set; } + +// The font style. +public bool IsFontItalic { get; set; } + +// The default text color (foreground brush). +public Color ForeColor { get; set; } + +// The background brush of the line inserted. +public Color InsertedBackColor { get; set; } + +// The background brush of the line deleted. +public Color DeletedBackColor { get; set; } + +// The text color (foreground color) of the line number. +public Color LineNumberForeColor { get; set; } + +// The width of the line number and change type symbol. +public int LineNumberWidth { get; set; } + +// The background brush of the line imaginary. +public Color ImaginaryBackColor { get; set; } + +// The text color (foreground color) of the change type symbol. +public Color ChangeTypeForeColor { get; set; } + +// The background brush of the header. +public Color HeaderBackColor { get; set; } + +// The height of the header. +public double HeaderHeight { get; set; } + +// The background brush of the grid splitter. +public Color SplitterBackColor { get; set; } + +// The width of the grid splitter. +public Padding SplitterWidth { get; set; } + +// A value that represents the actual calculated width of the left side panel. +public double LeftSideActualWidth { get; } + +// A value that represents the actual calculated width of the right side panel. +public double RightSideActualWidth { get; } +``` diff --git a/Source/packages/DiffPlex.1.7.1/diffplex_icon.png b/Source/packages/DiffPlex.1.7.1/diffplex_icon.png new file mode 100644 index 0000000..7d87b11 Binary files /dev/null and b/Source/packages/DiffPlex.1.7.1/diffplex_icon.png differ diff --git a/Source/packages/DiffPlex.1.7.1/lib/net35/DiffPlex.dll b/Source/packages/DiffPlex.1.7.1/lib/net35/DiffPlex.dll new file mode 100644 index 0000000..e5be0f0 Binary files /dev/null and b/Source/packages/DiffPlex.1.7.1/lib/net35/DiffPlex.dll differ diff --git a/Source/packages/DiffPlex.1.7.1/lib/net35/DiffPlex.xml b/Source/packages/DiffPlex.1.7.1/lib/net35/DiffPlex.xml new file mode 100644 index 0000000..79bde58 --- /dev/null +++ b/Source/packages/DiffPlex.1.7.1/lib/net35/DiffPlex.xml @@ -0,0 +1,190 @@ + + + + DiffPlex + + + + + Gets the default singleton instance of the chunker. + + + + + Gets the default singleton instance of the chunker. + + + + + Gets the default singleton instance of the chunker. + + + + + Gets the default singleton instance of the chunker. + + + + + Gets the default singleton instance of the inline diff builder. + + + + + Gets the inline textual diffs. + + The old text to diff. + The new text. + true if ignore the white space; othewise, false. + true if case-insensitive; otherwise, false. + The chunker. + The diffs result. + + + + Gets the inline textual diffs. + + The differ instance. + The old text to diff. + The new text. + true if ignore the white space; othewise, false. + true if case-insensitive; otherwise, false. + The chunker. + The diffs result. + + + + Provides methods that generate differences between texts for displaying in a side by side view. + + + + + Builds a diff model for displaying diffs in a side by side view + + The old text. + The new text. + The side by side diff model + + + + A model which represents differences between to texts to be shown side by side + + + + + Gets the default singleton instance. + + + + + Gets the side-by-side textual diffs. + + The old text to diff. + The new text. + true if ignore the white space; othewise, false. + true if case-insensitive; otherwise, false. + The diffs result. + + + + Gets the side-by-side textual diffs. + + The differ instance. + The old text to diff. + The new text. + true if ignore the white space; othewise, false. + true if case-insensitive; otherwise, false. + The line chunker. + The word chunker. + The diffs result. + + + + Gets the default singleton instance of differ instance. + + + + + Finds the middle snake and the minimum length of the edit script comparing string A and B + + + Lower bound inclusive + Upper bound exclusive + + lower bound inclusive + upper bound exclusive + + + + + Responsible for how to turn the document into pieces + + + + + Divide text into sub-parts + + + + + Responsible for generating differences between texts + + + + + Creates a diff by comparing text line by line. + + The old text. + The new text. + if set to true will ignore white space when determining if lines are the same. + Determine if the text comparision is case sensitive or not + Component responsible for tokenizing the compared texts + A DiffResult object which details the differences + + + + A block of consecutive edits from A and/or B + + + + + Position where deletions in A begin + + + + + The number of deletions in A + + + + + Position where insertion in B begin + + + + + The number of insertions in B + + + + + The result of diffing two peices of text + + + + + The chunked peices of the old text + + + + + The chunked peices of the new text + + + + + A collection of DiffBlocks which details deletions and insertions + + + + diff --git a/Source/packages/DiffPlex.1.7.1/lib/net40/DiffPlex.dll b/Source/packages/DiffPlex.1.7.1/lib/net40/DiffPlex.dll new file mode 100644 index 0000000..e593acc Binary files /dev/null and b/Source/packages/DiffPlex.1.7.1/lib/net40/DiffPlex.dll differ diff --git a/Source/packages/DiffPlex.1.7.1/lib/net40/DiffPlex.xml b/Source/packages/DiffPlex.1.7.1/lib/net40/DiffPlex.xml new file mode 100644 index 0000000..79bde58 --- /dev/null +++ b/Source/packages/DiffPlex.1.7.1/lib/net40/DiffPlex.xml @@ -0,0 +1,190 @@ + + + + DiffPlex + + + + + Gets the default singleton instance of the chunker. + + + + + Gets the default singleton instance of the chunker. + + + + + Gets the default singleton instance of the chunker. + + + + + Gets the default singleton instance of the chunker. + + + + + Gets the default singleton instance of the inline diff builder. + + + + + Gets the inline textual diffs. + + The old text to diff. + The new text. + true if ignore the white space; othewise, false. + true if case-insensitive; otherwise, false. + The chunker. + The diffs result. + + + + Gets the inline textual diffs. + + The differ instance. + The old text to diff. + The new text. + true if ignore the white space; othewise, false. + true if case-insensitive; otherwise, false. + The chunker. + The diffs result. + + + + Provides methods that generate differences between texts for displaying in a side by side view. + + + + + Builds a diff model for displaying diffs in a side by side view + + The old text. + The new text. + The side by side diff model + + + + A model which represents differences between to texts to be shown side by side + + + + + Gets the default singleton instance. + + + + + Gets the side-by-side textual diffs. + + The old text to diff. + The new text. + true if ignore the white space; othewise, false. + true if case-insensitive; otherwise, false. + The diffs result. + + + + Gets the side-by-side textual diffs. + + The differ instance. + The old text to diff. + The new text. + true if ignore the white space; othewise, false. + true if case-insensitive; otherwise, false. + The line chunker. + The word chunker. + The diffs result. + + + + Gets the default singleton instance of differ instance. + + + + + Finds the middle snake and the minimum length of the edit script comparing string A and B + + + Lower bound inclusive + Upper bound exclusive + + lower bound inclusive + upper bound exclusive + + + + + Responsible for how to turn the document into pieces + + + + + Divide text into sub-parts + + + + + Responsible for generating differences between texts + + + + + Creates a diff by comparing text line by line. + + The old text. + The new text. + if set to true will ignore white space when determining if lines are the same. + Determine if the text comparision is case sensitive or not + Component responsible for tokenizing the compared texts + A DiffResult object which details the differences + + + + A block of consecutive edits from A and/or B + + + + + Position where deletions in A begin + + + + + The number of deletions in A + + + + + Position where insertion in B begin + + + + + The number of insertions in B + + + + + The result of diffing two peices of text + + + + + The chunked peices of the old text + + + + + The chunked peices of the new text + + + + + A collection of DiffBlocks which details deletions and insertions + + + + diff --git a/Source/packages/DiffPlex.1.7.1/lib/net6.0/DiffPlex.dll b/Source/packages/DiffPlex.1.7.1/lib/net6.0/DiffPlex.dll new file mode 100644 index 0000000..a398ed3 Binary files /dev/null and b/Source/packages/DiffPlex.1.7.1/lib/net6.0/DiffPlex.dll differ diff --git a/Source/packages/DiffPlex.1.7.1/lib/net6.0/DiffPlex.xml b/Source/packages/DiffPlex.1.7.1/lib/net6.0/DiffPlex.xml new file mode 100644 index 0000000..79bde58 --- /dev/null +++ b/Source/packages/DiffPlex.1.7.1/lib/net6.0/DiffPlex.xml @@ -0,0 +1,190 @@ + + + + DiffPlex + + + + + Gets the default singleton instance of the chunker. + + + + + Gets the default singleton instance of the chunker. + + + + + Gets the default singleton instance of the chunker. + + + + + Gets the default singleton instance of the chunker. + + + + + Gets the default singleton instance of the inline diff builder. + + + + + Gets the inline textual diffs. + + The old text to diff. + The new text. + true if ignore the white space; othewise, false. + true if case-insensitive; otherwise, false. + The chunker. + The diffs result. + + + + Gets the inline textual diffs. + + The differ instance. + The old text to diff. + The new text. + true if ignore the white space; othewise, false. + true if case-insensitive; otherwise, false. + The chunker. + The diffs result. + + + + Provides methods that generate differences between texts for displaying in a side by side view. + + + + + Builds a diff model for displaying diffs in a side by side view + + The old text. + The new text. + The side by side diff model + + + + A model which represents differences between to texts to be shown side by side + + + + + Gets the default singleton instance. + + + + + Gets the side-by-side textual diffs. + + The old text to diff. + The new text. + true if ignore the white space; othewise, false. + true if case-insensitive; otherwise, false. + The diffs result. + + + + Gets the side-by-side textual diffs. + + The differ instance. + The old text to diff. + The new text. + true if ignore the white space; othewise, false. + true if case-insensitive; otherwise, false. + The line chunker. + The word chunker. + The diffs result. + + + + Gets the default singleton instance of differ instance. + + + + + Finds the middle snake and the minimum length of the edit script comparing string A and B + + + Lower bound inclusive + Upper bound exclusive + + lower bound inclusive + upper bound exclusive + + + + + Responsible for how to turn the document into pieces + + + + + Divide text into sub-parts + + + + + Responsible for generating differences between texts + + + + + Creates a diff by comparing text line by line. + + The old text. + The new text. + if set to true will ignore white space when determining if lines are the same. + Determine if the text comparision is case sensitive or not + Component responsible for tokenizing the compared texts + A DiffResult object which details the differences + + + + A block of consecutive edits from A and/or B + + + + + Position where deletions in A begin + + + + + The number of deletions in A + + + + + Position where insertion in B begin + + + + + The number of insertions in B + + + + + The result of diffing two peices of text + + + + + The chunked peices of the old text + + + + + The chunked peices of the new text + + + + + A collection of DiffBlocks which details deletions and insertions + + + + diff --git a/Source/packages/DiffPlex.1.7.1/lib/netstandard1.0/DiffPlex.dll b/Source/packages/DiffPlex.1.7.1/lib/netstandard1.0/DiffPlex.dll new file mode 100644 index 0000000..2974e8a Binary files /dev/null and b/Source/packages/DiffPlex.1.7.1/lib/netstandard1.0/DiffPlex.dll differ diff --git a/Source/packages/DiffPlex.1.7.1/lib/netstandard1.0/DiffPlex.xml b/Source/packages/DiffPlex.1.7.1/lib/netstandard1.0/DiffPlex.xml new file mode 100644 index 0000000..79bde58 --- /dev/null +++ b/Source/packages/DiffPlex.1.7.1/lib/netstandard1.0/DiffPlex.xml @@ -0,0 +1,190 @@ + + + + DiffPlex + + + + + Gets the default singleton instance of the chunker. + + + + + Gets the default singleton instance of the chunker. + + + + + Gets the default singleton instance of the chunker. + + + + + Gets the default singleton instance of the chunker. + + + + + Gets the default singleton instance of the inline diff builder. + + + + + Gets the inline textual diffs. + + The old text to diff. + The new text. + true if ignore the white space; othewise, false. + true if case-insensitive; otherwise, false. + The chunker. + The diffs result. + + + + Gets the inline textual diffs. + + The differ instance. + The old text to diff. + The new text. + true if ignore the white space; othewise, false. + true if case-insensitive; otherwise, false. + The chunker. + The diffs result. + + + + Provides methods that generate differences between texts for displaying in a side by side view. + + + + + Builds a diff model for displaying diffs in a side by side view + + The old text. + The new text. + The side by side diff model + + + + A model which represents differences between to texts to be shown side by side + + + + + Gets the default singleton instance. + + + + + Gets the side-by-side textual diffs. + + The old text to diff. + The new text. + true if ignore the white space; othewise, false. + true if case-insensitive; otherwise, false. + The diffs result. + + + + Gets the side-by-side textual diffs. + + The differ instance. + The old text to diff. + The new text. + true if ignore the white space; othewise, false. + true if case-insensitive; otherwise, false. + The line chunker. + The word chunker. + The diffs result. + + + + Gets the default singleton instance of differ instance. + + + + + Finds the middle snake and the minimum length of the edit script comparing string A and B + + + Lower bound inclusive + Upper bound exclusive + + lower bound inclusive + upper bound exclusive + + + + + Responsible for how to turn the document into pieces + + + + + Divide text into sub-parts + + + + + Responsible for generating differences between texts + + + + + Creates a diff by comparing text line by line. + + The old text. + The new text. + if set to true will ignore white space when determining if lines are the same. + Determine if the text comparision is case sensitive or not + Component responsible for tokenizing the compared texts + A DiffResult object which details the differences + + + + A block of consecutive edits from A and/or B + + + + + Position where deletions in A begin + + + + + The number of deletions in A + + + + + Position where insertion in B begin + + + + + The number of insertions in B + + + + + The result of diffing two peices of text + + + + + The chunked peices of the old text + + + + + The chunked peices of the new text + + + + + A collection of DiffBlocks which details deletions and insertions + + + + diff --git a/Source/packages/DiffPlex.1.7.1/lib/netstandard2.0/DiffPlex.dll b/Source/packages/DiffPlex.1.7.1/lib/netstandard2.0/DiffPlex.dll new file mode 100644 index 0000000..3bebcf8 Binary files /dev/null and b/Source/packages/DiffPlex.1.7.1/lib/netstandard2.0/DiffPlex.dll differ diff --git a/Source/packages/DiffPlex.1.7.1/lib/netstandard2.0/DiffPlex.xml b/Source/packages/DiffPlex.1.7.1/lib/netstandard2.0/DiffPlex.xml new file mode 100644 index 0000000..79bde58 --- /dev/null +++ b/Source/packages/DiffPlex.1.7.1/lib/netstandard2.0/DiffPlex.xml @@ -0,0 +1,190 @@ + + + + DiffPlex + + + + + Gets the default singleton instance of the chunker. + + + + + Gets the default singleton instance of the chunker. + + + + + Gets the default singleton instance of the chunker. + + + + + Gets the default singleton instance of the chunker. + + + + + Gets the default singleton instance of the inline diff builder. + + + + + Gets the inline textual diffs. + + The old text to diff. + The new text. + true if ignore the white space; othewise, false. + true if case-insensitive; otherwise, false. + The chunker. + The diffs result. + + + + Gets the inline textual diffs. + + The differ instance. + The old text to diff. + The new text. + true if ignore the white space; othewise, false. + true if case-insensitive; otherwise, false. + The chunker. + The diffs result. + + + + Provides methods that generate differences between texts for displaying in a side by side view. + + + + + Builds a diff model for displaying diffs in a side by side view + + The old text. + The new text. + The side by side diff model + + + + A model which represents differences between to texts to be shown side by side + + + + + Gets the default singleton instance. + + + + + Gets the side-by-side textual diffs. + + The old text to diff. + The new text. + true if ignore the white space; othewise, false. + true if case-insensitive; otherwise, false. + The diffs result. + + + + Gets the side-by-side textual diffs. + + The differ instance. + The old text to diff. + The new text. + true if ignore the white space; othewise, false. + true if case-insensitive; otherwise, false. + The line chunker. + The word chunker. + The diffs result. + + + + Gets the default singleton instance of differ instance. + + + + + Finds the middle snake and the minimum length of the edit script comparing string A and B + + + Lower bound inclusive + Upper bound exclusive + + lower bound inclusive + upper bound exclusive + + + + + Responsible for how to turn the document into pieces + + + + + Divide text into sub-parts + + + + + Responsible for generating differences between texts + + + + + Creates a diff by comparing text line by line. + + The old text. + The new text. + if set to true will ignore white space when determining if lines are the same. + Determine if the text comparision is case sensitive or not + Component responsible for tokenizing the compared texts + A DiffResult object which details the differences + + + + A block of consecutive edits from A and/or B + + + + + Position where deletions in A begin + + + + + The number of deletions in A + + + + + Position where insertion in B begin + + + + + The number of insertions in B + + + + + The result of diffing two peices of text + + + + + The chunked peices of the old text + + + + + The chunked peices of the new text + + + + + A collection of DiffBlocks which details deletions and insertions + + + + diff --git a/Source/packages/FluentFTP.44.0.1/.signature.p7s b/Source/packages/FluentFTP.44.0.1/.signature.p7s new file mode 100644 index 0000000..4f26c6d Binary files /dev/null and b/Source/packages/FluentFTP.44.0.1/.signature.p7s differ diff --git a/Source/packages/FluentFTP.44.0.1/FluentFTP.44.0.1.nupkg b/Source/packages/FluentFTP.44.0.1/FluentFTP.44.0.1.nupkg new file mode 100644 index 0000000..b37919b Binary files /dev/null and b/Source/packages/FluentFTP.44.0.1/FluentFTP.44.0.1.nupkg differ diff --git a/Source/packages/FluentFTP.44.0.1/LICENSE.TXT b/Source/packages/FluentFTP.44.0.1/LICENSE.TXT new file mode 100644 index 0000000..93d30b1 --- /dev/null +++ b/Source/packages/FluentFTP.44.0.1/LICENSE.TXT @@ -0,0 +1,7 @@ +Copyright (c) 2015 Robin Rodricks and FluentFTP Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Source/packages/FluentFTP.44.0.1/lib/net462/FluentFTP.dll b/Source/packages/FluentFTP.44.0.1/lib/net462/FluentFTP.dll new file mode 100644 index 0000000..fec1377 Binary files /dev/null and b/Source/packages/FluentFTP.44.0.1/lib/net462/FluentFTP.dll differ diff --git a/Source/packages/FluentFTP.44.0.1/lib/net462/FluentFTP.xml b/Source/packages/FluentFTP.44.0.1/lib/net462/FluentFTP.xml new file mode 100644 index 0000000..04b55b2 --- /dev/null +++ b/Source/packages/FluentFTP.44.0.1/lib/net462/FluentFTP.xml @@ -0,0 +1,8404 @@ + + + + FluentFTP + + + + + An FTP client that manages a connection to a single FTP server. + Interacts with any FTP/FTPS server and provides a high-level and low-level API to work with files and folders. + Uses asynchronous operations only. For the sync version use `FtpClient`. + + Debugging problems with FTP is much easier when you enable logging. Visit our Github Wiki for more info. + + + + + Performs a login on the server. This method is overridable so + that the login procedure can be changed to support, for example, + a FTP proxy. + + + + + Performs a login on the server. This method is overridable so + that the login procedure can be changed to support, for example, + a FTP proxy. + + On authentication failures + + To handle authentication failures without retries, catch FtpAuthenticationException. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and connects to the first successful profile. + Returns the FtpProfile if the connection succeeded, or null if it failed. + It will throw exceptions for permanent failures like invalid host or invalid credentials. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and returns the list of successful connection profiles. + You can configure it to stop after finding the first successful profile, or to collect all successful profiles. + You can then generate code for the profile using the FtpProfile.ToCode method. + If no successful profiles are found, a blank list is returned. + + Find all successful profiles (false) or stop after finding the first successful profile (true) + Use a new cloned AsyncFtpClient for testing connection profiles (true) or use the source AsyncFtpClient (false) + The token that can be used to cancel the entire process + + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The owner permissions + The group permissions + The other permissions + The token that can be used to cancel the entire process + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The permissions in CHMOD format + The token that can be used to cancel the entire process + + + + Compare the specified local file with the remote file on the FTP server using various kinds of quick equality checks. + In Auto mode, the file size and checksum are compared. + Comparing the checksum of a file is a quick way to check if the contents of the files are exactly equal without downloading a copy of the file. + You can use the option flags to compare any combination of: file size, checksum, date modified. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + Types of equality checks to perform. Use Auto to compare file size and checksum. + The token that can be used to cancel the entire process + + + + + Connect to the given server profile. + + + + + Connect to the given server profile. + + + + + Connect to the server + + true indicates that we want a + reconnect to take place. + The token that can be used to cancel the entire process + Thrown if this object has been disposed. + + + + Connect to the FTP server. Overridden in proxy classes. + + + + + + + Connect to the FTP server. Overridden in proxy classes. + + + + + Creates a remote directory asynchronously + + The full or relative path to the new remote directory + Try to create the whole path if the preceding directories do not exist + The token that can be used to cancel the entire process + True if directory was created, false if it was skipped + + + + Creates a remote directory asynchronously. If the preceding + directories do not exist, then they are created. + + The full or relative path to the new remote directory + The token that can be used to cancel the entire process + + + + Asynchronously removes a directory and all its contents. + + The full or relative path of the directory to delete + The token that can be used to cancel the entire process + + + + Asynchronously removes a directory and all its contents. + + The full or relative path of the directory to delete + Useful to delete hidden files or dot-files. + The token that can be used to cancel the entire process + + + + Asynchronously removes a directory. Used by and + . + + The full or relative path of the directory to delete + Delete the contents before deleting the folder + Useful to delete hidden files or dot-files. + Delete the top level dir too + Internally used to determine top level + The token that can be used to cancel the entire process + + + + + Deletes a file from the server asynchronously + + The full or relative path to the file + The token that can be used to cancel the entire process + + + + Tests if the specified directory exists on the server asynchronously. This + method works by trying to change the working directory to + the path specified. If it succeeds, the directory is changed + back to the old working directory and true is returned. False + is returned otherwise and since the CWD failed it is assumed + the working directory is still the same. + + The full or relative path of the directory to check for + The token that can be used to cancel the entire process + True if the directory exists. False otherwise. + + + + Disables UTF8 support and changes the Encoding property + back to ASCII. If the server returns an error when trying + to turn UTF8 off a FtpCommandException will be thrown. + + + + + Disconnects from the server asynchronously + + + + + Downloads the specified file and return the raw byte array. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The full or relative path to the file on the server + The size of the existing file in bytes, or 0 if unknown. The download restarts from this byte index. + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track download progress. + A byte array containing the contents of the downloaded file if successful, otherwise null. + + + + Downloads the specified file and return the raw byte array asynchronously. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The full or relative path to the file on the server + The token that can be used to cancel the entire process + A byte array containing the contents of the downloaded file if successful, otherwise null. + + + + Downloads the specified directory onto the local file system. + In Mirror mode, we will download missing files, and delete any extra files from disk that are not present on the server. This is very useful when creating an exact local backup of an FTP directory. + In Update mode, we will only download missing files and preserve any extra files on disk. This is useful when you want to simply download missing files from an FTP directory. + Only downloads the files and folders matching all the rules provided, if any. + All exceptions during downloading are caught, and the exception is stored in the related FtpResult object. + + The full path of the local folder on disk to download into. It is created if it does not exist. + The full path of the remote FTP folder that you want to download. If it does not exist, an empty result list is returned. + Mirror or Update mode, as explained above + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide an implementation of IProgress to track upload progress. + The token that can be used to cancel the entire process + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Download all the listed files and folders from the main directory + + + + + Downloads the specified file onto the local file system asynchronously. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + Overwrite if you want the local file to be overwritten if it already exists. Append will also create a new file if it doesn't exists + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Provide an implementation of IProgress to track download progress. + The token that can be used to cancel the entire process + FtpStatus flag indicating if the file was downloaded, skipped or failed to transfer. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts. + + + + + Download a remote file to a local file + + + + + Download a file from the server and write the data into the given stream asynchronously. + Reads data in chunks. Retries if server disconnects midway. + + + + + Setup a resume on failure of download + + + + + Downloads the specified files into a local single directory. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + Same speed as . + + The full or relative path to the directory that files will be downloaded into. + The full or relative paths to the files on the server + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are downloaded, and the files that don't pass are skipped. + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Remove successfully downloaded files. + + + + + Downloads the specified file into the specified stream asynchronously . + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory. + The full or relative path to the file on the server + The size of the existing file in bytes, or 0 if unknown. The download restarts from this byte index. + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track download progress. + If true then the file was downloaded, false otherwise. + + + + Deletes the contents of the specified directory, without deleting the directory itself. + + The full or relative path of the directorys contents to delete + The token that can be used to cancel the entire process + + + + Deletes the contents of the specified directory, without deleting the directory itself. + + The full or relative path of the directorys contents to delete + Useful to delete hidden files or dot-files. + The token that can be used to cancel the entire process + + + + Performs an asynchronous execution of the specified command + + The command to execute + The token that can be used to cancel the entire process + The servers reply to the command + + + + Things to do after executing a command + + + + + + Checks if a file exists on the server asynchronously. + + The full or relative path to the file + The token that can be used to cancel the entire process + True if the file exists, false otherwise + + + + Ensure a relative dir is absolute by prepending the working dir + + + + + Concat a path and a filename + + + + + Ensure a relative path is absolute by prepending the working dir + + + + + Retrieves a checksum of the given file using the specified checksum algorithm, or using the first available algorithm that the server supports. + + + The algorithm used goes in this order: + 1. HASH command using the first supported algorithm. + 2. MD5 / XMD5 / MMD5 commands + 3. XSHA1 command + 4. XSHA256 command + 5. XSHA512 command + 6. XCRC command + + Full or relative path of the file to checksum + The token that can be used to cancel the entire process + Specify an algorithm that you prefer, or NONE to use the first available algorithm. If the preferred algorithm is not supported, a blank hash is returned. + object containing the value and algorithm. Use the property to + determine if this command was successful. s can be thrown from + the underlying calls. + The command fails + + + + Gets the hash of the specified file using the given command. + + + + + Sets the hash algorithm on the server to be used with the HASH command asynchronously. + + + + + Gets the hash of an object on the server using the currently selected hash algorithm. + + + + + Retrieve the permissions of the given file/folder as an integer in the CHMOD format. + Throws FtpCommandException if there is an issue. + Returns 0 if the server did not specify a permission value. + Use `GetFilePermissions` if you required the permissions in the FtpPermission format. + + The full or relative path to the item + The token that can be used to cancel the entire process + + + + Retrieve the permissions of the given file/folder as an FtpListItem object with all "Permission" properties set. + Throws FtpCommandException if there is an issue. + Returns null if the server did not specify a permission value. + Use `GetChmod` if you required the integer value instead. + + The full or relative path to the item + The token that can be used to cancel the entire process + + + + Asynchronously gets the size of a remote file, in bytes. + + The full or relative path of the file + Value to return if there was an error obtaining the file size, or if the file does not exist + The token that can be used to cancel the entire process + The size of the file, or defaultValue if there was a problem. + + + + Gets the file size of an object, without locking + + + + + Gets a file listing from the server asynchronously. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + The path to list + Options that dictate how the list operation is performed + The token that can be used to cancel the entire process + An array of items retrieved in the listing + + + + Process the output of the listing command + + + + + Get the records of a file listing and retry if temporary failure. + + + + + Gets a file listing from the server asynchronously. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + The path to list + The token that can be used to cancel the entire process + An array of items retrieved in the listing + + + + Gets a file listing from the server asynchronously. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + An array of items retrieved in the listing + + + + Recursive method of GetListingAsync, to recurse through directories on servers that do not natively support recursion. + Automatically called by GetListingAsync where required. + Uses flat recursion instead of head recursion. + + The path of the directory to list + Options that dictate how a list is performed and what information is gathered. + + An array of FtpListItem objects + + + + Gets the modified time of a remote file asynchronously + + The full path to the file + The token that can be used to cancel the entire process + The modified time, or if there was a problem + + + + Returns a file/directory listing using the NLST command asynchronously + + The path of the directory to list + The token that can be used to cancel the entire process + An array of file and directory names if any were returned. + + + + Returns a file/directory listing using the NLST command asynchronously + + An array of file and directory names if any were returned. + + + + Return information about a remote file system object asynchronously. + + + You should check the property for the + flag before calling this method. Failing to do so will result in an InvalidOperationException + being thrown when the server does not support machine listings. Returns null if the server response can't + be parsed or the server returns a failure completion code. The error for a failure + is logged with FtpTrace. No exception is thrown on error because that would negate + the usefulness of this method for checking for the existence of an object. + Path of the item to retrieve information about + Get the accurate modified date using another MDTM command + The token that can be used to cancel the entire process + Thrown if the server does not support this Capability + A if the command succeeded, or null if there was a problem. + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + The token that can be used to cancel the entire process. + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + The token that can be used to cancel the entire process. + We are waiting for the response to which command? + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + The token that can be used to cancel the entire process. + We are waiting for the response to which command? + Set to true to select the NOOP devouring mode + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + The token that can be used to cancel the entire process. + We are waiting for the response to which command? + Set to true to select the NOOP devouring mode + -1 non-blocking, no timeout, >0 exhaustNoop mode, timeOut in seconds + FtpReply representing the response from the server + + + + Gets the current working directory asynchronously + + The current working directory, ./ if the response couldn't be parsed. + + + + Get the reply from the PWD command + + The current working directory reply. + + + + If an FTP Server has "different realms", in which realm is the + current working directory. + + The realm + + + + Called during . Typically extended by FTP proxies. + + + + + Is the current working directory the root? + + true if root. + + + + Moves a directory asynchronously on the remote file system from one directory to another. + Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter. + Only throws exceptions for critical errors. + + The full or relative path to the object + The new full or relative path including the new name of the object + Should we check if the dest directory exists? And if it does should we overwrite/skip the operation? + The token that can be used to cancel the entire process + Whether the directory was moved + + + + Moves a file asynchronously on the remote file system from one directory to another. + Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter. + Only throws exceptions for critical errors. + + The full or relative path to the object + The new full or relative path including the new name of the object + Should we check if the dest file exists? And if it does should we overwrite/skip the operation? + The token that can be used to cancel the entire process + Whether the file was moved + + + + Sends the NOOP command according to (effectively a no-op if 0). + Please call as needed to read the "OK" command sent by the server and prevent stale data on the socket. + Note that response is not guaranteed by all FTP servers when sent during file transfers. + + + true if NOOP command was sent + + + + Opens the specified type of active data stream + + Type of passive data stream to open + The command to execute that requires a data stream + Restart location in bytes for file transfer + The token that can be used to cancel the entire process + A data stream ready to be used + + + + Opens the specified file to be appended asynchronously + + Full or relative path of the file + ASCII/Binary + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + The token that can be used to cancel the entire process + A stream for writing to the file on the server + + + + Opens the specified file to be appended asynchronously + + Full or relative path of the file + ASCII/Binary + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + The token that can be used to cancel the entire process + A stream for writing to the file on the server +
          + + + Opens a data stream. + + The command to execute that requires a data stream + Restart location in bytes for file transfer + The token that can be used to cancel the entire process + The data stream. + + + + Opens a FXP PASV connection between the source FTP Server and the destination FTP Server + + Valid FTP connection to the destination FTP Server + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track download progress. + A data stream ready to be used + + + + Opens the specified type of passive data stream + + Type of passive data stream to open + The command to execute that requires a data stream + Restart location in bytes for file transfer + The token that can be used to cancel the entire process + A data stream ready to be used + + + + Opens the specified file for reading asynchronously + + The full or relative path of the file + ASCII/Binary + Resume location + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + The token that can be used to cancel the entire process + A stream for reading the file on the server + + + + Opens the specified file for reading asynchronously + + The full or relative path of the file + ASCII/Binary + Resume location + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + The token that can be used to cancel the entire process + A stream for reading the file on the server +
          + + + Opens the specified file for writing. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + Full or relative path of the file + ASCII/Binary + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + The token that can be used to cancel the entire process + A stream for writing to the file on the server + + + + Opens the specified file for writing. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + Full or relative path of the file + ASCII/Binary + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + The token that can be used to cancel the entire process + A stream for writing to the file on the server +
          + + + Renames an object on the remote file system asynchronously. + Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory(). + Throws exceptions if the file does not exist, or if the destination file already exists. + + The full or relative path to the object + The new full or relative path including the new name of the object + The token that can be used to cancel the entire process + + + + Sets the data type of information sent over the data stream asynchronously + + ASCII/Binary + The token that can be used to cancel the entire process + + + + Sets the data type of information sent over the data stream asynchronously + + ASCII/Binary + The token that can be used to cancel the entire process + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The owner permissions + The group permissions + The other permissions + The token that can be used to cancel the entire process + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The permissions in CHMOD format + The token that can be used to cancel the entire process + + + + Gets the modified time of a remote file asynchronously + + The full path to the file + The new modified date/time value + The token that can be used to cancel the entire process + + + + Sets the working directory on the server asynchronously + + The directory to change to + The token that can be used to cancel the entire process + + + + Transfer the specified directory from the source FTP Server onto the remote FTP Server asynchronously using the FXP protocol. + You will need to create a valid connection to your remote FTP Server before calling this method. + In Update mode, we will only transfer missing files and preserve any extra files on the remote FTP Server. This is useful when you want to simply transfer missing files from an FTP directory. + Currently Mirror mode is not implemented. + Only transfers the files and folders matching all the rules provided, if any. + All exceptions during transfer are caught, and the exception is stored in the related FtpResult object. + + The full or relative path to the folder on the source FTP Server. If it does not exist, an empty result list is returned. + Valid FTP connection to the destination FTP Server + The full or relative path to destination folder on the remote FTP Server + Only Update mode is currently implemented + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide a callback to track download progress. + The token that can be used to cancel the entire process + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Make a list of files to transfer + + + + + Transfer the files + + + + + Transfer the specified file from the source FTP Server to the destination FTP Server asynchronously using the FXP protocol. + High-level API that takes care of various edge cases internally. + + The full or relative path to the file on the source FTP Server + Valid FTP connection to the destination FTP Server + The full or relative path to destination file on the remote FTP Server + Indicates if the folder should be created on the remote FTP Server + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Provide a callback to track download progress. + + The token that can be used to cancel the entire process + Returns a FtpStatus indicating if the file was transferred. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts. + + + + + Transfers a file from the source FTP Server to the destination FTP Server via the FXP protocol asynchronously. + + + + + Uploads the specified byte array as a file onto the server asynchronously. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full data of the file, as a byte array + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + The token that can be used to cancel the entire process. + Provide an implementation of IProgress to track upload progress. + FtpStatus flag indicating if the file was uploaded, skipped or failed to transfer. + + + + Uploads the specified directory onto the server. + In Mirror mode, we will upload missing files, and delete any extra files from the server that are not present on disk. This is very useful when publishing an exact copy of a local folder onto an FTP server. + In Update mode, we will only upload missing files and preserve any extra files on the server. This is useful when you want to simply upload missing files to a server. + Only uploads the files and folders matching all the rules provided, if any. + All exceptions during uploading are caught, and the exception is stored in the related FtpResult object. + + The full path of the local folder on disk that you want to upload. If it does not exist, an empty result list is returned. + The full path of the remote FTP folder to upload into. It is created if it does not exist. + Mirror or Update mode, as explained above + If the file exists on disk, should we skip it, resume the upload or restart the upload? + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are uploaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide an implementation of IProgress to track upload progress. + The token that can be used to cancel the entire process + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Create all the sub directories within the main directory + + + + + Upload all the files within the main directory + + + + + Delete the extra remote files if in mirror mode and the directory was pre-existing + + + + + Uploads the specified file directly onto the server asynchronously. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + The token that can be used to cancel the entire process. + Provide an implementation of IProgress to track upload progress. + FtpStatus flag indicating if the file was uploaded, skipped or failed to transfer. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + + + + + Upload from a local file to a remote file + + + + + Upload the given stream to the server as a new file asynchronously. Overwrites the file if it exists. + Writes data in chunks. Retries if server disconnects midway. + + + + + Setup a resume on failure of upload + + + + + Uploads the given file paths to a single folder on the server asynchronously. + All files are placed directly into the given folder regardless of their path on the local filesystem. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + Faster than uploading single files with since it performs a single "file exists" check rather than one check per file. + + The full or relative paths to the files on the local file system. Files can be from multiple folders. + The full or relative path to the directory that files will be uploaded on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are uploaded, and the files that don't pass are skipped. + + Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Remove successfully uploaded files. + + + + + Uploads the given file paths to a single folder on the server asynchronously. + All files are placed directly into the given folder regardless of their path on the local filesystem. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + Faster than uploading single files with since it performs a single "file exists" check rather than one check per file. + + The full or relative paths to the files on the local file system. Files can be from multiple folders. + The full or relative path to the directory that files will be uploaded on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are uploaded, and the files that don't pass are skipped. + + Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Get a list of all the files that need to be uploaded + + + + + Uploads the specified stream as a file onto the server asynchronously. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full data of the file, as a stream + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + The token that can be used to cancel the entire process. + Provide an implementation of IProgress to track upload progress. + FtpStatus flag indicating if the file was uploaded, skipped or failed to transfer. + + + + Verify an FXP transfer + + + + + + + + + + + + Verify a file transfer + + + + + + + + + + Creates a new instance of an async FTP Client. You will have to setup the FTP host and credentials before connecting. + + + + + Creates a new instance of an async FTP Client, with the given host and credentials. + + + + + Creates a new instance of an async FTP Client, with the given host and credentials. + + + + + Creates a new instance of an async FTP Client, with the given host and credentials. + + + + + The base object for FtpClient, AsyncFtpClient + + + + + Calculate the position from which to append + + + + + + + + + Calculate transfer chunk size taking rate control into account + + + + + Check if the file is cleared to be uploaded, taking its existence/filesize and existsMode options into account. + + + + + Try using the SIZE command to check if file exists + + + + + + + Does the server support checksums? + + + + + + Is the checksum algorithm valid? + + + + + + + Cleanup the hash result + + + + + Get the first checksum algorithm mutually supported by both servers. + + + + + Disconnects a data stream + + The data stream to close + + + + If reverse is false, converts the date provided by the FTP server into the timezone required locally. + If reverse is true, converts the local timezone date into the date required by the FTP server. + + Affected by properties: TimeConversion, TimeZone, LocalTimeZone. + + + + + Delete the extra local files if in mirror mode + + + + + Check if the local file can be deleted, based on the DownloadDirectoryDeleteExcluded property + + + + + Executes a command + + The command to execute + The servers reply to the command + + + + Things to do after executing a command + + + + + + Populates the capabilities flags based on capabilities + supported by this server. This method is overridable + so that new features can be supported + + The reply object from the FEAT command. The InfoMessages property will + contain a list of the features the server supported delimited by a new line '\n' character. + + + + Forcibly set the capabilities of your FTP server. + By default capabilities are loaded automatically after calling Connect and you don't need to use this method. + This is only for advanced use-cases. + + + + + Performs a bitwise and to check if the specified + flag is set on the property. + + The to check for + True if the feature was found, false otherwise + + + + Returns true if the file passes all the rules + + + + + Get a list of all the files and folders that need to be downloaded + + + + + Get a list of all the files and folders that need to be downloaded + + + + + Create an FtpResult object for the given file to be downloaded, and check if the file passes the rules. + + + + + Get a list of all the files that need to be uploaded within the main directory + + + + + Create an FtpResult object for the given file to be uploaded, and check if the file passes the rules. + + + + + Parse the host and port number from an EPSV response + Handles (|||nnnn|) and (!!!nnnn!) + + + + + Parse the host and port number from an PASV or PASVEX response + + + + + Returns the IP address to be sent to the server for the active connection. + + + + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + We are waiting for the response to which command? + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + We are waiting for the response to which command? + Set to true to select the NOOP devouring mode + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + We are waiting for the response to which command? + Set to true to select the NOOP devouring mode + -1 non-blocking, no timeout, >0 exhaustNoop mode, timeOut in seconds + FtpReply representing the response from the server + + + + Process the returned data after command was executed + + + + + + + + Decodes the given FTP response string into a FtpReply, separating the FTP return code and message. + Returns true if the string was decoded correctly or false if it is not a standard format FTP response. + + + + + Make a list of subdirectories to transfer + + + + + + + + + + + Get a list of all the sub directories that need to be created within the main directory + + + + + Check if the remote file can be deleted, based on the UploadDirectoryDeleteExcluded property + + + + + Gets the current working directory + + The current working directory, ./ if the response couldn't be parsed. + + + + Get the reply to the PWD command + + + + + Parse the string returned from a PWD command + + + + + + + Checks if this FTP/FTPS connection is made through a proxy. + + + + + Checks whether will be called recursively or not. + + + + + + + Get a listing + + + + + + + + + + + + + + + + + + + + + Determine which command to use for getting a listing + + + + + Can the server do recursion for us? + + + + + Load the given connection profile and configure the FTP client instance accordingly. + + Connection profile. Not modified. + + + + Log the version of the running assembly + + + + + Log a function call with relevant arguments + + The name of the API function + The args passed to the function + + + + Log a message + + The type of tracing event + The message to write + + + + Log a message, adding an automatic prefix to the message based on the `eventType` + + The type of tracing event + The message to write + An optional exeption + Write an optional exeption on a new line + + + + Log a message to the debug output and console. + + + + + To allow for external connected classes to use the attached logger. + + + + + To allow for external connected classes to use the attached logger. + + + + + Should the function calls be logged in Verbose mode? + + + + + Add a custom listener here to get events every time a message is logged. + This is the older system, prefer using the ILogger based `Logger` property. + This system will never be removed, you can safely use it in your applications. + + + + + All the configuration settings for this FTP client. + + + + + Gets the type of the FTP server handler. + This is automatically set based on the detected FTP server, if it is detected. + You can manually set this property to implement handling for a custom FTP server. + + + + + Gets or sets the text encoding being used when talking with the server. The default + value is however upon connection, the client checks + for UTF8 support and if it's there this property is switched over to + . Manually setting this value overrides automatic detection + based on the FEAT list; if you change this value it's always used + regardless of what the server advertises, if anything. + + + + + When last command was sent (NOOP or other), for having /. + Respects the . + + + + + Current FTP client status flags used for improving performance and caching data. + + + + + Returns the current FTP client status flags. For advanced use only. + + + + + Used for internally synchronizing access to this + object from multiple threads + + + + + For usage by FTP proxies only + + + + + Control connection socket stream + + + + + Gets the base stream for talking to the server via + the control connection. + + + + + Gets a value indicating if this object has already been disposed. + + + + + Gets the current internet protocol (IPV4 or IPV6) used by the socket connection. + Returns FtpIpVersion.Unknown before connection. + + + + + Returns true if the connection to the FTP server is open. + WARNING: Returns true even if our credentials are incorrect but connection to the server is open. + See the IsAuthenticated property if you want to check if we are correctly logged in. + + + + + Returns true if the connection to the FTP server is open and if the FTP server accepted our credentials. + + + + + Gets a value indicating if this control connection is a clone. This property + is used with data streams to determine if the connection should be closed + when the stream is closed. Servers typically only allow 1 data connection + per control connection. If you try to open multiple data connections this + object will be cloned for 2 or more resulting in N new connections to the + server. + + + + + The server to connect to + + + + + The port to connect to. If this value is set to 0 (Default) the port used + will be determined by the type of SSL used or if no SSL is to be used it + will automatically connect to port 21. + + + + + Credentials used for authentication + + + + + Gets the server capabilities represented by an array of capability flags + + + + + Get the hash types supported by the server for use with the HASH Command. + This is a recent extension to the protocol that is not fully + standardized and is not guaranteed to work. See here for + more details: + http://tools.ietf.org/html/draft-bryan-ftpext-hash-02 + + + + + The negotiated SSL/TLS protocol version. + Will return a valid value after connection is complete. + Before connection it will return `SslProtocols.None`. + + + + + Checks if FTPS/SSL encryption is currently active. + Useful to see if your server supports FTPS, when using FtpEncryptionMode.Auto. + + + + + Easiest way to check if a handler has been attached. + + + + + Event is fired to validate SSL certificates. If this event is + not handled and there are errors validating the certificate + the connection will be aborted. + Not fired if ValidateAnyCertificate is set to true. + + + + + Gets the type of system/server that we're connected to. Typically begins with "WINDOWS" or "UNIX". + + + + + Gets the type of the FTP server software that we're connected to. + + + + + Gets the operating system of the FTP server that we're connected to. + + + + Gets the connection type + + + Gets the last reply received from the server + + + Gets the last replies received from the server + + + + Callback format to implement your custom FTP listing line parser. + + The line from the listing + The server capabilities + The FTP client + Return an FtpListItem object if the line can be parsed, else return null + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Returns the local end point of the FTP socket, if it is available. + + + + + Returns the remote end point of the FTP socket, if it is available. + + + + + Data shouldn't be on the socket, if it is it probably means we've been disconnected. + Read and discard whatever is there. + Returns the stale data as text, if any, or null if none was found. + + copy stale data information to logs? + for the log information + + + + Data shouldn't be on the socket, if it is it probably means we've been disconnected. + Read and discard whatever is there. + Returns the stale data as text, if any, or null if none was found. + + copy stale data information to logs? + called from where (text) + The token that can be used to cancel the entire process + + + + Sends progress to the user, either a value between 0-100 indicating percentage complete, or -1 for indeterminate. + + + + + Sends progress to the user, either a value between 0-100 indicating percentage complete, or -1 for indeterminate. + + + + + Open a local port on the given ActivePort or a random port. + + + + + + Validate the client before the auto detect process + + + + + + + Catches the socket stream ssl validation event and fires the event handlers + attached to this object for validating SSL certificates + + The stream that fired the event + The event args used to validate the certificate + + + + Fires the SSL validation event + + Event Args + + + + Verify that the client is usable + + + + + + + + + + + + Clones the FTP client control connection. Used for opening multiple data streams. + You will need to manually connect after cloning. + + A new FTP client connection with the same property settings as this one. + + + + Disposes and disconnects this FTP client if it was auto-created for an internal operation. + + + + + Check if the host parameter is valid + + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Disconnects from the server, releases resources held by this + object. + + + + + Finalizer + + + + + Class responsible for automatically detecting working FTP settings to connect to a target FTP server. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and returns the list of successful connection profiles. + You can configure it to stop after finding the first successful profile, or to collect all successful profiles. + You can then generate code for the profile using the FtpProfile.ToCode method. + If no successful profiles are found, a blank list is returned. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and returns the list of successful connection profiles. + You can configure it to stop after finding the first successful profile, or to collect all successful profiles. + You can then generate code for the profile using the FtpProfile.ToCode method. + If no successful profiles are found, a blank list is returned. + + + + + Check if the server refused to support one type of FTPS encryption, and if so blacklist that type of encryption. + + + + + Check if its an auth failure or something permanent, + so that we don't need to retry all the connection config combinations and can hard-abort the AutoConnect. + Return the exception if it is a hard failure, or null if no issue is found. + + + + + Load the given connection profile and configure the FTP client instance accordingly. + + + + + Create a default ValidateCertificate handler that accepts valid certificates. + + + + + Return a known working connection profile from the host/port combination. + + + + + Modify the `Status.InCriticalSequence` flag based on the FTP command sent, by checking against a list of known critical commands. + A critical sequence will not be interrupted by an automatic reconnect. + + + + + Class responsible for masking out sensitive data from FTP logs. + + + + + Populates the capabilities flags based on capabilities given in the list of strings. + + + + + Assume the FTP Server's capabilities if it does not support the FEAT command. + + + + + All servers with server-specific handling and support are listed here. + Its possible you can connect to other FTP servers too. + + To add support for another standard FTP server: + 1) Add a new enum in the `FtpServer` enum + 2) Add a new class extending `FtpBaseServer` under the `Servers.Handlers` NS + 3) Create a new instance of your class in `FtpHandlerIndex.AllServers` + + To support a custom FTP server you only need to extend `FtpBaseServer` + and set it on your client.ServerHandler before calling Connect. + + + + + Detect the FTP Server based on the welcome message sent by the server after getting the 220 connection command. + Its the primary method. + + + + + Get a default FTP Server handler based on the enum value. + + + + + Detect the FTP Server based on the response to the SYST connection command. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Detect the FTP Server based on the response to the SYST connection command. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Error messages returned by various servers when a file does not exist. + Instead of throwing an error, we use these to detect and handle the file detection properly. + MUST BE LOWER CASE! + + + + + Error messages returned by various servers when a file size is not supported in ASCII mode. + MUST BE LOWER CASE! + + + + + Error messages returned by various servers when a file transfer temporarily failed. + MUST BE LOWER CASE! + + + + + Error messages returned by various servers when a folder already exists. + Instead of throwing an error, we use these to detect and handle the folder creation properly. + MUST BE LOWER CASE! + + + + + Error messages returned by various servers when the connection failed due to wrong TLS version used. + MUST BE LOWER CASE! + + + + + An FTP client that manages a connection to a single FTP server. + Interacts with any FTP/FTPS server and provides a high-level and low-level API to work with files and folders. + Uses synchronous operations only. For the async version use `AsyncFtpClient`. + + Debugging problems with FTP is much easier when you enable logging. Visit our Github Wiki for more info. + + + + + Creates a new instance of a synchronous FTP Client. You will have to setup the FTP host and credentials before connecting. + + + + + Creates a new instance of a synchronous FTP Client, with the given host and credentials. + + + + + Creates a new instance of a synchronous FTP Client, with the given host and credentials. + + + + + Creates a new instance of a synchronous FTP Client, with the given host and credentials. + + + + + Performs a login on the server. This method is overridable so + that the login procedure can be changed to support, for example, + a FTP proxy. + + + + + Performs a login on the server. This method is overridable so + that the login procedure can be changed to support, for example, + a FTP proxy. + + On authentication failures + + To handle authentication failures without retries, catch FtpAuthenticationException. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and connects to the first successful profile. + Returns the FtpProfile if the connection succeeded, or null if it failed. + It will throw exceptions for permanent failures like invalid host or invalid credentials. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and returns the list of successful connection profiles. + You can configure it to stop after finding the first successful profile, or to collect all successful profiles. + You can then generate code for the profile using the FtpProfile.ToCode method. + If no successful profiles are found, a blank list is returned. + + Find all successful profiles (false) or stop after finding the first successful profile (true) + Use a new cloned FtpClient for testing connection profiles (true) or use the source FtpClient (false) + + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The owner permissions + The group permissions + The other permissions + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The permissions in CHMOD format + + + + Compare the specified local file with the remote file on the FTP server using various kinds of quick equality checks. + In Auto mode, the file size and checksum are compared. + Comparing the checksum of a file is a quick way to check if the contents of the files are exactly equal without downloading a copy of the file. + You can use the option flags to compare any combination of: file size, checksum, date modified. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + Types of equality checks to perform. Use Auto to compare file size and checksum. + + + + + Connect + + + + + Connect to the given server profile. + + + + + Connect to the server + + true indicates that we want a + reconnect to take place. + Thrown if this object has been disposed. + + + + Connect to the FTP server. Overridden in proxy classes. + + + + + + Connect to the FTP server. Overridden in proxy classes. + + + + + Creates a directory on the server. If the preceding + directories do not exist, then they are created. + + The full or relative path to the new remote directory + + + + Creates a directory on the server + + The full or relative path to the new remote directory + Try to force all non-existent pieces of the path to be created + True if directory was created, false if it was skipped + + + + Deletes the specified directory and all its contents. + + The full or relative path of the directory to delete + + + + Deletes the specified directory and all its contents. + + The full or relative path of the directory to delete + Useful to delete hidden files or dot-files. + + + + Deletes the specified directory and all its contents. + + The full or relative path of the directory to delete + If the directory is not empty, remove its contents + Useful to delete hidden files or dot-files. + Delete completely or leave the top level dir + Internally used to determine top level + + + + Deletes a file on the server + + The full or relative path to the file + + + + Tests if the specified directory exists on the server. This + method works by trying to change the working directory to + the path specified. If it succeeds, the directory is changed + back to the old working directory and true is returned. False + is returned otherwise and since the CWD failed it is assumed + the working directory is still the same. + + The path of the directory + True if it exists, false otherwise. + + + + Disables UTF8 support and changes the Encoding property + back to ASCII. If the server returns an error when trying + to turn UTF8 off a FtpCommandException will be thrown. + + + + + Disconnects from the server + + + + + Downloads the specified file and return the raw byte array. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The variable that will receive the bytes. + The full or relative path to the file on the server + The size of the existing file in bytes, or 0 if unknown. The download restarts from this byte index. + Provide a callback to track download progress. + If true then the file was downloaded, false otherwise. + + + + Downloads the specified directory onto the local file system. + In Mirror mode, we will download missing files, and delete any extra files from disk that are not present on the server. This is very useful when creating an exact local backup of an FTP directory. + In Update mode, we will only download missing files and preserve any extra files on disk. This is useful when you want to simply download missing files from an FTP directory. + Only downloads the files and folders matching all the rules provided, if any. + All exceptions during downloading are caught, and the exception is stored in the related FtpResult object. + + The full path of the local folder on disk to download into. It is created if it does not exist. + The full path of the remote FTP folder that you want to download. If it does not exist, an empty result list is returned. + Mirror or Update mode, as explained above + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide a callback to track download progress. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Download all the listed files and folders from the main directory + + + + + Downloads the specified file onto the local file system. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Provide a callback to track download progress. + FtpStatus flag indicating if the file was downloaded, skipped or failed to transfer. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts. + + + + + Download from a remote file to a local file + + + + + + + + + + + + + + Download a file from the server and write the data into the given stream. + Reads data in chunks. Retries if server disconnects midway. + + + + + Setup a resume on failure of download + + + + + Downloads the specified files into a local single directory. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + Same speed as . + + The full or relative path to the directory that files will be downloaded into. + The full or relative paths to the files on the server + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are downloaded, and the files that don't pass are skipped. + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Remove successfully downloaded files. + + + + + Downloads the specified file into the specified stream. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory. + The full or relative path to the file on the server + The size of the existing file in bytes, or 0 if unknown. The download restarts from this byte index. + Provide a callback to track download progress. + If true then the file was downloaded, false otherwise. + + + + Deletes the contents of the specified directory, without deleting the directory itself. + + The full or relative path of the directorys contents to delete + + + + Deletes the contents of the specified directory, without deleting the directory itself. + + The full or relative path of the directorys contents to delete + Useful to delete hidden files or dot-files. + + + + Executes a command + + The command to execute + The servers reply to the command + + + + Checks if a file exists on the server. + + The full or relative path to the file + True if the file exists + + + + Ensure a relative dir is absolute by prepending the working dir + + + + + Concat a path and a filename + + + + + Ensure a relative path is absolute by prepending the working dir + + + + + Retrieves a checksum of the given file using the specified checksum algorithm, or using the first available algorithm that the server supports. + + + The algorithm used goes in this order: + 1. HASH command using the first supported algorithm. + 2. MD5 / XMD5 / MMD5 commands + 3. XSHA1 command + 4. XSHA256 command + 5. XSHA512 command + 6. XCRC command + + Full or relative path of the file to checksum + Specify an algorithm that you prefer, or NONE to use the first available algorithm. If the preferred algorithm is not supported, a blank hash is returned. + object containing the value and algorithm. Use the property to + determine if this command was successful. s can be thrown from + the underlying calls. + The command fails + + + + Gets the hash of the specified file using the given command. + + + + + Sets the hash algorithm on the server to use for the HASH command. + + + + + Gets the hash of an object on the server using the currently selected hash algorithm. + + + + + Retrieve the permissions of the given file/folder as an integer in the CHMOD format. + Throws FtpCommandException if there is an issue. + Returns 0 if the server did not specify a permission value. + Use `GetFilePermissions` if you required the permissions in the FtpPermission format. + + The full or relative path to the item + + + + Retrieve the permissions of the given file/folder as an FtpListItem object with all "Permission" properties set. + Throws FtpCommandException if there is an issue. + Returns null if the server did not specify a permission value. + Use `GetChmod` if you required the integer value instead. + + The full or relative path to the item + + + + Gets the size of a remote file, in bytes. + + The full or relative path of the file + Value to return if there was an error obtaining the file size, or if the file does not exist + The size of the file, or defaultValue if there was a problem. + + + + Gets the file size of an object, without locking + + + + + Gets a file listing from the server from the current working directory. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + An array of FtpListItem objects + + + + Gets a file listing from the server. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + The path of the directory to list + An array of FtpListItem objects + + + + Gets a file listing from the server. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + The path of the directory to list + Options that dictate how a list is performed and what information is gathered. + An array of FtpListItem objects + + + + Get the records of a file listing and retry if temporary failure. + + + + + Recursive method of GetListing, to recurse through directories on servers that do not natively support recursion. + Automatically called by GetListing where required. + Uses flat recursion instead of head recursion. + + The path of the directory to list + Options that dictate how a list is performed and what information is gathered. + An array of FtpListItem objects + + + + Gets the modified time of a remote file. + + The full path to the file + The modified time, or if there was a problem + + + + Returns a file/directory listing using the NLST command. + + A string array of file and directory names if any were returned. + + + + Returns a file/directory listing using the NLST command. + + The path of the directory to list + A string array of file and directory names if any were returned. + + + + Returns information about a file system object. Returns null if the server response can't + be parsed or the server returns a failure completion code. The error for a failure + is logged with FtpTrace. No exception is thrown on error because that would negate + the usefulness of this method for checking for the existence of an object. + + The path of the file or folder + Get the accurate modified date using another MDTM command + A FtpListItem object + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + FtpReply representing the response from the server + + + + Gets the current working directory + + The current working directory, ./ if the response couldn't be parsed. + + + + If an FTP Server has "different realms", in which realm is the + current working directory. + + The realm + + + + Called during Connect(). Typically extended by FTP proxies. + + + + + Is the current working directory the root? + + true if root. + + + + Moves a directory on the remote file system from one directory to another. + Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter. + Only throws exceptions for critical errors. + + The full or relative path to the object + The new full or relative path including the new name of the object + Should we check if the dest directory exists? And if it does should we overwrite/skip the operation? + Whether the directory was moved + + + + Moves a file on the remote file system from one directory to another. + Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter. + Only throws exceptions for critical errors. + + The full or relative path to the object + The new full or relative path including the new name of the object + Should we check if the dest file exists? And if it does should we overwrite/skip the operation? + Whether the file was moved + + + + Sends the NOOP command according to (effectively a no-op if 0). + Please call as needed to read the "OK" command sent by the server and prevent stale data on the socket. + Note that response is not guaranteed by all FTP servers when sent during file transfers. + + true if NOOP command was sent + + + + Opens the specified type of active data stream + + Type of passive data stream to open + The command to execute that requires a data stream + Restart location in bytes for file transfer + A data stream ready to be used + + + + Opens the specified file for appending. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + The full or relative path to the file to be opened + ASCII/Binary + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + A stream for writing to the file on the server + + + + Opens the specified file for appending. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + The full or relative path to the file to be opened + ASCII/Binary + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + A stream for writing to the file on the server +
          + + + Opens a data stream. + + The command to execute that requires a data stream + Restart location in bytes for file transfer + The data stream. + + + + Opens a FXP PASV connection between the source FTP Server and the destination FTP Server + + FtpClient instance of the destination FTP Server + Provide an implementation of IProgress to track download progress. + A data stream ready to be used + + + + Opens the specified type of passive data stream + + Type of passive data stream to open + The command to execute that requires a data stream + Restart location in bytes for file transfer + A data stream ready to be used + + + + Opens the specified file for reading + + The full or relative path of the file + ASCII/Binary + Resume location + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + A stream for reading the file on the server + + + + Opens the specified file for reading + + The full or relative path of the file + ASCII/Binary + Resume location + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + A stream for reading the file on the server +
          + + + Opens the specified file for writing. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + Full or relative path of the file + ASCII/Binary + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + A stream for writing to the file on the server + + + + Opens the specified file for writing. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + Full or relative path of the file + ASCII/Binary + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + A stream for writing to the file on the server +
          + + + Renames an object on the remote file system. + Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory(). + Throws exceptions if the file does not exist, or if the destination file already exists. + + The full or relative path to the object + The new full or relative path including the new name of the object + + + + Sets the data type of information sent over the data stream + + ASCII/Binary + + + Internal method that handles actually setting the data type. + Thrown when a FTP Command error condition occurs. + Thrown when a FTP error condition occurs. + ASCII/Binary. + This method doesn't do any locking to prevent recursive lock scenarios. Callers must do their own locking. + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The owner permissions + The group permissions + The other permissions + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The permissions in CHMOD format + + + + Changes the modified time of a remote file + + The full path to the file + The new modified date/time value + + + + Sets the work directory on the server + + The path of the directory to change to + + + + Transfer the specified directory from the source FTP Server onto the remote FTP Server using the FXP protocol. + You will need to create a valid connection to your remote FTP Server before calling this method. + In Update mode, we will only transfer missing files and preserve any extra files on the remote FTP Server. This is useful when you want to simply transfer missing files from an FTP directory. + Currently Mirror mode is not implemented. + Only transfers the files and folders matching all the rules provided, if any. + All exceptions during transfer are caught, and the exception is stored in the related FtpResult object. + + The full or relative path to the folder on the source FTP Server. If it does not exist, an empty result list is returned. + Valid FTP connection to the destination FTP Server + The full or relative path to destination folder on the remote FTP Server + Only Update mode is currently implemented + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide a callback to track download progress. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Make a list of files to transfer + + + + + Transfer each file + + + + + + + + + + + Transfer the specified file from the source FTP Server to the destination FTP Server using the FXP protocol. + High-level API that takes care of various edge cases internally. + + The full or relative path to the file on the source FTP Server + Valid FTP connection to the destination FTP Server + The full or relative path to destination file on the remote FTP Server + Indicates if the folder should be created on the remote FTP Server + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Provide a callback to track download progress. + + Returns a FtpStatus indicating if the file was transferred. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts. + + + + + Transfers a file from the source FTP Server to the destination FTP Server via the FXP protocol + + + + + Uploads the specified byte array as a file onto the server. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full data of the file, as a byte array + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + Provide a callback to track upload progress. + + + + Uploads the specified directory onto the server. + In Mirror mode, we will upload missing files, and delete any extra files from the server that are not present on disk. This is very useful when publishing an exact copy of a local folder onto an FTP server. + In Update mode, we will only upload missing files and preserve any extra files on the server. This is useful when you want to simply upload missing files to a server. + Only uploads the files and folders matching all the rules provided, if any. + All exceptions during uploading are caught, and the exception is stored in the related FtpResult object. + + The full path of the local folder on disk that you want to upload. If it does not exist, an empty result list is returned. + The full path of the remote FTP folder to upload into. It is created if it does not exist. + Mirror or Update mode, as explained above + If the file exists on disk, should we skip it, resume the upload or restart the upload? + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide a callback to track upload progress. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Create all the sub directories within the main directory + + + + + Upload all the files within the main directory + + + + + Delete the extra remote files if in mirror mode and the directory was pre-existing + + + + + Uploads the specified file directly onto the server. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Provide a callback to track download progress. + FtpStatus flag indicating if the file was uploaded, skipped or failed to transfer. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + + + + + Upload a local file to a remote file + + + + + + + + + + + + + + + + Upload the given stream to the server as a new file. Overwrites the file if it exists. + Writes data in chunks. Retries if server disconnects midway. + + + + + Setup a resume on an upload failure + + + + + Uploads the given file paths to a single folder on the server. + All files are placed directly into the given folder regardless of their path on the local filesystem. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + Faster than uploading single files with since it performs a single "file exists" check rather than one check per file. + + The full or relative paths to the files on the local file system. Files can be from multiple folders. + The full or relative path to the directory that files will be uploaded on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are uploaded, and the files that don't pass are skipped. + + Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Remove successfully uploaded files. + + + + + Uploads the given file paths to a single folder on the server. + All files are placed directly into the given folder regardless of their path on the local filesystem. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + Faster than uploading single files with since it performs a single "file exists" check rather than one check per file. + + The full or relative paths to the files on the local file system. Files can be from multiple folders. + The full or relative path to the directory that files will be uploaded on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are uploaded, and the files that don't pass are skipped. + + Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Get a list of all the files that need to be uploaded + + + + + Uploads the specified stream as a file onto the server. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full data of the file, as a stream + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + Provide a callback to track upload progress. + + + + Verify an FXP file transfer + + + + + + + + + + + Verify a file transfer + + + + + + + + + Interface for the AsyncFtpClient class. + For detailed documentation of the methods, please see the FtpClient class or check the Wiki on the FluentFTP Github project. + + + + + Base object for FtpClient, AsyncFtpClient and the internal client + + + + + Interface for the FtpClient class. + For detailed documentation of the methods, please see the FtpClient class or check the Wiki on the FluentFTP Github project. + + + + + Server features + + + + + This server said it doesn't support anything! + + + + + Supports the MLST command (machine listings) + + + + + Supports the SIZE command (get file size) + + + + + Supports the MDTM command (get file date modified) + + + + + Supports download/upload stream resumes + + + + + Supports UTF8 + + + + + PRET Command used by DrFTPD + + + + + Server supports the MFMT command for setting the + modified date of an object on the server + + + + + Server supports the MFCT command for setting the + created date of an object on the server + + + + + Server supports the MFF command for setting certain facts + about file system objects. It typically allows you to modify + the last modification time, creation time, UNIX group/owner/mode of a file. + + + + + Server supports the STAT command + + + + + Support for the HASH command + + + + + Support for the MD5 command + + + + + Support for the XMD5 command + + + + + Support for the XCRC command + + + + + Support for the XSHA1 command + + + + + Support for the XSHA256 command + + + + + Support for the XSHA512 command + + + + + Support for the EPSV file-transfer command + + + + + Support for the CPSV command + + + + + Support for the NOOP command + + + + + Support for the CLNT command + + + + + Support for the SSCN command + + + + + Support for the SITE MKDIR (make directory) server-specific command for ProFTPd + + + + + Support for the SITE RMDIR (remove directory) server-specific command for ProFTPd + + + + + Support for the SITE UTIME server-specific command for ProFTPd + + + + + Support for the SITE SYMLINK server-specific command for ProFTPd + + + + + Support for the AVBL (get available space) server-specific command for Serv-U + + + + + Support for the THMB (get image thumbnail) server-specific command for Serv-U + + + + + Support for the RMDA (remove directory) server-specific command for Serv-U + + + + + Support for the DSIZ (get directory size) server-specific command for Serv-U + + + + + Support for the HOST (get host) server-specific command for Serv-U + + + + + Support for the CCC (Clear Command Channel) command, which makes a secure FTP channel revert back to plain text. + + + + + Support for the MODE Z (compression enabled) command, which says that the server supports ZLIB compression for all transfers + + + + + Support for the LANG (language negotiation) command. + + + + + Support for the MMD5 (multiple MD5 hash) command. + + + + + Flags that control how file comparison is performed. If you are unsure what to use, set it to Auto. + + + + + Compares the file size and the checksum of the file (using the first supported hash algorithm). + The local and remote file sizes and checksums should exactly match for the file to be considered equal. + + + + + Compares the file size. + Both file sizes should exactly match for the file to be considered equal. + + + + + Compares the date modified of the file. + Both dates should exactly match for the file to be considered equal. + + + + + Compares the checksum or hash of the file using the first supported hash algorithm. + Both checksums should exactly match for the file to be considered equal. + + + + + The result of a file comparison operation. + + + + + Success. Local and remote files are exactly equal. + + + + + Failure. Local and remote files do not match. + + + + + Failure. Either the local or remote file does not exist. + + + + + Failure. Checksum verification is enabled and your server does not support any hash algorithm. + + + + + Data connection type + + + + + This type of data connection attempts to use the EPSV command + and if the server does not support EPSV it falls back to the + PASV command before giving up unless you are connected via IPv6 + in which case the PASV command is not supported. + + + + + Passive data connection. EPSV is a better + option if it's supported. Passive connections + connect to the IP address dictated by the server + which may or may not be accessible by the client + for example a server behind a NAT device may + give an IP address on its local network that + is inaccessible to the client. Please note that IPv6 + does not support this type data connection. If you + ask for PASV and are connected via IPv6 EPSV will + automatically be used in its place. + + + + + Same as PASV except the host supplied by the server is ignored + and the data connection is made to the same address that the control + connection is connected to. This is useful in scenarios where the + server supplies a private/non-routable network address in the + PASV response. It's functionally identical to EPSV except some + servers may not implement the EPSV command. Please note that IPv6 + does not support this type data connection. If you + ask for PASV and are connected via IPv6 EPSV will + automatically be used in its place. + + + + + Extended passive data connection, recommended. Works + the same as a PASV connection except the server + does not dictate an IP address to connect to, instead + the passive connection goes to the same address used + in the control connection. This type of data connection + supports IPv4 and IPv6. + + + + + This type of data connection attempts to use the EPRT command + and if the server does not support EPRT it falls back to the + PORT command before giving up unless you are connected via IPv6 + in which case the PORT command is not supported. + + + + + Active data connection, not recommended unless + you have a specific reason for using this type. + Creates a listening socket on the client which + requires firewall exceptions on the client system + as well as client network when connecting to a + server outside of the client's network. In addition + the IP address of the interface used to connect to the + server is the address the server is told to connect to + which, if behind a NAT device, may be inaccessible to + the server. This type of data connection is not supported + by IPv6. If you specify PORT and are connected via IPv6 + EPRT will automatically be used instead. + + + + + Extended active data connection, not recommended + unless you have a specific reason for using this + type. Creates a listening socket on the client + which requires firewall exceptions on the client + as well as client network when connecting to a + server outside of the client's network. The server + connects to the IP address it sees the client coming + from. This type of data connection supports IPv4 and IPv6. + + + + + Type of data transfer to do + + + + + ASCII transfer + + + + + Binary transfer + + + + + Not known yet + + + + + Controls how timestamps returned by the server are converted. + + + + + Returns the server timestamps in Server Time. No timezone conversion is performed. + + + + + Returns the server timestamps in Local Time. + Ensure that the TimeZone property is correctly set to the server's timezone. + If you are on .NET Core/.NET Standard, you need to set the LocalTimeZone property for this to work. + + + + + Returns the server timestamps in UTC (Coordinated Universal Time). + Ensure that the TimeZone property is correctly set to the server's timezone. + + + + + Defines the type of encryption to use + + + + + Plain text. + + + + + FTPS encryption is used from the start of the connection, port 990. + + + + + Connection starts in plain text and FTPS encryption is enabled + with the AUTH command immediately after the server greeting. + + + + + FTPS encryption is used if supported by the server, otherwise it falls back to plaintext FTP communication. + + + + + Defines how multi-file processes should handle a processing error. + + & Cannot Be Combined + + + + No action is taken upon errors. The method absorbs the error and continues. + + + + + If any files have completed successfully (or failed after a partial download/upload) then should be deleted. + This will simulate an all-or-nothing transaction downloading or uploading multiple files. If this option is not + combined with or then the method will + continue to process all items whether if they are successful or not and then delete everything if a failure was + encountered at any point. + + + + + The method should stop processing any additional files and immediately return upon encountering an error. + Cannot be combined with + + + + + The method should stop processing any additional files and immediately throw the current error. + Cannot be combined with + + + + + Determines how we handle downloading and uploading folders + + + + + Dangerous but useful method! + Uploads/downloads all the missing files to update the server/local filesystem. + Deletes the extra files to ensure that the target is an exact mirror of the source. + + + + + Safe method! + Uploads/downloads all the missing files to update the server/local filesystem. + + + + + Different types of hashing algorithms for computing checksums. + + + + + Automatic algorithm, or hashing not supported. + + + + + SHA-1 algorithm + + + + + SHA-256 algorithm + + + + + SHA-512 algorithm + + + + + MD5 algorithm + + + + + CRC algorithm + + + + + IP Versions to allow when connecting + to a server. + + + + + Unknown protocol. + + + + + Internet Protocol Version 4 + + + + + Internet Protocol Version 6 + + + + + Allow any supported version + + + + + Flags that can control how a file listing is performed. If you are unsure what to use, set it to Auto. + + + + + Tries machine listings (MDTM command) if supported, + and if not then falls back to OS-specific listings (LIST command) + + + + + Load the modify date using MDTM when it could not + be parsed from the server listing. This only pertains + to servers that do not implement the MLSD command. + + + + + Load the file size using the SIZE command when it + could not be parsed from the server listing. This + only pertains to servers that do not support the + MLSD command. + + + + + Combines the Modify and Size flags + + + + + Show hidden/dot files. This only pertains to servers + that do not support the MLSD command. This option + makes use the non standard -a parameter to LIST to + tell the server to show hidden files. Since it's a + non-standard option it may not always work. MLSD listings + have no such option and whether or not a hidden file is + shown is at the discretion of the server. + + + + + Force the use of OS-specific listings (LIST command) even if + machine listings (MLSD command) are supported by the server + + + + + Use the NLST command instead of LIST for a reliable file listing + + + + + Force the use of the NLST command (the slowest mode) even if machine listings + and OS-specific listings are supported by the server + + + + + Sets the ForceList flag and uses `LS' instead of `LIST' as the + command for getting a directory listing. This option overrides + ForceNameList and ignores the AllFiles flag. + + + + + Gets files within subdirectories as well. Adds the -r option to the LIST command. + Some servers may not support this feature. + + + + + Do not retrieve path when no path is supplied to GetListing(), + instead just execute LIST with no path argument. + + + + + Include two extra items into the listing, for the current directory (".") + and the parent directory (".."). Meaningless unless you want these two + items for some reason. + + + + + Force the use of STAT command for getting file listings + + + + + Determines how we handle partially downloaded files + + + + + Restart the download of a file if it is partially downloaded. + Overwrites the file if it exists on disk. + + + + + Resume the download of a file if it is partially downloaded. + Appends to the file if it exists, by checking the length and adding the missing data. + If the file doesn't exist on disk, a new file is created. + + + + + Blindly skip downloading the file if it exists on disk, without any more checks. + This is only included to be compatible with legacy behaviour. + + + + + Append is now renamed to Resume. + + + + + Type of file system of object + + + + + The default subtype. + + + + + A sub directory within the listed directory. + (Only set when machine listing is available and type is 'dir') + + + + + The self directory. + (Only set when machine listing is available and type is 'cdir') + + + + + The parent directory. + (Only set when machine listing is available and type is 'pdir') + + + + + Type of file system of object + + + + + A file + + + + + A directory + + + + + A symbolic link + + + + + Defines the operating system of the FTP server. + + + + + Unknown operating system + + + + + Definitely Windows or Windows Server + + + + + Definitely Unix or AIX-based server + + + + + Definitely VMS or OpenVMS server + + + + + Definitely IBM OS/400 server + + + + + Definitely IBM z/OS server + + + + + Definitely SUN OS/Solaris server + + + + + For setting up rules + + + + + If the value is exactly equal to X + + + + + If the value is anything except for X + + + + + If the value is less than X + + + + + If the value is less than or equal to X + + + + + If the value is more than X + + + + + If the value is more than or equal to X + + + + + If the value is between the range of X and Y + + + + + If the value is outside the range of X and Y + + + + + The type of response the server responded with + + + + + Use the custom parser that you have set on the FtpClient object (ListingCustomParser property) + + + + + Automatically detect the file listing parser to use based on the FTP server (SYST command). + + + + + Machine listing parser, works on any FTP server supporting the MLST/MLSD commands. + + + + + File listing parser for Windows/IIS. + + + + + File listing parser for Unix. + + + + + Alternate parser for Unix. Use this if the default one does not work. + + + + + File listing parser for Vax/VMS/OpenVMS. + + + + + File listing parser for IBM z/OS + + + + + File listing parser for IBM OS/400. + + + + + File listing parser for Tandem/Nonstop Guardian OS. + + + + + Types of file permissions + + + + + No access + + + + + Executable + + + + + Writable + + + + + Readable + + + + + This enum is obsolete. Please use FtpRemoteExists instead. + + + + + Defines the behavior for uploading/downloading files that already exist + + + + + Do not check if the file exists. A bit faster than the other options. + Only use this if you are SURE that the file does not exist on the server. + Otherwise it can cause the UploadFile method to hang due to filesize mismatch. + + + + + Resume uploading by appending to the remote file, but don't check if it exists and add missing data. + This might be required if you don't have permissions on the server to list files in the folder. + Only use this if you are SURE that the file does not exist on the server otherwise it can cause the UploadFile method to hang due to filesize mismatch. + + + + + Append the local file to the end of the remote file, but don't check if it exists and add missing data. + This might be required if you don't have permissions on the server to list files in the folder. + Only use this if you are SURE that the file does not exist on the server otherwise it can cause the UploadFile method to hang due to filesize mismatch. + + + + + Skip the file if it exists, without any more checks. + + + + + Overwrite the file if it exists. + + + + + Resume uploading by appending to the remote file if it exists. + It works by checking the remote file length and adding the missing data. + + + + + Append the local file to the end of the remote file. + + + + + Append is now renamed to Resume. Alternatively you can use AddToEnd. + + + + + The type of response the server responded with + + + + + No response + + + + + Success + + + + + Success + + + + + Success + + + + + Temporary failure + + + + + Permanent failure + + + + + Determines how SSL Buffering is handled + + + + + Enables buffering in all cases except when using FTP proxies. + + + + + Always disables SSL Buffering to reduce FTPS connectivity issues. + + + + + Always enables SSL Buffering to massively speed up FTPS operations. + + + + + Defines the type of the FTP server software. + Add constants here as you add detection scripts for individual server types. + + + + + Unknown FTP server software + + + + + Definitely Apache FTP server + + + + + Definitely BFTPd server + + + + + Definitely Cerberus FTP server + + + + + Definitely CrushFTP server + + + + + Definitely D-Link FTP server + + + + + Definitely FileZilla server + + + + + Definitely FritzBox FTP server + + + + + Definitely FTP2S3 gateway server + + + + + Definitely glFTPd server + + + + + Definitely GlobalScape EFT server + + + + + Definitely Homegate FTP server + + + + + Definitely Huawei Technologies HG5xxx series FTP server + + + + + Definitely IBM z/OS FTP server + + + + + Definitely IBM OS/400 FTP server + + + + + Definitely ABB IDAL FTP server + + + + + Definitely MikroTik RouterOS FTP server + + + + + Definitely HP NonStop/Tandem server + + + + + Definitely OpenVMS server + + + + + Definitely ProFTPD server + + + + + Definitely PureFTPd server + + + + + Definitely PyFtpdLib server + + + + + Definitely Rumpus server + + + + + Definitely Serv-U server + + + + + Definitely Sun OS Solaris FTP server + + + + + Definitely Titan FTP server + + + + + Definitely TP-LINK FTP server + + + + + Definitely VsFTPd server + + + + + Definitely Windows CE FTP server + + + + + Definitely Windows Server/IIS FTP server + + + + + Definitely WS_FTP server + + + + + Definitely WuFTPd server + + + + + Definitely XLight FTP server + + + + + Types of special UNIX permissions + + + + + No special permissions are set + + + + + Sticky bit is set + + + + + SGID bit is set + + + + + SUID bit is set + + + + + The result of an upload or download operation + + + + + The upload or download failed with an error transferring, or the source file did not exist + + + + + The upload or download completed successfully + + + + + The upload or download was skipped because the file already existed on the target + + + + + Defines the level of the tracing message. Depending on the framework version this is translated + to an equivalent logging level in System.Diagnostices (if available) + + + + + Used for logging Debug or Verbose level messages + + + + + Used for logging Informational messages + + + + + Used for logging non-fatal or ignorable error messages + + + + + Used for logging Error messages that may need investigation + + + + + Defines if additional verification and actions upon failure that + should be performed when uploading/downloading files using the high-level APIs. Ignored if the + FTP server does not support any hashing algorithms. + + + + + No verification of the file is performed + + + + + The checksum of the file is verified, if supported by the server. + If the checksum comparison fails then we retry the download/upload + a specified amount of times before giving up. (See ) + + + + + The checksum of the file is verified, if supported by the server. + If the checksum comparison fails then the failed file will be deleted. + If combined with , then + the deletion will occur if it fails upon the final retry. + + + + + The checksum of the file is verified, if supported by the server. + If the checksum comparison fails then an exception will be thrown. + If combined with , then the throw will + occur upon the failure of the final retry, and/or if combined with + the method will throw after the deletion is processed. + + + + + The checksum of the file is verified, if supported by the server. + If the checksum comparison fails then the method returns false and no other action is taken. + + + + + Flags that can control how a file listing is performed. If you are unsure what to use, set it to Auto. + + + + + Not z/OS Server + + + + + HFS / USS + + + + + z/OS classic dataset + + + + + Partitioned dataset member, RECFM != U + + + + + Partitioned dataset member, RECFM = U + + + + + SITE FILETYPE=JES LIST + + + + + Event fired if a bad SSL certificate is encountered. This even is used internally; if you + don't have a specific reason for using it you are probably looking for FtpSslValidation. + + + + + + + Event is fired when a SSL certificate needs to be validated + + The control connection that triggered the event + Event args + + + + Event args for the FtpSslValidationError delegate + + + + + The certificate to be validated + + + + + The certificate chain + + + + + Validation errors, if any. + + + + + Gets or sets a value indicating if this certificate should be accepted. The default + value is false. If the certificate is not accepted, an AuthenticationException will + be thrown. + + + + + Exception triggered on FTP authentication failures + + + + + Initializes a new instance of a FtpAuthenticationException + + Status code + Associated message + + + + Initializes a new instance of a FtpAuthenticationException + + The FtpReply to build the exception from + + + + Must be implemented so every Serializer can Deserialize the Exception + + + + + Exception triggered on FTP command failures + + + + + Gets the completion code associated with the response + + + + + The type of response received from the last command executed + + + + + Setup the error message string + + + + + Initializes a new instance of a FtpResponseException + + Status code + Associated message + + + + Initializes a new instance of a FtpResponseException + + The FtpReply to build the exception from + + + + Must be implemented so every Serializer can Deserialize the Exception + + + + + FTP related error + + + + + Initializes a new instance of the class. + + The error message + + + + Initializes a new instance of the class with an inner exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Must be implemented so every Serializer can Deserialize the Exception + + + + + Exception is thrown when the required hash algorithm is unsupported by the server. + + + + + Gets the unsupported hash algorithm + + + + + Default constructor + + + + + Algorithm-specific constructor + + + + + Must be implemented so every Serializer can Deserialize the Exception + + + + + Exception is thrown when TLS/SSL encryption could not be negotiated by the FTP server. + + + + + AuthenticationException that caused this. + + + + + Default constructor + + + + + Custom error message + + Error message + + + + Must be implemented so every Serializer can Deserialize the Exception + + + + + Exception thrown by FtpListParser when parsing of FTP directory listing fails. + + + + + Creates a new FtpListParseException. + + + + + Must be implemented so every Serializer can Deserialize the Exception + + + + + Exception is thrown by FtpClient/AsyncFtpClient when the primary file or folder to be downloaded is missing. + + + + + Gets the type of file system object. + + + + + Gets the full path name to the file or folder. + + + + + Gets the name of the file or folder. Does not include the full path. + + + + + Creates a new FtpMissingObjectException. + + The original exception. + + + + Must be implemented so every Serializer can Deserialize the Exception + + + + + Exception is thrown by FtpSocketStream when there is no FTP server socket to connect to. + + + + + Creates a new FtpMissingSocketException. + + The original exception. + + + + Must be implemented so every Serializer can Deserialize the Exception + + + + + FtpProtocolUnsupportedException + + + + + FtpProtocolUnsupportedException + + Error message + + + + FtpProxyException + + + + + FtpProxyException + + + + + FtpProxyException + + + + + FtpProxyException + + + + + Exception is thrown when TLS/SSL encryption could not be negotiated by the FTP server. + + + + + Default constructor + + + + + Custom error message + + Error message + + + + Must be implemented so every Serializer can Deserialize the Exception + + + + + Extension methods related to FTP tasks + + + + + Check if operation can resume after . + + Received exception. + Result of checking. + + + + Extension methods related to FTP tasks + + + + + Checks if the array is null or 0 length. + + + + + Checks if the array is null or 0 length. + + + + + Converts the arguments to an array of strings. + + + + + Ensures the given item is only added once. If it was not present true is returned, else false is returned. + + + + + Shallow clones the list by copying each item to a new list. + + + + + Extension methods related to FTP date time values + + + + + Converts the FTP date string into a DateTime object, without performing any timezone conversion. + + The date string + The client object this is done for + Date formats to try parsing the value from (eg "yyyyMMddHHmmss") + A object representing the date, or if there was a problem + + + + Generates an FTP date-string from the DateTime object, without performing any timezone conversion. + + The date value + A string representing the date + + + + Generates C# code to create this date. + + + + + Extension methods related to FTP tasks + + + + + Validates that the FtpError flags set are not in an invalid combination. + + The error handling options set + True if a valid combination, otherwise false + + + + Checks if the operation was successful or skipped (indicating success). + + + + + Checks if the operation has failed. + + + + + Extension methods related to FTP tasks + + + + + Checks if the given file exists in the given file listing. + Supports servers that return: 1) full paths, 2) only filenames, 3) full paths without slash prefixed, 4) full paths with invalid slashes + + The listing returned by GetNameListing + The full file path you want to check + + + + + Checks if the given file exists in the given file listing. + + The listing returned by GetListing + The full file path you want to check + + + + + Extension methods related to FTP tasks + + + + + Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB) + + + + + Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB) + + + + + Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB) + + + + + Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB) + + + + + Parses a line from a file listing using the first successful parser, or the specified parser. + Returns an FtpListItem object representing the parsed line, or null if the line was unable to be parsed. + + + + + the FTP connection that owns this parser + + + + + current parser, or parser set by user + + + + + parser calculated based on system type (SYST command) + + + + + if we have detected that the current parser is valid + + + + + Is the version number returned as part of the filename? + + Some VMS FTP servers do not permit a file to be deleted unless + the filename includes the version number. Note that directories are + never returned with the version number. + + + + + Initializes a new instance of the class. + + An existing object + + + + Try to auto-detect which parser is suitable given a system string. + + + + + Parse raw file from server into a file object, using the currently active parser. + + + + + Validate if the current parser is correct, or if another parser seems more appropriate. + + + + + Validate if the current parser is correct + + + + + Helper class to convert FtpHashAlgorithm + + + + + Get FtpHashAlgorithm from its string representation + + Name of the hash algorithm + The FtpHashAlgorithm + + + + Get string representation of FtpHashAlgorithm + + FtpHashAlgorithm to be converted into string + Name of the hash algorithm + + + + Get the first supported algorithm, in the standard order of preference. If no hashing algos found, returns NONE. + + + + + Parses the received FTP hash response into a new FtpHash object. + + + + + Extension methods related to FTP tasks + + + + + Returns true if the given path is a directory path. + + + + + Ensures the given directory exists. + + + + + Combine the given base path with the relative path + + + + + The local ports. + + + + + Get random local port for the given local IP address + + + + + Log a message to the given IFluentLogger class. + + + + + Get the log prefix for the given trace level type. + + + + + Checks if the given listing is a valid IBM OS/400 file listing + + + + + Parses IBM OS/400 format listings + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Parses the last modified date from IBM OS/400 format listings + + + + + Checks if the given listing is a valid IBM z/OS file listing + + + + + Parses IBM z/OS format listings + + The FTP client + A line from the listing + Current location + FtpListItem if the item is able to be parsed + + + + Parses the last modified date from IBM z/OS format listings + + + + + Checks if the given listing is a valid Machine Listing item + + + + + Parses MLSD/MLST format listings + + A line from the listing + Server capabilities + The FTP client + FtpListItem if the item is able to be parsed + + + + Parses the date modified field from MLSD/MLST format listings + + + + + Parses the file size field from MLSD/MLST format listings + + + + + Parses the permissions from MLSD/MLST format listings + + + + + Checks if the given listing is a valid NonStop file listing + + + + + Parses NonStop format listings + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Parses the directory type and file size from NonStop format listings + + + + + Parses the last modified date from NonStop format listings + + + + + Checks if the given listing is a valid Unix file listing + + + + + Parses Unix format listings + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Parses the permissions from Unix format listings + + + + + Parses the link count from Unix format listings + + + + + Parses the owner and group permissions from Unix format listings + + + + + Parses the file size from Unix format listings + + + + + Parses day-of-month from Unix format listings + + + + + Parses the file or folder name from Unix format listings + + + + + Parses the last modified date from Unix format listings + + + + + Parses the last modified year from Unix format listings + + + + + Parses the last modified date from Unix format listings + + + + + Parses Unix format listings with alternate parser + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Checks if the given listing is a valid VMS file listing + + + + + Parses Vax/VMS format listings + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Parses the file size from Vax/VMS format listings + + + + + Parses the owner and group permissions from Vax/VMS format listings + + + + + Parses the permissions from Vax/VMS format listings + + + + + Parses the last modified date from Vax/VMS format listings + + + + + Checks if the given listing is a valid IIS/DOS file listing + + + + + Parses IIS/DOS format listings + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Parses the file or folder name from IIS/DOS format listings + + + + + Parses the file size and checks if the item is a directory from IIS/DOS format listings + + + + + Parses the last modified date from IIS/DOS format listings + + + + + Extension methods related to FTP tasks + + + + + Calculates the CHMOD value from the permissions flags + + + + + Calculates the permissions flags from the CHMOD value + + + + + Calculate the CHMOD integer value given a set of permissions. + + + + + Checks if the permission value has the given flag + + + + + Extension methods related to FTP tasks + + + + + Checks if this FTP path is a top level path + + + + + Checks if the given path is a root directory or working directory path + + + + + + + Converts the specified path into a valid FTP file system path. + Replaces invalid back-slashes with valid forward-slashes. + Replaces multiple slashes with single slashes. + Removes the ending postfix slash if any. + + The file system path + A path formatted for FTP + + + + Creates a valid FTP path by appending the specified segments to this string + + This string + The path segments to append + A valid FTP path + + + + Gets the parent directory path (formatted for a FTP server) + + The path + The parent directory path + + + + Gets the file name and extension from the path. + Supports paths with backslashes and forwardslashes. + + The full path to the file + The file name + + + + Converts a Windows or Unix-style path into its segments for segment-wise processing + + + + + + Get the full path of a given FTP Listing entry + + + + + Extension methods related to FTP tasks + + + + + Checks if every character in the string is whitespace, or the string is null. + + + + + Checks if the string is null or 0 length. + + + + + Join the given strings by a delimiter. + + + + + Join the given strings by a delimiter. + + + + + Adds a prefix to the given strings, returns a new array. + + + + + Adds a prefix to the given strings, returns a new array. + + + + + Ensure a string has the given prefix + + + + + Ensure a string has the given postfix + + + + + Remove a prefix from a string, only if it has the given prefix + + + + + Remove a postfix from a string, only if it has the given postfix + + + + + Escape a string into a valid C# string literal. + Implementation from StackOverflow - https://stackoverflow.com/a/14087738 + + + + + Split into fields by splitting on tokens + + + + + Checks if all the characters in this string are digits or dots + + + + + Checks if the string contains any of the given values + + + + + Checks if RexEx Pattern is valid + + + + + Checks if the reply contains any of the known error strings, by checking in case-insensitive manner. + + + + + Checks if the string equals any of these values, by checking in case-sensitive manner. + + + + + Checks if the string contains the given substring in a case-insensitive manner. + + + + + Checks if the string starts with the given substring in a case-insensitive manner. + + + + + Checks if the string ends with the given substring in a case-insensitive manner. + + + + + Extension methods related to FTP time span values + + + + + Extension methods related to FTP tasks + + + + + Ensures that the URI points to a server, and not a directory or invalid path. + + + + + + The current "state" of the client + + + + + Used to improve performance of OpenPassiveDataStream. + Enhanced-passive mode is tried once, and if not supported, is not tried again. + + + + + Used to improve performance of GetFileSize. + SIZE command is tried, and if the server cannot send it in ASCII mode, we switch to binary each time you call GetFileSize. + However most servers will support ASCII, so we can get the file size without switching to binary, improving performance. + + + + + Used to improve performance of GetListing. + You can set this to true by setting the RecursiveList property. + + + + + Used to automatically dispose cloned connections after FXP transfer has ended. + + + + + Cached value of the last read working directory (absolute path). + + + + + Cached value of the last set hash algorithm. + + + + + Did the FTPS connection fail during the last Connect/ConnectAsync attempt? + + + + + Did the UTF8 encoding setting work during the last Connect/ConnectAsync attempt? + + + + + Store the current data type setting + + + + + Allow checking for stale data on socket? + + + + + We are in a sequence of commands that should not be interrupted + by an automatic reconnect + + + + + Count the reconnects + Reset this value when a non-reconnect takes place + + + + + These flags must be reset every time we connect, to allow for users to connect to + different FTP servers with the same client object. + + + + + These flags must be copied when we quickly clone the connection. + + + + + Avoid repeated DNS queries for the same host name + + + + + During and after a z/OS GetListing(), this value stores the + z/OS filesystem realm that was encountered. + The value is used internally to control the list parse mode + + + + + During and after a z/OS GetListing(), this value stores the + the LRECL that was encountered (for a realm = Member only). + The value is used internally to calculate member sizes + + + + + Holds all the configuration settings for a single FTP client. + One FtpConfig object can only be bound to one client at a time. + If you want to reuse it across multiple FTP clients, then clone it and then reuse it. + + + + + Which FtpClient are we bound to? + + + + + Should the function calls be logged in Verbose mode? + + + + + Should the FTP server host IP/domain be shown in the logs (true) or masked out (false)? + + + + + Should the FTP username be shown in the logs (true) or masked out (false)? + + + + + Should the FTP password be shown in the logs (true) or masked out (false)? + + + + + Should the command duration be shown after each log command? + + + + + Flags specifying which versions of the internet protocol (IPV4 or IPV6) to + support when making a connection. All addresses returned during + name resolution are tried until a successful connection is made. + You can fine tune which versions of the internet protocol to use + by adding or removing flags here. I.e., setting this property + to FtpIpVersion.IPv4 will cause the connection process to + ignore IPv6 addresses. The default value is ANY version. + + + + + Gets or sets the length of time in milliseconds + that must pass since the last socket activity + before calling + on the socket to test for connectivity. + Setting this interval too low will + have a negative impact on performance. Setting this + interval to 0 disables Polling all together. + The default value is 15 seconds. + + + + + Gets or sets a value indicating whether a test should be performed to + see if there is stale (unrequested data) sitting on the socket. In some + cases the control connection may time out but before the server closes + the connection it might send a 4xx response that was unexpected and + can cause synchronization errors with transactions. To avoid this + problem the method checks to see if there is any data + available on the socket before executing a command. On Azure hosting + platforms this check can cause an exception to be thrown. In order + to work around the exception you can set this property to false + which will skip the test entirely however doing so eliminates the + best effort attempt of detecting such scenarios. See this thread + for more details about the Azure problem: + https://netftp.codeplex.com/discussions/535879 + + + + + Gets or sets the length of time in milliseconds after last command + (NOOP or other) that a NOOP command is sent by /. + This is called during downloading/uploading. Setting this + interval to 0 disables / all together. + The default value is 0 (disabled). + + + + + When this value is set to true (default) the control connection + will set which features are available by executing the FEAT command + when the connect method is called. + + + + + Client certificates to be used in SSL authentication process + + + + + Delegate used for resolving local address, used for active data connections + This can be used in case you're behind a router, but port forwarding is configured to forward the + ports from your router to your internal IP. In that case, we need to send the router's IP instead of our internal IP. + + + + + Ports used for Active Data Connection. + Useful when your FTP server has certain ports that are blocked or used for other purposes. + + + + + Ports blocked for Passive Data Connection (PASV and EPSV). + Useful when your FTP server has certain ports that are blocked or used for other purposes. + + + + + Maximum number of passive connections made in order to find a working port for Passive Data Connection (PASV and EPSV). + Only used if PassiveBlockedPorts is non-null. + + + + + Data connection type, default is AutoPassive which tries + a connection with EPSV first and if it fails then tries + PASV before giving up. If you know exactly which kind of + connection you need you can slightly increase performance + by defining a specific type of passive or active data + connection here. + + + + + Disconnect from the server without sending QUIT. This helps + work around IOExceptions caused by buggy connection resets + when closing the control connection. + + + + + Gets or sets the length of time in milliseconds to wait for a connection + attempt to succeed before giving up. Default is 0 (Use OS default timeout) + See: https://github.com/robinrodricks/FluentFTP/wiki/FTP-Connection#connection-timeout-settings + and: https://github.com/robinrodricks/FluentFTP/wiki/FTP-Connection#faq_timeoutwindows + + + + + Gets or sets the length of time wait in milliseconds for data to be + read from the underlying stream. The default value is 15000 (15 seconds). + + + + + Gets or sets the length of time in milliseconds for a data connection + to be established before giving up. Default is 15000 (15 seconds). + + + + + Gets or sets the length of time in milliseconds the data channel + should wait for the server to send data. Default value is + 15000 (15 seconds). + + + + + Gets or sets a value indicating if should be set on + the underlying stream's socket. If the connection is alive, the option is + adjusted in real-time. The value is stored and the KeepAlive option is set + accordingly upon any new connections. The value set here is also applied to + all future data streams. It has no affect on cloned control connections or + data connections already in progress. The default value is false. + + + + + Type of SSL to use, or none. Default is none. Explicit is TLS, Implicit is SSL. + + + + + Indicates if data channel transfers should be encrypted. Only valid if + property is not equal to . + + + + + Encryption protocols to use. Only valid if EncryptionMode property is not equal to . + Default value is .NET Framework defaults from the class. + + + + + Whether to use SSL Buffering to speed up data transfer during FTP operations. + SSL Buffering is always disabled on .NET 5.0 and later due to platform issues (see issue 682 in FluentFTP issue tracker). + + + + + Gets or sets the max number of socket write/read transactions + before an automatic disconnect/reconnect is performed. + This is required to bypass an SSL issue that occurs after a specific number of transactions. + Set to zero to disable automatic reconnects. + + + + + Accept any SSL certificate received from the server and skip performing + the validation using the ValidateCertificate callback. + Useful for Powershell users. + + + + + Indicates if the certificate revocation list is checked during authentication. + Useful when you need to maintain the certificate chain validation, + but skip the certificate revocation check. + WARNING: Enabling this can cause memory leaks in some conditions (see issue #710 for details). + + + + + Controls if the file listings are downloaded in Binary or ASCII mode. + + + + + File listing parser to be used. + Automatically calculated based on the type of the server at the time of connection. + If you want to override this property, make sure to do it after calling Connect. + + + + + Culture used to parse file listings + + + + + Custom file listing parser to be used. + + + + + Callback format to implement your custom FTP listing line parser. + + The line from the listing + The server capabilities + The FTP client + Return an FtpListItem object if the line can be parsed, else return null + + + + The timezone of the FTP server. If the server is in Tokyo with UTC+9 then set this to 9. + If the server returns timestamps in UTC then keep this 0. + + + + + Server timestamps are converted into the given timezone. + ServerTime will return the original timestamp. + LocalTime will convert the timestamp into your local machine's timezone. + UTC will convert the timestamp into UTC format (GMT+0). + You need to set TimeZone and LocalTimeZone (.NET core only) for these to work. + + + + + If true, increases performance of GetListing by reading multiple lines + of the file listing at once. If false then GetListing will read file + listings line-by-line. If GetListing is having issues with your server, + set it to false. + + The number of bytes read is based upon . + + + + + Bytes to read during GetListing. Only honored if is true. + + + + + Gets or sets the number of bytes transferred in a single chunk (a single FTP command). + Used by / and / + to transfer large files in multiple chunks. + + + + + Gets or sets the size of the file buffer when reading and writing files on the local file system. + Used by / and / + and all the other file and directory transfer methods. + + + + + Gets or sets the retry attempts allowed when a verification failure occurs during download or upload. + This value must be set to 1 or more. + + + + + Rate limit for uploads in kbyte/s. Set this to 0 for unlimited speed. + Honored by high-level API such as Upload(), Download(), UploadFile(), DownloadFile().. + + + + + Rate limit for downloads in kbytes/s. Set this to 0 for unlimited speed. + Honored by high-level API such as Upload(), Download(), UploadFile(), DownloadFile().. + + + + + Controls if zero-byte files should be downloaded or skipped. + If false, then no file is created/overwritten into the filesystem. + + + + + Controls if the high-level API uploads files in Binary or ASCII mode. + + + + + Controls if the high-level API downloads files in Binary or ASCII mode. + + + + + Controls if the UploadDirectory API deletes the excluded files when uploading in Mirror mode. + If true, then any files that are excluded will be deleted from the FTP server if they are + excluded from the local system. This is done to keep the server in sync with the local system. + But if it is false, the excluded files are not touched on the server, and simply ignored. + + + + + Controls if the DownloadDirectory API deletes the excluded files when downloading in Mirror mode. + If true, then any files that are excluded will be deleted from the local filesystem if they are + excluded from the FTP server. This is done to keep the local filesystem in sync with the FTP server. + But if it is false, the excluded files are not touched on the local filesystem, and simply ignored. + + + + + Controls if the FXP server-to-server file transfer API uses Binary or ASCII mode. + + + + + Controls how often the progress reports are sent during an FXP file transfer. + The default value is 1000 (1 second). + + + + + Controls if the HOST command is sent immediately after the handshake. + Useful when you are using shared hosting and you need to inform the + FTP server which domain you want to connect to. + + + + + Controls which domain is sent with the HOST command. + If this is null, then the Host parameter of the FTP client is sent. + + + + + The local socket will be bound to the given local IP/interface. + This is useful if you have several usable public IP addresses and want to use a particular one. + + + + + Bind this FtpConfig object to the given FTP client. + + + + + + Return a deep clone of this FtpConfig object. + + + + + Copy settings from one config object to another. + + + + + Object that keeps track of an active FXP Connection between 2 FTP servers. + + + + + A connection to the FTP server where the file or folder is currently stored + + + + + A connection to the destination FTP server where you want to create the file or folder + + + + + A connection to the destination FTP server used to track progress while transfer is going on. + + + + + Gets a value indicating if this object has already been disposed. + + + + + Closes an FXP connection by disconnecting and disposing off the FTP clients that are + cloned for this FXP connection. Manually created FTP clients are untouched. + + + + + Object that keeps track of an active FXP Connection between 2 FTP servers. + + + + + A connection to the FTP server where the file or folder is currently stored + + + + + A connection to the destination FTP server where you want to create the file or folder + + + + + A connection to the destination FTP server used to track progress while transfer is going on. + + + + + Gets a value indicating if this object has already been disposed. + + + + + Closes an FXP connection by disconnecting and disposing off the FTP clients that are + cloned for this FXP connection. Manually created FTP clients are untouched. + + + + + Represents a computed hash of an object + on the FTP server. See the following link + for more information: + http://tools.ietf.org/html/draft-bryan-ftpext-hash-02 + + + + + Gets the algorithm that was used to compute the hash + + + + + Gets the computed hash returned by the server + + + + + Gets a value indicating if this object represents a + valid hash response from the server. + + + + + Computes the hash for the specified file and compares + it to the value in this object. CRC hashes are not supported + because there is no built-in support in the .net framework and + a CRC implementation exceeds the scope of this project. If you + attempt to call this on a CRC hash a will + be thrown. + + The file to compute the hash for + True if the computed hash matches what's stored in this object. + Thrown if called on a CRC Hash + + + + Computes the hash for the specified stream and compares + it to the value in this object. CRC hashes are not supported + because there is no built-in support in the .net framework and + a CRC implementation exceeds the scope of this project. If you + attempt to call this on a CRC hash a will + be thrown. + + The stream to compute the hash for + True if the computed hash matches what's stored in this object. + Thrown if called on a CRC Hash + + + + Creates an empty instance. + + + + + Represents a file system object on the server + + + + + Blank constructor, you will need to fill arguments manually. + + NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing(). + + + + + Constructor with mandatory arguments filled. + + NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing(). + + + + + Constructor with mandatory arguments filled. + + NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing(). + + + + + Gets the type of file system object. + + + + + Gets the sub type of file system object. + + + + + Gets the full path name to the file or folder. + + + + + Gets the name of the file or folder. Does not include the full path. + + + + + Gets the target a symbolic link points to. + + + + + Gets the number of links pointing to this file. Only supplied by Unix servers. + + + + + Gets the object that the LinkTarget points to. + + + + + Gets the last write time of the object after timezone conversion (if enabled). + + + + + Gets the created date of the object after timezone conversion (if enabled). + + + + + Gets the last write time of the object before any timezone conversion. + + + + + Gets the created date of the object before any timezone conversion. + + + + + Gets the size of the object. + + + + + Gets special UNIX permissions such as Sticky, SUID and SGID. + + + + + Gets the owner permissions. + + + + + Gets the group permissions. + + + + + Gets the others permissions. + + + + + Gets the raw string received for the file permissions. + Use this if the other properties are blank/invalid. + + + + + Gets the file permissions in the CHMOD format. + + + + + Gets the raw string received for the file's GROUP permissions. + Use this if the other properties are blank/invalid. + + + + + Gets the raw string received for the file's OWNER permissions. + Use this if the other properties are blank/invalid. + + + + + Gets the input string that was parsed to generate the + values in this object. + + + + + Returns a string representation of this object and its properties + + A string representing this object + + + + Returns a code representation of this object and its properties + + + + + Metadata of a single log message. + + + + + The current "profile" defining the client + + + + + The host IP address or URL of the FTP server + + + + + The FTP username and password used to login + + + + + A working Encryption Mode found for this profile + + + + + A working Ssl Protocol setting found for this profile + + + + + A working Data Connection Type found for this profile + + + + + A working Encoding setting found for this profile + + + + + A working Timeout setting found for this profile, or 0 if default value should be used + + + + + A working SocketPollInterval setting found for this profile, or 0 if default value should be used + + + + + A working RetryAttempts setting found for this profile, or 0 if default value should be used + + + + + If the server surely supports the given encoding. + + + + + Generates valid C# code for this connection profile. + + + + + + Class to report FTP file transfer progress during upload or download of files + + + + + A value between 0-100 indicating percentage complete, or -1 for indeterminate. + Used to track the progress of an individual file transfer. + + + + + A value indicating how many bytes have been transferred. + When unable to calculate percentage, having the partial byte count may help in providing some feedback. + + + + + A value representing the current Transfer Speed in Bytes per seconds. + Used to track the progress of an individual file transfer. + + + + + A value representing the calculated 'Estimated time of arrival'. + Used to track the progress of an individual file transfer. + + + + + Stores the absolute remote path of the current file being transferred. + + + + + Stores the absolute local path of the current file being transferred. + + + + + Stores the index of the file in the listing. + Only used when transferring multiple files or an entire directory. + + + + + Stores the total count of the files to be transferred. + Only used when transferring multiple files or an entire directory. + + + + + Create a new FtpProgress object for meta progress info. + + + + + Create a new FtpProgress object for individual file transfer progress. + + + + + Convert Transfer Speed (bytes per second) in human readable format + + + + + Create a new FtpProgress object for a file transfer and calculate the ETA, Percentage and Transfer Speed. + + + + + Connection profile for a proxy connection. + + + + + Proxy server host name. Mandatory. + + + + + Proxy server port. Mandatory. + + + + + Proxy server login credentials. Mandatory if your proxy needs authentication, leave it blank otherwise. + + + + + FTP server host name. Optional. You can either set it here or set `ftpClient.Host` later on. + + + + + FTP server port. Optional. You can either set it here or set `ftpClient.Port` later on. + + + + + FTP server login credentials. Optional. You can either set it here or set `ftpClient.Credentials` later on. + + + + + Represents a reply to an event on the server + + + + + The type of response received from the last command executed + + + + + The status code of the response + + + + + The message, if any, that the server sent with the response + + + + + Informational messages sent from the server + + + + + General success or failure of the last command executed, by checking the FTP status code. + 1xx, 2xx, 3xx indicate success and 4xx, 5xx are failures. + + + + + Gets the error message including any informational output + that was sent by the server. Sometimes the final response + line doesn't contain anything informative as to what was going + on with the server. Instead it may send information messages so + in an effort to give as meaningful as a response as possible + the informational messages will be included in the error. + + + + + Stores the command that produced this reply (if any) + + + + + Stores the result of a file transfer when UploadDirectory or DownloadDirectory is used. + + + + + Returns true if the file was downloaded, false if it was uploaded. + + + + + Gets the type of file system object. + + + + + Gets the size of the file, or 0 if unknown. + + + + + Gets the name and extension of the file. + + + + + Stores the absolute remote path of the current file being transferred. + + + + + Stores the absolute local path of the current file being transferred. + + + + + Gets the error that occurring during transferring this file, if any. + + + + + Returns true if the file was downloaded/uploaded, or the file was already existing with the same file size. + + + + + Was the file skipped? + + + + + Was the file skipped due to failing the rule condition? + + + + + Was there an error during transfer? You can read the Exception property for more details. + + + + + Convert this result to a FTP list item. + + + + + Human readable results + + + + + Reply from a SIZE command + + + + + The returned file size + + + + + The reply we got + + + + + A FTP client with a user@host proxy identification, that works with Blue Coat FTP Service servers. + + The 'blue coat variant' forces the client to wait for a 220 FTP response code in + the handshake phase. + + + + A FTP client with a user@host proxy identification. + Proxy information + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + Redefine the first dialog: auth with proxy information + + + A FTP client with a HTTP 1.1 proxy implementation. + + + A FTP client with a HTTP 1.1 proxy implementation + Proxy information + + + Redefine the first dialog: HTTP Frame for the HTTP 1.1 Proxy + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Connects to the server using an existing + + The existing socket stream + The token that can be used to cancel the entire process + + + + Connects to the server using an existing + + The existing socket stream + Host name + Port number + IP version to use + IP version to use + + + + Abstraction of an FtpClient with a proxy + + + + The proxy connection info. + + + A FTP client with a HTTP 1.1 proxy implementation + Proxy information + + + Redefine connect for FtpClient : authentication on the Proxy + The socket stream. + Cancellation token. + + + + A FTP client with a SOCKS4a proxy implementation. + + + + + Setup a SOCKS4a proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Called during . Typically extended by FTP proxies. + + + + + Connect + + + + + A FTP client with a SOCKS4 proxy implementation. + + + + + Setup a SOCKS4 proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Called during . Typically extended by FTP proxies. + + + + + Connect + + + + + A FTP client with a SOCKS5 proxy implementation. + + + + + Setup a SOCKS5 proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Connect + + + + A FTP client with a user@host proxy identification. + + + A FTP client with a user@host proxy identification. + Proxy information + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + Redefine the first dialog: auth with proxy information + + + + This class is not reusable. + You have to create a new instance for each connection / attempt. + + + + + This class is not reusable. + You have to create a new instance for each connection / attempt. + + + + + Translate the host name or IP address to a byte array. + + Host name or IP address. + Byte array representing IP address in bytes. + + + + Translate the destination port value to a byte array. + + Destination port. + Byte array representing an 16 bit port number as two bytes. + + + + This class is not reusable. + You have to create a new instance for each connection / attempt. + + + + + A FTP client with a user@host proxy identification, that works with Blue Coat FTP Service servers. + + The 'blue coat variant' forces the client to wait for a 220 FTP response code in + the handshake phase. + + + + A FTP client with a user@host proxy identification. + Proxy information + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + Redefine the first dialog: auth with proxy information + + + A FTP client with a HTTP 1.1 proxy implementation. + + + A FTP client with a HTTP 1.1 proxy implementation + Proxy information + + + Redefine the first dialog: HTTP Frame for the HTTP 1.1 Proxy + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Connects to the server using an existing + + The existing socket stream + + + + Connects to the server using an existing + + The existing socket stream + Host name + Port number + IP version to use + + + + Abstraction of an FtpClient with a proxy + + + + The proxy connection info. + + + A FTP client with a HTTP 1.1 proxy implementation + Proxy information + + + Redefine connect for FtpClient : authentication on the Proxy + The socket stream. + + + + A FTP client with a SOCKS4a proxy implementation. + + + + + Setup a SOCKS4a proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Called during Connect(). Typically extended by FTP proxies. + + + + + Connect + + + + + + Connect + + + + + + + + + A FTP client with a SOCKS4 proxy implementation. + + + + + Setup a SOCKS4 proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Called during Connect(). Typically extended by FTP proxies. + + + + + Connect + + + + + Connect + + + + + A FTP client with a SOCKS5 proxy implementation. + + + + + Setup a SOCKS5 proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Connect + + + + + Connect + + + + A FTP client with a user@host proxy identification. + + + A FTP client with a user@host proxy identification. + Proxy information + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + Redefine the first dialog: auth with proxy information + + + + Only accept files that have the given extension, or exclude files of a given extension. + + + + + If true, only files of the given extension are uploaded or downloaded. If false, files of the given extension are excluded. + + + + + The extensions to match + + + + + Only accept files that have the given extension, or exclude files of a given extension. + + If true, only files of the given extension are uploaded or downloaded. If false, files of the given extension are excluded. + The extensions to match + + + + Checks if the files has the given extension, or exclude files of the given extension. + + + + + Only accept files whose names match the given regular expression(s), or exclude files that match. + + + + + If true, only items where one of the supplied regex pattern matches are uploaded or downloaded. + If false, items where one of the supplied regex pattern matches are excluded. + + + + + The files names to match + + + + + Only accept items that match one of the supplied regex patterns. + + If true, only items where one of the supplied regex pattern matches are uploaded or downloaded. If false, items where one of the supplied regex pattern matches are excluded. + The list of regex patterns to match. Only valid patterns are accepted and stored. If none of the patterns are valid, this rule is disabled and passes all objects. + + + + Checks if the FtpListItem Name does match any RegexPattern + + + + + Only accept files that have the given name, or exclude files of a given name. + + + + + If true, only files of the given name are uploaded or downloaded. If false, files of the given name are excluded. + + + + + The files names to match + + + + + Only accept files that have the given name, or exclude files of a given name. + + If true, only files of the given name are downloaded. If false, files of the given name are excluded. + The files names to match + + + + Checks if the files has the given name, or exclude files of the given name. + + + + + Only accept folders whose names match the given regular expression(s), or exclude folders that match. + + + + + If true, only folders where one of the supplied regex pattern matches are uploaded or downloaded. + If false, folders where one of the supplied regex pattern matches are excluded. + + + + + The files names to match + + + + + Which path segment to start checking from + + + + + Only accept items that one of the supplied regex pattern. + + If true, only folders where one of the supplied regex pattern matches are uploaded or downloaded. If false, folders where one of the supplied regex pattern matches are excluded. + The list of regex patterns to match. Only valid patterns are accepted and stored. If none of the patterns are valid, this rule is disabled and passes all objects. + Which path segment to start checking from. 0 checks root folder onwards. 1 skips root folder. + + + + Checks if the FtpListItem Name does match any RegexPattern + + + + + Only accept folders that have the given name, or exclude folders of a given name. + + + + + Common folders to blacklist + + + + + If true, only folders of the given name are uploaded or downloaded. + If false, folders of the given name are excluded. + + + + + The folder names to match + + + + + Which path segment to start checking from + + + + + Only accept folders that have the given name, or exclude folders of a given name. + + If true, only folders of the given name are downloaded. If false, folders of the given name are excluded. + The folder names to match + Which path segment to start checking from. 0 checks root folder onwards. 1 skips root folder. + + + + Checks if the folders has the given name, or exclude folders of the given name. + + + + + Base class used for all FTP Rules. Extend this class to create custom rules. + You only need to provide an implementation for IsAllowed, and add any custom arguments that you require. + + + + + Rule object + + + + + Returns true if the object has passed this rules. + + + + + Returns true if the object has passed all the rules. + + + + + Only accept files that are of the given size, or within the given range of sizes. + + + + + Which operator to use + + + + + The first value, required for all operators + + + + + The second value, only required for BetweenRange and OutsideRange operators + + + + + Only accept files that are of the given size, or within the given range of sizes. + + Which operator to use + The first value, required for all operators + The second value, only required for BetweenRange and OutsideRange operators. + + + + Checks if the file is of the given size, or within the given range of sizes. + + + + + The base class used for all FTP server specific support. + You may extend this class to implement support for custom FTP servers. + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return true if your server is detected by the given SYST response message. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Return your FTP server's default capabilities. + Used if your server does not broadcast its capabilities using the FEAT command. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Perform server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Perform async server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Perform server-specific create directory commands here. + Return true if you executed a server-specific command. + + + + + Perform async server-specific create directory commands here. + Return true if you executed a server-specific command. + + + + + Perform server-specific post-connection commands here. + Return true if you executed a server-specific command. + + + + + Perform server-specific post-connection commands here. + Return true if you executed a server-specific command. + + + + + Return true if your server requires custom handling of file size. + + + + + Perform server-specific file size fetching commands here. + Return the file size in bytes. + + + + + Perform server-specific file size fetching commands here. + Return the file size in bytes. + + + + + Check if the given path is a root directory on your FTP server. + If you are unsure, return false. + + + + + Skip reporting a parser error + + + + + Always read to end of stream on a download + If you are unsure, return false. + + + + + Return true if the path is an absolute path according to your server's convention. + + + + + Return true if your server requires custom handling of absolute paths. + + + + + Perform server-specific path modification here. + Return the absolute path. + + + + + Perform server-specific path modification here. + Return the absolute path. + + + + + Return true if your server requires custom handling of absolute dir. + + + + + Perform server-specific path modification here. + Return the absolute dir. + + + + + Perform server-specific path modification here. + Return the absolute path. + + + + + Return true if your server requires custom handling of path and filename concatenation. + + + + + Perform server-specific path modification here. + Return concatenation of path and filename + + + + + Perform server-specific path modification here. + Return concatenation of path and filename + + + + + Return true if your server requires custom handling to handle listing analysis. + + + + + Get the full path of a given FTP Listing entry + Return null indicates custom code decided not to handle this + + + + + Disable SIZE command even if server says it is supported + + + + + Disable MDTM command even if server says it is supported + + + + + Return true if your server requires custom handling to check file existence. + + + + + Check for existence of a file + Return null indicates custom code decided not to handle this + + + + + Check for existence of a file + Return null indicates custom code decided not to handle this + + + + + Server-specific handling for Apache (MINA) FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given SYST response message. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Server-specific handling for BFTPd FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for Cerberus FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for CrushFTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for D-Link FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for FileZilla FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Server-specific handling for FritzBox FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for FTP2S3Gateway FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for glFTPd FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for GlobalScapeEFT FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for HomegateFTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for Huawei FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for IBMOS400FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Server-specific handling for IBMzOSFTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Perform server-specific post-connection commands here. + Return true if you executed a server-specific command. + + + + + Perform server-specific post-connection commands here. + Return true if you executed a server-specific command. + + + + + Get z/OS file size + + The client object this is being done for + The full path of the file whose size you want to retrieve + + Make sure you are in the right realm (z/OS or HFS) before doing this + + The size of the file + + + + Get z/OS file size + + The client object this is being done for + The full path of the file whose size you want to retrieve + The token that can be used to cancel the entire process + + Make sure you are in the right realm (z/OS or HFS) before doing this + + The size of the file + + + + Check if the given path is a root directory on your FTP server. + If you are unsure, return false. + + + + + Skip reporting a parser error + + + + + Always read to End of stream on a download + + + + + Return true if your server requires custom handling of absolute path. + + + + + Perform server-specific path modification here. + Return the absolute path. + + + + + Perform server-specific path modification here. + Return the absolute path. + + + + + Return true if your server requires custom handling of absolute dir. + + + + + Perform server-specific path modification here. + Return null indicates custom code decided not to handle this + Return the absolute dir. + + + + + Perform server-specific path modification here. + Return null indicates custom code decided not to handle this + Return the absolute dir. + + + + + Return true if your server requires custom handling of path and filename concatenation. + + + + + Perform server-specific path modification here. + Return null indicates custom code decided not to handle this + Return concatenation of path and filename + + + + + Perform server-specific path modification here. + Return null indicates custom code decided not to handle this + Return concatenation of path and filename + + + + + Return true if your server requires custom handling to handle listing analysis. + + + + + Get the full path of a given FTP Listing entry + Return null indicates custom code decided not to handle this + + + + + Disable SIZE command even if server says it is supported + + + + + Disable MDTM command even if server says it is supported + + + + + Return true if your server requires custom handling to check file existence. + + + + + Check for existence of a file + Return null indicates custom code decided not to handle this + + + + + Check for existence of a file + Return null indicates custom code decided not to handle this + + + + + Server-specific handling for ABB IDAL FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for MikroTik RouterOS FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for NonStop/Tandem FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Server-specific handling for OpenVMS FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return true if your server is detected by the given SYST response message. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Return your FTP server's default capabilities. + Used if your server does not broadcast its capabilities using the FEAT command. + + + + + Return true if the path is an absolute path according to your server's convention. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Get the full path of a given FTP Listing entry + Return null indicates custom code decided not to handle this + + + + + Server-specific handling for ProFTPD FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Perform server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Perform async server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Perform server-specific create directory commands here. + Return true if you executed a server-specific command. + + + + + Perform async server-specific create directory commands here. + Return true if you executed a server-specific command. + + + + + Server-specific handling for PureFTPd FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Server-specific handling for PyFtpdLib FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for Rumpus FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for ServU FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Perform server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Perform async server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Server-specific handling for SolarisFTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given SYST response message. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Server-specific handling for Titan FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for TP-LINK FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for VsFTPd FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Server-specific handling for WindowsCE FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given SYST response message. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Server-specific handling for WindowsServer/IIS FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Server-specific handling for WS_FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for WuFTPd FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Return your FTP server's default capabilities. + Used if your server does not broadcast its capabilities using the FEAT command. + + + + + Server-specific handling for XLight FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Base class for data stream connections + + + + + Gets the status of the command that was used to open + this data channel + + + + + Gets or sets the control connection for this data stream. Setting + the control connection causes the object to be cloned and a new + connection is made to the server to carry out the task. This ensures + that multiple streams can be opened simultaneously. + + + + + Gets or sets the length of the stream. Only valid for file transfers + and only valid on servers that support the Size command. + + + + + Gets or sets the position of the stream + + + + + Reads data off the stream + + The buffer to read into + Where to start in the buffer + Number of bytes to read + The number of bytes read + + + + Reads data off the stream asynchronously + + The buffer to read into + Where to start in the buffer + Number of bytes to read + The cancellation token for this task + The number of bytes read + + + + Writes data to the stream + + The buffer to write to the stream + Where to start in the buffer + The number of bytes to write to the buffer + + + + Writes data to the stream asynchronously + + The buffer to write to the stream + Where to start in the buffer + The number of bytes to write to the buffer + The for this task + + + + Sets the length of this stream + + Value to apply to the Length property + + + + Sets the position of the stream. Intended to be used + internally by FtpControlConnection. + + The position + + + + Closes the connection and reads the server's reply + + + + + Creates a new data stream object + + The control connection to be used for carrying out this operation + + + + Finalizer + + + + + Stream object for the local files + + + + + Returns the file size using synchronous file I/O. + + + + + Returns the file size using async file I/O. + + + + + Returns the file size using synchronous file I/O. + + + + + Returns the file size using synchronous file I/O. + + + + + Returns a new stream to upload a file from disk. + If the file fits within the fileSizeLimit, then it is read in a single disk call and stored in memory, and a MemoryStream is returned. + If it is larger than that, then a regular read-only FileStream is returned. + + + + + Returns a new stream to download a file to disk. + If the file fits within the fileSizeLimit, then a new MemoryStream is returned. + If it is larger than that, then a regular writable FileStream is returned. + + + + + Stream class used for talking. Used by FtpClient, extended by FtpDataStream + + + + + The client this stream is associated with + + + + + This stream connection to be associated with this client + + + + + Used for tracking read/write activity on the socket + to determine if Poll() should be used to test for + socket connectivity. The socket in this class will + not know it has been disconnected if the remote host + closes the connection first. Using Poll() avoids + the exception that would be thrown when trying to + read or write to the disconnected socket. + + + + + The socket used for talking + + + + + Keep a count of command/response transactions on the + control connection + + + + + Gets or sets the length of time in milliseconds + that must pass since the last socket activity + before calling Poll() on the socket to test for + connectivity. Setting this interval too low will + have a negative impact on performance. Setting this + interval to 0 disables Poll()'ing all together. + The default value is 15 seconds. + + + + + Gets the number of available bytes on the socket, 0 if the + socket has not been initialized. This property is used internally + by FtpClient in an effort to detect disconnections and gracefully + reconnect the control connection. + + + + + Gets a value indicating if this socket stream is connected + + + + + Gets a value indicating if encryption is being used + + + + + Is this stream the control connection? + + + + + The negotiated SSL/TLS protocol version. Will have a valid value after connection is complete. + + + + + The non-encrypted stream + + + + + Gets the underlying stream, could be a NetworkStream or SslStream + + + + + Gets a value indicating if this stream can be read + + + + + Gets a value indicating if this stream if seekable + + + + + Gets a value indicating if this stream can be written to + + + + + Gets the length of the stream + + + + + Gets the current position of the stream. Trying to + set this property throws an InvalidOperationException() + + + + + Event is fired when a SSL certificate needs to be validated + + + + + Gets or sets the amount of time to wait for a read operation to complete. Default + value is Timeout.Infinite. + + + + + Gets or sets the length of time milliseconds to wait + for a connection succeed before giving up. The default + is 0 = disable, use system default timeout. + + + + + Gets the local end point of the socket + + + + + Gets the remote end point of the socket + + + + + Fires the SSL certificate validation event + + Certificate being validated + Certificate chain + Policy errors if any + True if it was accepted, false otherwise + + + + Throws an InvalidOperationException + + Ignored + Ignored + + + + + Throws an InvalidOperationException + + Ignored + + + + Flushes the stream + + + + + Flushes the stream asynchronously + + The for this task + + + + Bypass the stream and read directly off the socket. + + The buffer to read into + The number of bytes read + + + + Bypass the stream and read directly off the socket. + + The buffer to read into + The token that can be used to cancel the entire process + The number of bytes read + + + + Reads data from the stream + + Buffer to read into + Where in the buffer to start + Number of bytes to be read + The amount of bytes read from the stream + + + + Reads data from the stream + + Buffer to read into + Where in the buffer to start + Number of bytes to be read + The for this task + The amount of bytes read from the stream + + + + Reads a line from the socket + + The type of encoding used to convert from byte[] to string + A line from the stream, null if there is nothing to read + + + + Reads all lines from the socket + + The type of encoding used to convert from byte[] to string + The size of the buffer + A list of lines from the stream + + + + Reads a line from the socket asynchronously + + The type of encoding used to convert from byte[] to string + The for this task + A line from the stream, null if there is nothing to read + + + + Reads all lines from the socket + + The type of encoding used to convert from byte[] to string + The size of the buffer + The token that can be used to cancel the entire process + A list of lines from the stream + + + + Writes data to the stream + + Buffer to write to stream + Where in the buffer to start + Number of bytes to be written + + + + Writes data to the stream asynchronously + + Buffer to write to stream + Where in the buffer to start + Number of bytes to be written + The for this task + + + + Writes a line to the stream using the specified encoding + + Encoding used for writing the line + The data to write + + + + Writes a line to the stream using the specified encoding asynchronously + + Encoding used for writing the line + The data to write + The for this task + + + + Disconnects from server + + + + + Safely close the socket if its open + + + + + Sets socket options on the underlying socket + + SocketOptionLevel + SocketOptionName + SocketOptionValue + + + + Check if the specified IP Address is allowed + + The ip address to connect to + The enum value of allowed IP Versions + Textual representation of the address family + + + + Get the IP Address(es) associated with this host + + The host to query + + + + Set the connected IP Address associated with this host + + The host to query + The IP address to store in the cache + + + + Connect to the specified host + + The host to connect to + The port to connect to + Internet Protocol versions to support during the connection phase + + + + Connect to the specified host + Detects timeout and throws that explicitly + + The ip address to connect to + The port to connect to + + + + Get the IP Address(es) associated with this host + + The host to query + The token that can be used to cancel the entire process + + + + Connect to the specified host + + The host to connect to + The port to connect to + Internet Protocol versions to support during the connection phase + The token that can be used to cancel the entire process + + + + Connect to the specified host + Detects timeout and throws that explicitly + + The ip address to connect to + The port to connect to + The token that can be used to cancel the entire process + + + + Activates SSL on this stream using the specified protocols. Fires the ValidateCertificate event. + If this event is not handled and there are SslPolicyErrors present, the certificate will + not be accepted. + + The host to authenticate the certificate against + A collection of client certificates to use when authenticating the SSL stream + A bitwise parameter for supported encryption protocols. + Thrown when authentication fails + + + + Activates SSL on this stream using the specified protocols. Fires the ValidateCertificate event. + If this event is not handled and there are SslPolicyErrors present, the certificate will + not be accepted. + + The host to authenticate the certificate against + A collection of client certificates to use when authenticating the SSL stream + A bitwise parameter for supported encryption protocols. + The token that can be used to cancel the entire process + Thrown when authentication fails + + + + Conditionally create a SSL BufferStream based on the configuration in FtpClient.SslBuffering. + + + + + If SSL Buffering is enabled it returns the BufferStream, else returns the internal NetworkStream. + + + + + + Deactivates SSL on this stream using the specified protocols and reverts back to plain-text FTP. + + + + + Instructs this stream to listen for connections on the specified address and port + + The address to listen on + The port to listen on + + + + Accepts a connection from a listening socket + + + + + Asynchronously accepts a connection from a listening socket + + + + + + + + Completes a BeginAccept() operation + + IAsyncResult returned from BeginAccept + + + + Accepts a connection from a listening socket + + + + + FtpSslStream is an SslStream that properly sends a close_notify message when closing + the connection. This is required per RFC 5246 to avoid truncation attacks. + For more information, see https://tools.ietf.org/html/rfc5246#section-7.2.1 + + Inspired by: https://stackoverflow.com/questions/237807/net-sslstream-doesnt-close-tls-connection-properly/22626756#22626756 + + See: https://learn.microsoft.com/en-us/windows/win32/secauthn/shutting-down-an-schannel-connection + See: https://learn.microsoft.com/en-us/windows/win32/secauthn/using-sspi-with-a-windows-sockets-client?source=recommendations + + Note: + Microsoft says we should not override close(): + "Place all cleanup logic for your stream object in Dispose(Boolean). Do not override Close()." + See: https://learn.microsoft.com/en-us/dotnet/api/system.io.stream.dispose?view=net-7.0 + But: We recently changed the below logic due to issue #1107, which solved the problem in part + + + + + + Create an SslStream object + + + + + Close + + + + + For representing this SslStream in the log + + +
          +
          diff --git a/Source/packages/FluentFTP.44.0.1/lib/net472/FluentFTP.dll b/Source/packages/FluentFTP.44.0.1/lib/net472/FluentFTP.dll new file mode 100644 index 0000000..1f201aa Binary files /dev/null and b/Source/packages/FluentFTP.44.0.1/lib/net472/FluentFTP.dll differ diff --git a/Source/packages/FluentFTP.44.0.1/lib/net472/FluentFTP.xml b/Source/packages/FluentFTP.44.0.1/lib/net472/FluentFTP.xml new file mode 100644 index 0000000..04b55b2 --- /dev/null +++ b/Source/packages/FluentFTP.44.0.1/lib/net472/FluentFTP.xml @@ -0,0 +1,8404 @@ + + + + FluentFTP + + + + + An FTP client that manages a connection to a single FTP server. + Interacts with any FTP/FTPS server and provides a high-level and low-level API to work with files and folders. + Uses asynchronous operations only. For the sync version use `FtpClient`. + + Debugging problems with FTP is much easier when you enable logging. Visit our Github Wiki for more info. + + + + + Performs a login on the server. This method is overridable so + that the login procedure can be changed to support, for example, + a FTP proxy. + + + + + Performs a login on the server. This method is overridable so + that the login procedure can be changed to support, for example, + a FTP proxy. + + On authentication failures + + To handle authentication failures without retries, catch FtpAuthenticationException. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and connects to the first successful profile. + Returns the FtpProfile if the connection succeeded, or null if it failed. + It will throw exceptions for permanent failures like invalid host or invalid credentials. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and returns the list of successful connection profiles. + You can configure it to stop after finding the first successful profile, or to collect all successful profiles. + You can then generate code for the profile using the FtpProfile.ToCode method. + If no successful profiles are found, a blank list is returned. + + Find all successful profiles (false) or stop after finding the first successful profile (true) + Use a new cloned AsyncFtpClient for testing connection profiles (true) or use the source AsyncFtpClient (false) + The token that can be used to cancel the entire process + + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The owner permissions + The group permissions + The other permissions + The token that can be used to cancel the entire process + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The permissions in CHMOD format + The token that can be used to cancel the entire process + + + + Compare the specified local file with the remote file on the FTP server using various kinds of quick equality checks. + In Auto mode, the file size and checksum are compared. + Comparing the checksum of a file is a quick way to check if the contents of the files are exactly equal without downloading a copy of the file. + You can use the option flags to compare any combination of: file size, checksum, date modified. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + Types of equality checks to perform. Use Auto to compare file size and checksum. + The token that can be used to cancel the entire process + + + + + Connect to the given server profile. + + + + + Connect to the given server profile. + + + + + Connect to the server + + true indicates that we want a + reconnect to take place. + The token that can be used to cancel the entire process + Thrown if this object has been disposed. + + + + Connect to the FTP server. Overridden in proxy classes. + + + + + + + Connect to the FTP server. Overridden in proxy classes. + + + + + Creates a remote directory asynchronously + + The full or relative path to the new remote directory + Try to create the whole path if the preceding directories do not exist + The token that can be used to cancel the entire process + True if directory was created, false if it was skipped + + + + Creates a remote directory asynchronously. If the preceding + directories do not exist, then they are created. + + The full or relative path to the new remote directory + The token that can be used to cancel the entire process + + + + Asynchronously removes a directory and all its contents. + + The full or relative path of the directory to delete + The token that can be used to cancel the entire process + + + + Asynchronously removes a directory and all its contents. + + The full or relative path of the directory to delete + Useful to delete hidden files or dot-files. + The token that can be used to cancel the entire process + + + + Asynchronously removes a directory. Used by and + . + + The full or relative path of the directory to delete + Delete the contents before deleting the folder + Useful to delete hidden files or dot-files. + Delete the top level dir too + Internally used to determine top level + The token that can be used to cancel the entire process + + + + + Deletes a file from the server asynchronously + + The full or relative path to the file + The token that can be used to cancel the entire process + + + + Tests if the specified directory exists on the server asynchronously. This + method works by trying to change the working directory to + the path specified. If it succeeds, the directory is changed + back to the old working directory and true is returned. False + is returned otherwise and since the CWD failed it is assumed + the working directory is still the same. + + The full or relative path of the directory to check for + The token that can be used to cancel the entire process + True if the directory exists. False otherwise. + + + + Disables UTF8 support and changes the Encoding property + back to ASCII. If the server returns an error when trying + to turn UTF8 off a FtpCommandException will be thrown. + + + + + Disconnects from the server asynchronously + + + + + Downloads the specified file and return the raw byte array. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The full or relative path to the file on the server + The size of the existing file in bytes, or 0 if unknown. The download restarts from this byte index. + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track download progress. + A byte array containing the contents of the downloaded file if successful, otherwise null. + + + + Downloads the specified file and return the raw byte array asynchronously. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The full or relative path to the file on the server + The token that can be used to cancel the entire process + A byte array containing the contents of the downloaded file if successful, otherwise null. + + + + Downloads the specified directory onto the local file system. + In Mirror mode, we will download missing files, and delete any extra files from disk that are not present on the server. This is very useful when creating an exact local backup of an FTP directory. + In Update mode, we will only download missing files and preserve any extra files on disk. This is useful when you want to simply download missing files from an FTP directory. + Only downloads the files and folders matching all the rules provided, if any. + All exceptions during downloading are caught, and the exception is stored in the related FtpResult object. + + The full path of the local folder on disk to download into. It is created if it does not exist. + The full path of the remote FTP folder that you want to download. If it does not exist, an empty result list is returned. + Mirror or Update mode, as explained above + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide an implementation of IProgress to track upload progress. + The token that can be used to cancel the entire process + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Download all the listed files and folders from the main directory + + + + + Downloads the specified file onto the local file system asynchronously. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + Overwrite if you want the local file to be overwritten if it already exists. Append will also create a new file if it doesn't exists + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Provide an implementation of IProgress to track download progress. + The token that can be used to cancel the entire process + FtpStatus flag indicating if the file was downloaded, skipped or failed to transfer. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts. + + + + + Download a remote file to a local file + + + + + Download a file from the server and write the data into the given stream asynchronously. + Reads data in chunks. Retries if server disconnects midway. + + + + + Setup a resume on failure of download + + + + + Downloads the specified files into a local single directory. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + Same speed as . + + The full or relative path to the directory that files will be downloaded into. + The full or relative paths to the files on the server + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are downloaded, and the files that don't pass are skipped. + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Remove successfully downloaded files. + + + + + Downloads the specified file into the specified stream asynchronously . + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory. + The full or relative path to the file on the server + The size of the existing file in bytes, or 0 if unknown. The download restarts from this byte index. + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track download progress. + If true then the file was downloaded, false otherwise. + + + + Deletes the contents of the specified directory, without deleting the directory itself. + + The full or relative path of the directorys contents to delete + The token that can be used to cancel the entire process + + + + Deletes the contents of the specified directory, without deleting the directory itself. + + The full or relative path of the directorys contents to delete + Useful to delete hidden files or dot-files. + The token that can be used to cancel the entire process + + + + Performs an asynchronous execution of the specified command + + The command to execute + The token that can be used to cancel the entire process + The servers reply to the command + + + + Things to do after executing a command + + + + + + Checks if a file exists on the server asynchronously. + + The full or relative path to the file + The token that can be used to cancel the entire process + True if the file exists, false otherwise + + + + Ensure a relative dir is absolute by prepending the working dir + + + + + Concat a path and a filename + + + + + Ensure a relative path is absolute by prepending the working dir + + + + + Retrieves a checksum of the given file using the specified checksum algorithm, or using the first available algorithm that the server supports. + + + The algorithm used goes in this order: + 1. HASH command using the first supported algorithm. + 2. MD5 / XMD5 / MMD5 commands + 3. XSHA1 command + 4. XSHA256 command + 5. XSHA512 command + 6. XCRC command + + Full or relative path of the file to checksum + The token that can be used to cancel the entire process + Specify an algorithm that you prefer, or NONE to use the first available algorithm. If the preferred algorithm is not supported, a blank hash is returned. + object containing the value and algorithm. Use the property to + determine if this command was successful. s can be thrown from + the underlying calls. + The command fails + + + + Gets the hash of the specified file using the given command. + + + + + Sets the hash algorithm on the server to be used with the HASH command asynchronously. + + + + + Gets the hash of an object on the server using the currently selected hash algorithm. + + + + + Retrieve the permissions of the given file/folder as an integer in the CHMOD format. + Throws FtpCommandException if there is an issue. + Returns 0 if the server did not specify a permission value. + Use `GetFilePermissions` if you required the permissions in the FtpPermission format. + + The full or relative path to the item + The token that can be used to cancel the entire process + + + + Retrieve the permissions of the given file/folder as an FtpListItem object with all "Permission" properties set. + Throws FtpCommandException if there is an issue. + Returns null if the server did not specify a permission value. + Use `GetChmod` if you required the integer value instead. + + The full or relative path to the item + The token that can be used to cancel the entire process + + + + Asynchronously gets the size of a remote file, in bytes. + + The full or relative path of the file + Value to return if there was an error obtaining the file size, or if the file does not exist + The token that can be used to cancel the entire process + The size of the file, or defaultValue if there was a problem. + + + + Gets the file size of an object, without locking + + + + + Gets a file listing from the server asynchronously. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + The path to list + Options that dictate how the list operation is performed + The token that can be used to cancel the entire process + An array of items retrieved in the listing + + + + Process the output of the listing command + + + + + Get the records of a file listing and retry if temporary failure. + + + + + Gets a file listing from the server asynchronously. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + The path to list + The token that can be used to cancel the entire process + An array of items retrieved in the listing + + + + Gets a file listing from the server asynchronously. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + An array of items retrieved in the listing + + + + Recursive method of GetListingAsync, to recurse through directories on servers that do not natively support recursion. + Automatically called by GetListingAsync where required. + Uses flat recursion instead of head recursion. + + The path of the directory to list + Options that dictate how a list is performed and what information is gathered. + + An array of FtpListItem objects + + + + Gets the modified time of a remote file asynchronously + + The full path to the file + The token that can be used to cancel the entire process + The modified time, or if there was a problem + + + + Returns a file/directory listing using the NLST command asynchronously + + The path of the directory to list + The token that can be used to cancel the entire process + An array of file and directory names if any were returned. + + + + Returns a file/directory listing using the NLST command asynchronously + + An array of file and directory names if any were returned. + + + + Return information about a remote file system object asynchronously. + + + You should check the property for the + flag before calling this method. Failing to do so will result in an InvalidOperationException + being thrown when the server does not support machine listings. Returns null if the server response can't + be parsed or the server returns a failure completion code. The error for a failure + is logged with FtpTrace. No exception is thrown on error because that would negate + the usefulness of this method for checking for the existence of an object. + Path of the item to retrieve information about + Get the accurate modified date using another MDTM command + The token that can be used to cancel the entire process + Thrown if the server does not support this Capability + A if the command succeeded, or null if there was a problem. + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + The token that can be used to cancel the entire process. + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + The token that can be used to cancel the entire process. + We are waiting for the response to which command? + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + The token that can be used to cancel the entire process. + We are waiting for the response to which command? + Set to true to select the NOOP devouring mode + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + The token that can be used to cancel the entire process. + We are waiting for the response to which command? + Set to true to select the NOOP devouring mode + -1 non-blocking, no timeout, >0 exhaustNoop mode, timeOut in seconds + FtpReply representing the response from the server + + + + Gets the current working directory asynchronously + + The current working directory, ./ if the response couldn't be parsed. + + + + Get the reply from the PWD command + + The current working directory reply. + + + + If an FTP Server has "different realms", in which realm is the + current working directory. + + The realm + + + + Called during . Typically extended by FTP proxies. + + + + + Is the current working directory the root? + + true if root. + + + + Moves a directory asynchronously on the remote file system from one directory to another. + Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter. + Only throws exceptions for critical errors. + + The full or relative path to the object + The new full or relative path including the new name of the object + Should we check if the dest directory exists? And if it does should we overwrite/skip the operation? + The token that can be used to cancel the entire process + Whether the directory was moved + + + + Moves a file asynchronously on the remote file system from one directory to another. + Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter. + Only throws exceptions for critical errors. + + The full or relative path to the object + The new full or relative path including the new name of the object + Should we check if the dest file exists? And if it does should we overwrite/skip the operation? + The token that can be used to cancel the entire process + Whether the file was moved + + + + Sends the NOOP command according to (effectively a no-op if 0). + Please call as needed to read the "OK" command sent by the server and prevent stale data on the socket. + Note that response is not guaranteed by all FTP servers when sent during file transfers. + + + true if NOOP command was sent + + + + Opens the specified type of active data stream + + Type of passive data stream to open + The command to execute that requires a data stream + Restart location in bytes for file transfer + The token that can be used to cancel the entire process + A data stream ready to be used + + + + Opens the specified file to be appended asynchronously + + Full or relative path of the file + ASCII/Binary + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + The token that can be used to cancel the entire process + A stream for writing to the file on the server + + + + Opens the specified file to be appended asynchronously + + Full or relative path of the file + ASCII/Binary + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + The token that can be used to cancel the entire process + A stream for writing to the file on the server +
          + + + Opens a data stream. + + The command to execute that requires a data stream + Restart location in bytes for file transfer + The token that can be used to cancel the entire process + The data stream. + + + + Opens a FXP PASV connection between the source FTP Server and the destination FTP Server + + Valid FTP connection to the destination FTP Server + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track download progress. + A data stream ready to be used + + + + Opens the specified type of passive data stream + + Type of passive data stream to open + The command to execute that requires a data stream + Restart location in bytes for file transfer + The token that can be used to cancel the entire process + A data stream ready to be used + + + + Opens the specified file for reading asynchronously + + The full or relative path of the file + ASCII/Binary + Resume location + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + The token that can be used to cancel the entire process + A stream for reading the file on the server + + + + Opens the specified file for reading asynchronously + + The full or relative path of the file + ASCII/Binary + Resume location + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + The token that can be used to cancel the entire process + A stream for reading the file on the server +
          + + + Opens the specified file for writing. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + Full or relative path of the file + ASCII/Binary + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + The token that can be used to cancel the entire process + A stream for writing to the file on the server + + + + Opens the specified file for writing. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + Full or relative path of the file + ASCII/Binary + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + The token that can be used to cancel the entire process + A stream for writing to the file on the server +
          + + + Renames an object on the remote file system asynchronously. + Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory(). + Throws exceptions if the file does not exist, or if the destination file already exists. + + The full or relative path to the object + The new full or relative path including the new name of the object + The token that can be used to cancel the entire process + + + + Sets the data type of information sent over the data stream asynchronously + + ASCII/Binary + The token that can be used to cancel the entire process + + + + Sets the data type of information sent over the data stream asynchronously + + ASCII/Binary + The token that can be used to cancel the entire process + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The owner permissions + The group permissions + The other permissions + The token that can be used to cancel the entire process + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The permissions in CHMOD format + The token that can be used to cancel the entire process + + + + Gets the modified time of a remote file asynchronously + + The full path to the file + The new modified date/time value + The token that can be used to cancel the entire process + + + + Sets the working directory on the server asynchronously + + The directory to change to + The token that can be used to cancel the entire process + + + + Transfer the specified directory from the source FTP Server onto the remote FTP Server asynchronously using the FXP protocol. + You will need to create a valid connection to your remote FTP Server before calling this method. + In Update mode, we will only transfer missing files and preserve any extra files on the remote FTP Server. This is useful when you want to simply transfer missing files from an FTP directory. + Currently Mirror mode is not implemented. + Only transfers the files and folders matching all the rules provided, if any. + All exceptions during transfer are caught, and the exception is stored in the related FtpResult object. + + The full or relative path to the folder on the source FTP Server. If it does not exist, an empty result list is returned. + Valid FTP connection to the destination FTP Server + The full or relative path to destination folder on the remote FTP Server + Only Update mode is currently implemented + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide a callback to track download progress. + The token that can be used to cancel the entire process + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Make a list of files to transfer + + + + + Transfer the files + + + + + Transfer the specified file from the source FTP Server to the destination FTP Server asynchronously using the FXP protocol. + High-level API that takes care of various edge cases internally. + + The full or relative path to the file on the source FTP Server + Valid FTP connection to the destination FTP Server + The full or relative path to destination file on the remote FTP Server + Indicates if the folder should be created on the remote FTP Server + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Provide a callback to track download progress. + + The token that can be used to cancel the entire process + Returns a FtpStatus indicating if the file was transferred. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts. + + + + + Transfers a file from the source FTP Server to the destination FTP Server via the FXP protocol asynchronously. + + + + + Uploads the specified byte array as a file onto the server asynchronously. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full data of the file, as a byte array + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + The token that can be used to cancel the entire process. + Provide an implementation of IProgress to track upload progress. + FtpStatus flag indicating if the file was uploaded, skipped or failed to transfer. + + + + Uploads the specified directory onto the server. + In Mirror mode, we will upload missing files, and delete any extra files from the server that are not present on disk. This is very useful when publishing an exact copy of a local folder onto an FTP server. + In Update mode, we will only upload missing files and preserve any extra files on the server. This is useful when you want to simply upload missing files to a server. + Only uploads the files and folders matching all the rules provided, if any. + All exceptions during uploading are caught, and the exception is stored in the related FtpResult object. + + The full path of the local folder on disk that you want to upload. If it does not exist, an empty result list is returned. + The full path of the remote FTP folder to upload into. It is created if it does not exist. + Mirror or Update mode, as explained above + If the file exists on disk, should we skip it, resume the upload or restart the upload? + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are uploaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide an implementation of IProgress to track upload progress. + The token that can be used to cancel the entire process + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Create all the sub directories within the main directory + + + + + Upload all the files within the main directory + + + + + Delete the extra remote files if in mirror mode and the directory was pre-existing + + + + + Uploads the specified file directly onto the server asynchronously. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + The token that can be used to cancel the entire process. + Provide an implementation of IProgress to track upload progress. + FtpStatus flag indicating if the file was uploaded, skipped or failed to transfer. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + + + + + Upload from a local file to a remote file + + + + + Upload the given stream to the server as a new file asynchronously. Overwrites the file if it exists. + Writes data in chunks. Retries if server disconnects midway. + + + + + Setup a resume on failure of upload + + + + + Uploads the given file paths to a single folder on the server asynchronously. + All files are placed directly into the given folder regardless of their path on the local filesystem. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + Faster than uploading single files with since it performs a single "file exists" check rather than one check per file. + + The full or relative paths to the files on the local file system. Files can be from multiple folders. + The full or relative path to the directory that files will be uploaded on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are uploaded, and the files that don't pass are skipped. + + Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Remove successfully uploaded files. + + + + + Uploads the given file paths to a single folder on the server asynchronously. + All files are placed directly into the given folder regardless of their path on the local filesystem. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + Faster than uploading single files with since it performs a single "file exists" check rather than one check per file. + + The full or relative paths to the files on the local file system. Files can be from multiple folders. + The full or relative path to the directory that files will be uploaded on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are uploaded, and the files that don't pass are skipped. + + Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Get a list of all the files that need to be uploaded + + + + + Uploads the specified stream as a file onto the server asynchronously. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full data of the file, as a stream + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + The token that can be used to cancel the entire process. + Provide an implementation of IProgress to track upload progress. + FtpStatus flag indicating if the file was uploaded, skipped or failed to transfer. + + + + Verify an FXP transfer + + + + + + + + + + + + Verify a file transfer + + + + + + + + + + Creates a new instance of an async FTP Client. You will have to setup the FTP host and credentials before connecting. + + + + + Creates a new instance of an async FTP Client, with the given host and credentials. + + + + + Creates a new instance of an async FTP Client, with the given host and credentials. + + + + + Creates a new instance of an async FTP Client, with the given host and credentials. + + + + + The base object for FtpClient, AsyncFtpClient + + + + + Calculate the position from which to append + + + + + + + + + Calculate transfer chunk size taking rate control into account + + + + + Check if the file is cleared to be uploaded, taking its existence/filesize and existsMode options into account. + + + + + Try using the SIZE command to check if file exists + + + + + + + Does the server support checksums? + + + + + + Is the checksum algorithm valid? + + + + + + + Cleanup the hash result + + + + + Get the first checksum algorithm mutually supported by both servers. + + + + + Disconnects a data stream + + The data stream to close + + + + If reverse is false, converts the date provided by the FTP server into the timezone required locally. + If reverse is true, converts the local timezone date into the date required by the FTP server. + + Affected by properties: TimeConversion, TimeZone, LocalTimeZone. + + + + + Delete the extra local files if in mirror mode + + + + + Check if the local file can be deleted, based on the DownloadDirectoryDeleteExcluded property + + + + + Executes a command + + The command to execute + The servers reply to the command + + + + Things to do after executing a command + + + + + + Populates the capabilities flags based on capabilities + supported by this server. This method is overridable + so that new features can be supported + + The reply object from the FEAT command. The InfoMessages property will + contain a list of the features the server supported delimited by a new line '\n' character. + + + + Forcibly set the capabilities of your FTP server. + By default capabilities are loaded automatically after calling Connect and you don't need to use this method. + This is only for advanced use-cases. + + + + + Performs a bitwise and to check if the specified + flag is set on the property. + + The to check for + True if the feature was found, false otherwise + + + + Returns true if the file passes all the rules + + + + + Get a list of all the files and folders that need to be downloaded + + + + + Get a list of all the files and folders that need to be downloaded + + + + + Create an FtpResult object for the given file to be downloaded, and check if the file passes the rules. + + + + + Get a list of all the files that need to be uploaded within the main directory + + + + + Create an FtpResult object for the given file to be uploaded, and check if the file passes the rules. + + + + + Parse the host and port number from an EPSV response + Handles (|||nnnn|) and (!!!nnnn!) + + + + + Parse the host and port number from an PASV or PASVEX response + + + + + Returns the IP address to be sent to the server for the active connection. + + + + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + We are waiting for the response to which command? + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + We are waiting for the response to which command? + Set to true to select the NOOP devouring mode + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + We are waiting for the response to which command? + Set to true to select the NOOP devouring mode + -1 non-blocking, no timeout, >0 exhaustNoop mode, timeOut in seconds + FtpReply representing the response from the server + + + + Process the returned data after command was executed + + + + + + + + Decodes the given FTP response string into a FtpReply, separating the FTP return code and message. + Returns true if the string was decoded correctly or false if it is not a standard format FTP response. + + + + + Make a list of subdirectories to transfer + + + + + + + + + + + Get a list of all the sub directories that need to be created within the main directory + + + + + Check if the remote file can be deleted, based on the UploadDirectoryDeleteExcluded property + + + + + Gets the current working directory + + The current working directory, ./ if the response couldn't be parsed. + + + + Get the reply to the PWD command + + + + + Parse the string returned from a PWD command + + + + + + + Checks if this FTP/FTPS connection is made through a proxy. + + + + + Checks whether will be called recursively or not. + + + + + + + Get a listing + + + + + + + + + + + + + + + + + + + + + Determine which command to use for getting a listing + + + + + Can the server do recursion for us? + + + + + Load the given connection profile and configure the FTP client instance accordingly. + + Connection profile. Not modified. + + + + Log the version of the running assembly + + + + + Log a function call with relevant arguments + + The name of the API function + The args passed to the function + + + + Log a message + + The type of tracing event + The message to write + + + + Log a message, adding an automatic prefix to the message based on the `eventType` + + The type of tracing event + The message to write + An optional exeption + Write an optional exeption on a new line + + + + Log a message to the debug output and console. + + + + + To allow for external connected classes to use the attached logger. + + + + + To allow for external connected classes to use the attached logger. + + + + + Should the function calls be logged in Verbose mode? + + + + + Add a custom listener here to get events every time a message is logged. + This is the older system, prefer using the ILogger based `Logger` property. + This system will never be removed, you can safely use it in your applications. + + + + + All the configuration settings for this FTP client. + + + + + Gets the type of the FTP server handler. + This is automatically set based on the detected FTP server, if it is detected. + You can manually set this property to implement handling for a custom FTP server. + + + + + Gets or sets the text encoding being used when talking with the server. The default + value is however upon connection, the client checks + for UTF8 support and if it's there this property is switched over to + . Manually setting this value overrides automatic detection + based on the FEAT list; if you change this value it's always used + regardless of what the server advertises, if anything. + + + + + When last command was sent (NOOP or other), for having /. + Respects the . + + + + + Current FTP client status flags used for improving performance and caching data. + + + + + Returns the current FTP client status flags. For advanced use only. + + + + + Used for internally synchronizing access to this + object from multiple threads + + + + + For usage by FTP proxies only + + + + + Control connection socket stream + + + + + Gets the base stream for talking to the server via + the control connection. + + + + + Gets a value indicating if this object has already been disposed. + + + + + Gets the current internet protocol (IPV4 or IPV6) used by the socket connection. + Returns FtpIpVersion.Unknown before connection. + + + + + Returns true if the connection to the FTP server is open. + WARNING: Returns true even if our credentials are incorrect but connection to the server is open. + See the IsAuthenticated property if you want to check if we are correctly logged in. + + + + + Returns true if the connection to the FTP server is open and if the FTP server accepted our credentials. + + + + + Gets a value indicating if this control connection is a clone. This property + is used with data streams to determine if the connection should be closed + when the stream is closed. Servers typically only allow 1 data connection + per control connection. If you try to open multiple data connections this + object will be cloned for 2 or more resulting in N new connections to the + server. + + + + + The server to connect to + + + + + The port to connect to. If this value is set to 0 (Default) the port used + will be determined by the type of SSL used or if no SSL is to be used it + will automatically connect to port 21. + + + + + Credentials used for authentication + + + + + Gets the server capabilities represented by an array of capability flags + + + + + Get the hash types supported by the server for use with the HASH Command. + This is a recent extension to the protocol that is not fully + standardized and is not guaranteed to work. See here for + more details: + http://tools.ietf.org/html/draft-bryan-ftpext-hash-02 + + + + + The negotiated SSL/TLS protocol version. + Will return a valid value after connection is complete. + Before connection it will return `SslProtocols.None`. + + + + + Checks if FTPS/SSL encryption is currently active. + Useful to see if your server supports FTPS, when using FtpEncryptionMode.Auto. + + + + + Easiest way to check if a handler has been attached. + + + + + Event is fired to validate SSL certificates. If this event is + not handled and there are errors validating the certificate + the connection will be aborted. + Not fired if ValidateAnyCertificate is set to true. + + + + + Gets the type of system/server that we're connected to. Typically begins with "WINDOWS" or "UNIX". + + + + + Gets the type of the FTP server software that we're connected to. + + + + + Gets the operating system of the FTP server that we're connected to. + + + + Gets the connection type + + + Gets the last reply received from the server + + + Gets the last replies received from the server + + + + Callback format to implement your custom FTP listing line parser. + + The line from the listing + The server capabilities + The FTP client + Return an FtpListItem object if the line can be parsed, else return null + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Returns the local end point of the FTP socket, if it is available. + + + + + Returns the remote end point of the FTP socket, if it is available. + + + + + Data shouldn't be on the socket, if it is it probably means we've been disconnected. + Read and discard whatever is there. + Returns the stale data as text, if any, or null if none was found. + + copy stale data information to logs? + for the log information + + + + Data shouldn't be on the socket, if it is it probably means we've been disconnected. + Read and discard whatever is there. + Returns the stale data as text, if any, or null if none was found. + + copy stale data information to logs? + called from where (text) + The token that can be used to cancel the entire process + + + + Sends progress to the user, either a value between 0-100 indicating percentage complete, or -1 for indeterminate. + + + + + Sends progress to the user, either a value between 0-100 indicating percentage complete, or -1 for indeterminate. + + + + + Open a local port on the given ActivePort or a random port. + + + + + + Validate the client before the auto detect process + + + + + + + Catches the socket stream ssl validation event and fires the event handlers + attached to this object for validating SSL certificates + + The stream that fired the event + The event args used to validate the certificate + + + + Fires the SSL validation event + + Event Args + + + + Verify that the client is usable + + + + + + + + + + + + Clones the FTP client control connection. Used for opening multiple data streams. + You will need to manually connect after cloning. + + A new FTP client connection with the same property settings as this one. + + + + Disposes and disconnects this FTP client if it was auto-created for an internal operation. + + + + + Check if the host parameter is valid + + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Disconnects from the server, releases resources held by this + object. + + + + + Finalizer + + + + + Class responsible for automatically detecting working FTP settings to connect to a target FTP server. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and returns the list of successful connection profiles. + You can configure it to stop after finding the first successful profile, or to collect all successful profiles. + You can then generate code for the profile using the FtpProfile.ToCode method. + If no successful profiles are found, a blank list is returned. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and returns the list of successful connection profiles. + You can configure it to stop after finding the first successful profile, or to collect all successful profiles. + You can then generate code for the profile using the FtpProfile.ToCode method. + If no successful profiles are found, a blank list is returned. + + + + + Check if the server refused to support one type of FTPS encryption, and if so blacklist that type of encryption. + + + + + Check if its an auth failure or something permanent, + so that we don't need to retry all the connection config combinations and can hard-abort the AutoConnect. + Return the exception if it is a hard failure, or null if no issue is found. + + + + + Load the given connection profile and configure the FTP client instance accordingly. + + + + + Create a default ValidateCertificate handler that accepts valid certificates. + + + + + Return a known working connection profile from the host/port combination. + + + + + Modify the `Status.InCriticalSequence` flag based on the FTP command sent, by checking against a list of known critical commands. + A critical sequence will not be interrupted by an automatic reconnect. + + + + + Class responsible for masking out sensitive data from FTP logs. + + + + + Populates the capabilities flags based on capabilities given in the list of strings. + + + + + Assume the FTP Server's capabilities if it does not support the FEAT command. + + + + + All servers with server-specific handling and support are listed here. + Its possible you can connect to other FTP servers too. + + To add support for another standard FTP server: + 1) Add a new enum in the `FtpServer` enum + 2) Add a new class extending `FtpBaseServer` under the `Servers.Handlers` NS + 3) Create a new instance of your class in `FtpHandlerIndex.AllServers` + + To support a custom FTP server you only need to extend `FtpBaseServer` + and set it on your client.ServerHandler before calling Connect. + + + + + Detect the FTP Server based on the welcome message sent by the server after getting the 220 connection command. + Its the primary method. + + + + + Get a default FTP Server handler based on the enum value. + + + + + Detect the FTP Server based on the response to the SYST connection command. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Detect the FTP Server based on the response to the SYST connection command. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Error messages returned by various servers when a file does not exist. + Instead of throwing an error, we use these to detect and handle the file detection properly. + MUST BE LOWER CASE! + + + + + Error messages returned by various servers when a file size is not supported in ASCII mode. + MUST BE LOWER CASE! + + + + + Error messages returned by various servers when a file transfer temporarily failed. + MUST BE LOWER CASE! + + + + + Error messages returned by various servers when a folder already exists. + Instead of throwing an error, we use these to detect and handle the folder creation properly. + MUST BE LOWER CASE! + + + + + Error messages returned by various servers when the connection failed due to wrong TLS version used. + MUST BE LOWER CASE! + + + + + An FTP client that manages a connection to a single FTP server. + Interacts with any FTP/FTPS server and provides a high-level and low-level API to work with files and folders. + Uses synchronous operations only. For the async version use `AsyncFtpClient`. + + Debugging problems with FTP is much easier when you enable logging. Visit our Github Wiki for more info. + + + + + Creates a new instance of a synchronous FTP Client. You will have to setup the FTP host and credentials before connecting. + + + + + Creates a new instance of a synchronous FTP Client, with the given host and credentials. + + + + + Creates a new instance of a synchronous FTP Client, with the given host and credentials. + + + + + Creates a new instance of a synchronous FTP Client, with the given host and credentials. + + + + + Performs a login on the server. This method is overridable so + that the login procedure can be changed to support, for example, + a FTP proxy. + + + + + Performs a login on the server. This method is overridable so + that the login procedure can be changed to support, for example, + a FTP proxy. + + On authentication failures + + To handle authentication failures without retries, catch FtpAuthenticationException. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and connects to the first successful profile. + Returns the FtpProfile if the connection succeeded, or null if it failed. + It will throw exceptions for permanent failures like invalid host or invalid credentials. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and returns the list of successful connection profiles. + You can configure it to stop after finding the first successful profile, or to collect all successful profiles. + You can then generate code for the profile using the FtpProfile.ToCode method. + If no successful profiles are found, a blank list is returned. + + Find all successful profiles (false) or stop after finding the first successful profile (true) + Use a new cloned FtpClient for testing connection profiles (true) or use the source FtpClient (false) + + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The owner permissions + The group permissions + The other permissions + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The permissions in CHMOD format + + + + Compare the specified local file with the remote file on the FTP server using various kinds of quick equality checks. + In Auto mode, the file size and checksum are compared. + Comparing the checksum of a file is a quick way to check if the contents of the files are exactly equal without downloading a copy of the file. + You can use the option flags to compare any combination of: file size, checksum, date modified. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + Types of equality checks to perform. Use Auto to compare file size and checksum. + + + + + Connect + + + + + Connect to the given server profile. + + + + + Connect to the server + + true indicates that we want a + reconnect to take place. + Thrown if this object has been disposed. + + + + Connect to the FTP server. Overridden in proxy classes. + + + + + + Connect to the FTP server. Overridden in proxy classes. + + + + + Creates a directory on the server. If the preceding + directories do not exist, then they are created. + + The full or relative path to the new remote directory + + + + Creates a directory on the server + + The full or relative path to the new remote directory + Try to force all non-existent pieces of the path to be created + True if directory was created, false if it was skipped + + + + Deletes the specified directory and all its contents. + + The full or relative path of the directory to delete + + + + Deletes the specified directory and all its contents. + + The full or relative path of the directory to delete + Useful to delete hidden files or dot-files. + + + + Deletes the specified directory and all its contents. + + The full or relative path of the directory to delete + If the directory is not empty, remove its contents + Useful to delete hidden files or dot-files. + Delete completely or leave the top level dir + Internally used to determine top level + + + + Deletes a file on the server + + The full or relative path to the file + + + + Tests if the specified directory exists on the server. This + method works by trying to change the working directory to + the path specified. If it succeeds, the directory is changed + back to the old working directory and true is returned. False + is returned otherwise and since the CWD failed it is assumed + the working directory is still the same. + + The path of the directory + True if it exists, false otherwise. + + + + Disables UTF8 support and changes the Encoding property + back to ASCII. If the server returns an error when trying + to turn UTF8 off a FtpCommandException will be thrown. + + + + + Disconnects from the server + + + + + Downloads the specified file and return the raw byte array. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The variable that will receive the bytes. + The full or relative path to the file on the server + The size of the existing file in bytes, or 0 if unknown. The download restarts from this byte index. + Provide a callback to track download progress. + If true then the file was downloaded, false otherwise. + + + + Downloads the specified directory onto the local file system. + In Mirror mode, we will download missing files, and delete any extra files from disk that are not present on the server. This is very useful when creating an exact local backup of an FTP directory. + In Update mode, we will only download missing files and preserve any extra files on disk. This is useful when you want to simply download missing files from an FTP directory. + Only downloads the files and folders matching all the rules provided, if any. + All exceptions during downloading are caught, and the exception is stored in the related FtpResult object. + + The full path of the local folder on disk to download into. It is created if it does not exist. + The full path of the remote FTP folder that you want to download. If it does not exist, an empty result list is returned. + Mirror or Update mode, as explained above + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide a callback to track download progress. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Download all the listed files and folders from the main directory + + + + + Downloads the specified file onto the local file system. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Provide a callback to track download progress. + FtpStatus flag indicating if the file was downloaded, skipped or failed to transfer. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts. + + + + + Download from a remote file to a local file + + + + + + + + + + + + + + Download a file from the server and write the data into the given stream. + Reads data in chunks. Retries if server disconnects midway. + + + + + Setup a resume on failure of download + + + + + Downloads the specified files into a local single directory. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + Same speed as . + + The full or relative path to the directory that files will be downloaded into. + The full or relative paths to the files on the server + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are downloaded, and the files that don't pass are skipped. + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Remove successfully downloaded files. + + + + + Downloads the specified file into the specified stream. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory. + The full or relative path to the file on the server + The size of the existing file in bytes, or 0 if unknown. The download restarts from this byte index. + Provide a callback to track download progress. + If true then the file was downloaded, false otherwise. + + + + Deletes the contents of the specified directory, without deleting the directory itself. + + The full or relative path of the directorys contents to delete + + + + Deletes the contents of the specified directory, without deleting the directory itself. + + The full or relative path of the directorys contents to delete + Useful to delete hidden files or dot-files. + + + + Executes a command + + The command to execute + The servers reply to the command + + + + Checks if a file exists on the server. + + The full or relative path to the file + True if the file exists + + + + Ensure a relative dir is absolute by prepending the working dir + + + + + Concat a path and a filename + + + + + Ensure a relative path is absolute by prepending the working dir + + + + + Retrieves a checksum of the given file using the specified checksum algorithm, or using the first available algorithm that the server supports. + + + The algorithm used goes in this order: + 1. HASH command using the first supported algorithm. + 2. MD5 / XMD5 / MMD5 commands + 3. XSHA1 command + 4. XSHA256 command + 5. XSHA512 command + 6. XCRC command + + Full or relative path of the file to checksum + Specify an algorithm that you prefer, or NONE to use the first available algorithm. If the preferred algorithm is not supported, a blank hash is returned. + object containing the value and algorithm. Use the property to + determine if this command was successful. s can be thrown from + the underlying calls. + The command fails + + + + Gets the hash of the specified file using the given command. + + + + + Sets the hash algorithm on the server to use for the HASH command. + + + + + Gets the hash of an object on the server using the currently selected hash algorithm. + + + + + Retrieve the permissions of the given file/folder as an integer in the CHMOD format. + Throws FtpCommandException if there is an issue. + Returns 0 if the server did not specify a permission value. + Use `GetFilePermissions` if you required the permissions in the FtpPermission format. + + The full or relative path to the item + + + + Retrieve the permissions of the given file/folder as an FtpListItem object with all "Permission" properties set. + Throws FtpCommandException if there is an issue. + Returns null if the server did not specify a permission value. + Use `GetChmod` if you required the integer value instead. + + The full or relative path to the item + + + + Gets the size of a remote file, in bytes. + + The full or relative path of the file + Value to return if there was an error obtaining the file size, or if the file does not exist + The size of the file, or defaultValue if there was a problem. + + + + Gets the file size of an object, without locking + + + + + Gets a file listing from the server from the current working directory. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + An array of FtpListItem objects + + + + Gets a file listing from the server. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + The path of the directory to list + An array of FtpListItem objects + + + + Gets a file listing from the server. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + The path of the directory to list + Options that dictate how a list is performed and what information is gathered. + An array of FtpListItem objects + + + + Get the records of a file listing and retry if temporary failure. + + + + + Recursive method of GetListing, to recurse through directories on servers that do not natively support recursion. + Automatically called by GetListing where required. + Uses flat recursion instead of head recursion. + + The path of the directory to list + Options that dictate how a list is performed and what information is gathered. + An array of FtpListItem objects + + + + Gets the modified time of a remote file. + + The full path to the file + The modified time, or if there was a problem + + + + Returns a file/directory listing using the NLST command. + + A string array of file and directory names if any were returned. + + + + Returns a file/directory listing using the NLST command. + + The path of the directory to list + A string array of file and directory names if any were returned. + + + + Returns information about a file system object. Returns null if the server response can't + be parsed or the server returns a failure completion code. The error for a failure + is logged with FtpTrace. No exception is thrown on error because that would negate + the usefulness of this method for checking for the existence of an object. + + The path of the file or folder + Get the accurate modified date using another MDTM command + A FtpListItem object + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + FtpReply representing the response from the server + + + + Gets the current working directory + + The current working directory, ./ if the response couldn't be parsed. + + + + If an FTP Server has "different realms", in which realm is the + current working directory. + + The realm + + + + Called during Connect(). Typically extended by FTP proxies. + + + + + Is the current working directory the root? + + true if root. + + + + Moves a directory on the remote file system from one directory to another. + Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter. + Only throws exceptions for critical errors. + + The full or relative path to the object + The new full or relative path including the new name of the object + Should we check if the dest directory exists? And if it does should we overwrite/skip the operation? + Whether the directory was moved + + + + Moves a file on the remote file system from one directory to another. + Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter. + Only throws exceptions for critical errors. + + The full or relative path to the object + The new full or relative path including the new name of the object + Should we check if the dest file exists? And if it does should we overwrite/skip the operation? + Whether the file was moved + + + + Sends the NOOP command according to (effectively a no-op if 0). + Please call as needed to read the "OK" command sent by the server and prevent stale data on the socket. + Note that response is not guaranteed by all FTP servers when sent during file transfers. + + true if NOOP command was sent + + + + Opens the specified type of active data stream + + Type of passive data stream to open + The command to execute that requires a data stream + Restart location in bytes for file transfer + A data stream ready to be used + + + + Opens the specified file for appending. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + The full or relative path to the file to be opened + ASCII/Binary + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + A stream for writing to the file on the server + + + + Opens the specified file for appending. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + The full or relative path to the file to be opened + ASCII/Binary + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + A stream for writing to the file on the server +
          + + + Opens a data stream. + + The command to execute that requires a data stream + Restart location in bytes for file transfer + The data stream. + + + + Opens a FXP PASV connection between the source FTP Server and the destination FTP Server + + FtpClient instance of the destination FTP Server + Provide an implementation of IProgress to track download progress. + A data stream ready to be used + + + + Opens the specified type of passive data stream + + Type of passive data stream to open + The command to execute that requires a data stream + Restart location in bytes for file transfer + A data stream ready to be used + + + + Opens the specified file for reading + + The full or relative path of the file + ASCII/Binary + Resume location + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + A stream for reading the file on the server + + + + Opens the specified file for reading + + The full or relative path of the file + ASCII/Binary + Resume location + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + A stream for reading the file on the server +
          + + + Opens the specified file for writing. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + Full or relative path of the file + ASCII/Binary + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + A stream for writing to the file on the server + + + + Opens the specified file for writing. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + Full or relative path of the file + ASCII/Binary + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + A stream for writing to the file on the server +
          + + + Renames an object on the remote file system. + Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory(). + Throws exceptions if the file does not exist, or if the destination file already exists. + + The full or relative path to the object + The new full or relative path including the new name of the object + + + + Sets the data type of information sent over the data stream + + ASCII/Binary + + + Internal method that handles actually setting the data type. + Thrown when a FTP Command error condition occurs. + Thrown when a FTP error condition occurs. + ASCII/Binary. + This method doesn't do any locking to prevent recursive lock scenarios. Callers must do their own locking. + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The owner permissions + The group permissions + The other permissions + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The permissions in CHMOD format + + + + Changes the modified time of a remote file + + The full path to the file + The new modified date/time value + + + + Sets the work directory on the server + + The path of the directory to change to + + + + Transfer the specified directory from the source FTP Server onto the remote FTP Server using the FXP protocol. + You will need to create a valid connection to your remote FTP Server before calling this method. + In Update mode, we will only transfer missing files and preserve any extra files on the remote FTP Server. This is useful when you want to simply transfer missing files from an FTP directory. + Currently Mirror mode is not implemented. + Only transfers the files and folders matching all the rules provided, if any. + All exceptions during transfer are caught, and the exception is stored in the related FtpResult object. + + The full or relative path to the folder on the source FTP Server. If it does not exist, an empty result list is returned. + Valid FTP connection to the destination FTP Server + The full or relative path to destination folder on the remote FTP Server + Only Update mode is currently implemented + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide a callback to track download progress. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Make a list of files to transfer + + + + + Transfer each file + + + + + + + + + + + Transfer the specified file from the source FTP Server to the destination FTP Server using the FXP protocol. + High-level API that takes care of various edge cases internally. + + The full or relative path to the file on the source FTP Server + Valid FTP connection to the destination FTP Server + The full or relative path to destination file on the remote FTP Server + Indicates if the folder should be created on the remote FTP Server + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Provide a callback to track download progress. + + Returns a FtpStatus indicating if the file was transferred. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts. + + + + + Transfers a file from the source FTP Server to the destination FTP Server via the FXP protocol + + + + + Uploads the specified byte array as a file onto the server. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full data of the file, as a byte array + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + Provide a callback to track upload progress. + + + + Uploads the specified directory onto the server. + In Mirror mode, we will upload missing files, and delete any extra files from the server that are not present on disk. This is very useful when publishing an exact copy of a local folder onto an FTP server. + In Update mode, we will only upload missing files and preserve any extra files on the server. This is useful when you want to simply upload missing files to a server. + Only uploads the files and folders matching all the rules provided, if any. + All exceptions during uploading are caught, and the exception is stored in the related FtpResult object. + + The full path of the local folder on disk that you want to upload. If it does not exist, an empty result list is returned. + The full path of the remote FTP folder to upload into. It is created if it does not exist. + Mirror or Update mode, as explained above + If the file exists on disk, should we skip it, resume the upload or restart the upload? + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide a callback to track upload progress. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Create all the sub directories within the main directory + + + + + Upload all the files within the main directory + + + + + Delete the extra remote files if in mirror mode and the directory was pre-existing + + + + + Uploads the specified file directly onto the server. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Provide a callback to track download progress. + FtpStatus flag indicating if the file was uploaded, skipped or failed to transfer. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + + + + + Upload a local file to a remote file + + + + + + + + + + + + + + + + Upload the given stream to the server as a new file. Overwrites the file if it exists. + Writes data in chunks. Retries if server disconnects midway. + + + + + Setup a resume on an upload failure + + + + + Uploads the given file paths to a single folder on the server. + All files are placed directly into the given folder regardless of their path on the local filesystem. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + Faster than uploading single files with since it performs a single "file exists" check rather than one check per file. + + The full or relative paths to the files on the local file system. Files can be from multiple folders. + The full or relative path to the directory that files will be uploaded on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are uploaded, and the files that don't pass are skipped. + + Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Remove successfully uploaded files. + + + + + Uploads the given file paths to a single folder on the server. + All files are placed directly into the given folder regardless of their path on the local filesystem. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + Faster than uploading single files with since it performs a single "file exists" check rather than one check per file. + + The full or relative paths to the files on the local file system. Files can be from multiple folders. + The full or relative path to the directory that files will be uploaded on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are uploaded, and the files that don't pass are skipped. + + Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Get a list of all the files that need to be uploaded + + + + + Uploads the specified stream as a file onto the server. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full data of the file, as a stream + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + Provide a callback to track upload progress. + + + + Verify an FXP file transfer + + + + + + + + + + + Verify a file transfer + + + + + + + + + Interface for the AsyncFtpClient class. + For detailed documentation of the methods, please see the FtpClient class or check the Wiki on the FluentFTP Github project. + + + + + Base object for FtpClient, AsyncFtpClient and the internal client + + + + + Interface for the FtpClient class. + For detailed documentation of the methods, please see the FtpClient class or check the Wiki on the FluentFTP Github project. + + + + + Server features + + + + + This server said it doesn't support anything! + + + + + Supports the MLST command (machine listings) + + + + + Supports the SIZE command (get file size) + + + + + Supports the MDTM command (get file date modified) + + + + + Supports download/upload stream resumes + + + + + Supports UTF8 + + + + + PRET Command used by DrFTPD + + + + + Server supports the MFMT command for setting the + modified date of an object on the server + + + + + Server supports the MFCT command for setting the + created date of an object on the server + + + + + Server supports the MFF command for setting certain facts + about file system objects. It typically allows you to modify + the last modification time, creation time, UNIX group/owner/mode of a file. + + + + + Server supports the STAT command + + + + + Support for the HASH command + + + + + Support for the MD5 command + + + + + Support for the XMD5 command + + + + + Support for the XCRC command + + + + + Support for the XSHA1 command + + + + + Support for the XSHA256 command + + + + + Support for the XSHA512 command + + + + + Support for the EPSV file-transfer command + + + + + Support for the CPSV command + + + + + Support for the NOOP command + + + + + Support for the CLNT command + + + + + Support for the SSCN command + + + + + Support for the SITE MKDIR (make directory) server-specific command for ProFTPd + + + + + Support for the SITE RMDIR (remove directory) server-specific command for ProFTPd + + + + + Support for the SITE UTIME server-specific command for ProFTPd + + + + + Support for the SITE SYMLINK server-specific command for ProFTPd + + + + + Support for the AVBL (get available space) server-specific command for Serv-U + + + + + Support for the THMB (get image thumbnail) server-specific command for Serv-U + + + + + Support for the RMDA (remove directory) server-specific command for Serv-U + + + + + Support for the DSIZ (get directory size) server-specific command for Serv-U + + + + + Support for the HOST (get host) server-specific command for Serv-U + + + + + Support for the CCC (Clear Command Channel) command, which makes a secure FTP channel revert back to plain text. + + + + + Support for the MODE Z (compression enabled) command, which says that the server supports ZLIB compression for all transfers + + + + + Support for the LANG (language negotiation) command. + + + + + Support for the MMD5 (multiple MD5 hash) command. + + + + + Flags that control how file comparison is performed. If you are unsure what to use, set it to Auto. + + + + + Compares the file size and the checksum of the file (using the first supported hash algorithm). + The local and remote file sizes and checksums should exactly match for the file to be considered equal. + + + + + Compares the file size. + Both file sizes should exactly match for the file to be considered equal. + + + + + Compares the date modified of the file. + Both dates should exactly match for the file to be considered equal. + + + + + Compares the checksum or hash of the file using the first supported hash algorithm. + Both checksums should exactly match for the file to be considered equal. + + + + + The result of a file comparison operation. + + + + + Success. Local and remote files are exactly equal. + + + + + Failure. Local and remote files do not match. + + + + + Failure. Either the local or remote file does not exist. + + + + + Failure. Checksum verification is enabled and your server does not support any hash algorithm. + + + + + Data connection type + + + + + This type of data connection attempts to use the EPSV command + and if the server does not support EPSV it falls back to the + PASV command before giving up unless you are connected via IPv6 + in which case the PASV command is not supported. + + + + + Passive data connection. EPSV is a better + option if it's supported. Passive connections + connect to the IP address dictated by the server + which may or may not be accessible by the client + for example a server behind a NAT device may + give an IP address on its local network that + is inaccessible to the client. Please note that IPv6 + does not support this type data connection. If you + ask for PASV and are connected via IPv6 EPSV will + automatically be used in its place. + + + + + Same as PASV except the host supplied by the server is ignored + and the data connection is made to the same address that the control + connection is connected to. This is useful in scenarios where the + server supplies a private/non-routable network address in the + PASV response. It's functionally identical to EPSV except some + servers may not implement the EPSV command. Please note that IPv6 + does not support this type data connection. If you + ask for PASV and are connected via IPv6 EPSV will + automatically be used in its place. + + + + + Extended passive data connection, recommended. Works + the same as a PASV connection except the server + does not dictate an IP address to connect to, instead + the passive connection goes to the same address used + in the control connection. This type of data connection + supports IPv4 and IPv6. + + + + + This type of data connection attempts to use the EPRT command + and if the server does not support EPRT it falls back to the + PORT command before giving up unless you are connected via IPv6 + in which case the PORT command is not supported. + + + + + Active data connection, not recommended unless + you have a specific reason for using this type. + Creates a listening socket on the client which + requires firewall exceptions on the client system + as well as client network when connecting to a + server outside of the client's network. In addition + the IP address of the interface used to connect to the + server is the address the server is told to connect to + which, if behind a NAT device, may be inaccessible to + the server. This type of data connection is not supported + by IPv6. If you specify PORT and are connected via IPv6 + EPRT will automatically be used instead. + + + + + Extended active data connection, not recommended + unless you have a specific reason for using this + type. Creates a listening socket on the client + which requires firewall exceptions on the client + as well as client network when connecting to a + server outside of the client's network. The server + connects to the IP address it sees the client coming + from. This type of data connection supports IPv4 and IPv6. + + + + + Type of data transfer to do + + + + + ASCII transfer + + + + + Binary transfer + + + + + Not known yet + + + + + Controls how timestamps returned by the server are converted. + + + + + Returns the server timestamps in Server Time. No timezone conversion is performed. + + + + + Returns the server timestamps in Local Time. + Ensure that the TimeZone property is correctly set to the server's timezone. + If you are on .NET Core/.NET Standard, you need to set the LocalTimeZone property for this to work. + + + + + Returns the server timestamps in UTC (Coordinated Universal Time). + Ensure that the TimeZone property is correctly set to the server's timezone. + + + + + Defines the type of encryption to use + + + + + Plain text. + + + + + FTPS encryption is used from the start of the connection, port 990. + + + + + Connection starts in plain text and FTPS encryption is enabled + with the AUTH command immediately after the server greeting. + + + + + FTPS encryption is used if supported by the server, otherwise it falls back to plaintext FTP communication. + + + + + Defines how multi-file processes should handle a processing error. + + & Cannot Be Combined + + + + No action is taken upon errors. The method absorbs the error and continues. + + + + + If any files have completed successfully (or failed after a partial download/upload) then should be deleted. + This will simulate an all-or-nothing transaction downloading or uploading multiple files. If this option is not + combined with or then the method will + continue to process all items whether if they are successful or not and then delete everything if a failure was + encountered at any point. + + + + + The method should stop processing any additional files and immediately return upon encountering an error. + Cannot be combined with + + + + + The method should stop processing any additional files and immediately throw the current error. + Cannot be combined with + + + + + Determines how we handle downloading and uploading folders + + + + + Dangerous but useful method! + Uploads/downloads all the missing files to update the server/local filesystem. + Deletes the extra files to ensure that the target is an exact mirror of the source. + + + + + Safe method! + Uploads/downloads all the missing files to update the server/local filesystem. + + + + + Different types of hashing algorithms for computing checksums. + + + + + Automatic algorithm, or hashing not supported. + + + + + SHA-1 algorithm + + + + + SHA-256 algorithm + + + + + SHA-512 algorithm + + + + + MD5 algorithm + + + + + CRC algorithm + + + + + IP Versions to allow when connecting + to a server. + + + + + Unknown protocol. + + + + + Internet Protocol Version 4 + + + + + Internet Protocol Version 6 + + + + + Allow any supported version + + + + + Flags that can control how a file listing is performed. If you are unsure what to use, set it to Auto. + + + + + Tries machine listings (MDTM command) if supported, + and if not then falls back to OS-specific listings (LIST command) + + + + + Load the modify date using MDTM when it could not + be parsed from the server listing. This only pertains + to servers that do not implement the MLSD command. + + + + + Load the file size using the SIZE command when it + could not be parsed from the server listing. This + only pertains to servers that do not support the + MLSD command. + + + + + Combines the Modify and Size flags + + + + + Show hidden/dot files. This only pertains to servers + that do not support the MLSD command. This option + makes use the non standard -a parameter to LIST to + tell the server to show hidden files. Since it's a + non-standard option it may not always work. MLSD listings + have no such option and whether or not a hidden file is + shown is at the discretion of the server. + + + + + Force the use of OS-specific listings (LIST command) even if + machine listings (MLSD command) are supported by the server + + + + + Use the NLST command instead of LIST for a reliable file listing + + + + + Force the use of the NLST command (the slowest mode) even if machine listings + and OS-specific listings are supported by the server + + + + + Sets the ForceList flag and uses `LS' instead of `LIST' as the + command for getting a directory listing. This option overrides + ForceNameList and ignores the AllFiles flag. + + + + + Gets files within subdirectories as well. Adds the -r option to the LIST command. + Some servers may not support this feature. + + + + + Do not retrieve path when no path is supplied to GetListing(), + instead just execute LIST with no path argument. + + + + + Include two extra items into the listing, for the current directory (".") + and the parent directory (".."). Meaningless unless you want these two + items for some reason. + + + + + Force the use of STAT command for getting file listings + + + + + Determines how we handle partially downloaded files + + + + + Restart the download of a file if it is partially downloaded. + Overwrites the file if it exists on disk. + + + + + Resume the download of a file if it is partially downloaded. + Appends to the file if it exists, by checking the length and adding the missing data. + If the file doesn't exist on disk, a new file is created. + + + + + Blindly skip downloading the file if it exists on disk, without any more checks. + This is only included to be compatible with legacy behaviour. + + + + + Append is now renamed to Resume. + + + + + Type of file system of object + + + + + The default subtype. + + + + + A sub directory within the listed directory. + (Only set when machine listing is available and type is 'dir') + + + + + The self directory. + (Only set when machine listing is available and type is 'cdir') + + + + + The parent directory. + (Only set when machine listing is available and type is 'pdir') + + + + + Type of file system of object + + + + + A file + + + + + A directory + + + + + A symbolic link + + + + + Defines the operating system of the FTP server. + + + + + Unknown operating system + + + + + Definitely Windows or Windows Server + + + + + Definitely Unix or AIX-based server + + + + + Definitely VMS or OpenVMS server + + + + + Definitely IBM OS/400 server + + + + + Definitely IBM z/OS server + + + + + Definitely SUN OS/Solaris server + + + + + For setting up rules + + + + + If the value is exactly equal to X + + + + + If the value is anything except for X + + + + + If the value is less than X + + + + + If the value is less than or equal to X + + + + + If the value is more than X + + + + + If the value is more than or equal to X + + + + + If the value is between the range of X and Y + + + + + If the value is outside the range of X and Y + + + + + The type of response the server responded with + + + + + Use the custom parser that you have set on the FtpClient object (ListingCustomParser property) + + + + + Automatically detect the file listing parser to use based on the FTP server (SYST command). + + + + + Machine listing parser, works on any FTP server supporting the MLST/MLSD commands. + + + + + File listing parser for Windows/IIS. + + + + + File listing parser for Unix. + + + + + Alternate parser for Unix. Use this if the default one does not work. + + + + + File listing parser for Vax/VMS/OpenVMS. + + + + + File listing parser for IBM z/OS + + + + + File listing parser for IBM OS/400. + + + + + File listing parser for Tandem/Nonstop Guardian OS. + + + + + Types of file permissions + + + + + No access + + + + + Executable + + + + + Writable + + + + + Readable + + + + + This enum is obsolete. Please use FtpRemoteExists instead. + + + + + Defines the behavior for uploading/downloading files that already exist + + + + + Do not check if the file exists. A bit faster than the other options. + Only use this if you are SURE that the file does not exist on the server. + Otherwise it can cause the UploadFile method to hang due to filesize mismatch. + + + + + Resume uploading by appending to the remote file, but don't check if it exists and add missing data. + This might be required if you don't have permissions on the server to list files in the folder. + Only use this if you are SURE that the file does not exist on the server otherwise it can cause the UploadFile method to hang due to filesize mismatch. + + + + + Append the local file to the end of the remote file, but don't check if it exists and add missing data. + This might be required if you don't have permissions on the server to list files in the folder. + Only use this if you are SURE that the file does not exist on the server otherwise it can cause the UploadFile method to hang due to filesize mismatch. + + + + + Skip the file if it exists, without any more checks. + + + + + Overwrite the file if it exists. + + + + + Resume uploading by appending to the remote file if it exists. + It works by checking the remote file length and adding the missing data. + + + + + Append the local file to the end of the remote file. + + + + + Append is now renamed to Resume. Alternatively you can use AddToEnd. + + + + + The type of response the server responded with + + + + + No response + + + + + Success + + + + + Success + + + + + Success + + + + + Temporary failure + + + + + Permanent failure + + + + + Determines how SSL Buffering is handled + + + + + Enables buffering in all cases except when using FTP proxies. + + + + + Always disables SSL Buffering to reduce FTPS connectivity issues. + + + + + Always enables SSL Buffering to massively speed up FTPS operations. + + + + + Defines the type of the FTP server software. + Add constants here as you add detection scripts for individual server types. + + + + + Unknown FTP server software + + + + + Definitely Apache FTP server + + + + + Definitely BFTPd server + + + + + Definitely Cerberus FTP server + + + + + Definitely CrushFTP server + + + + + Definitely D-Link FTP server + + + + + Definitely FileZilla server + + + + + Definitely FritzBox FTP server + + + + + Definitely FTP2S3 gateway server + + + + + Definitely glFTPd server + + + + + Definitely GlobalScape EFT server + + + + + Definitely Homegate FTP server + + + + + Definitely Huawei Technologies HG5xxx series FTP server + + + + + Definitely IBM z/OS FTP server + + + + + Definitely IBM OS/400 FTP server + + + + + Definitely ABB IDAL FTP server + + + + + Definitely MikroTik RouterOS FTP server + + + + + Definitely HP NonStop/Tandem server + + + + + Definitely OpenVMS server + + + + + Definitely ProFTPD server + + + + + Definitely PureFTPd server + + + + + Definitely PyFtpdLib server + + + + + Definitely Rumpus server + + + + + Definitely Serv-U server + + + + + Definitely Sun OS Solaris FTP server + + + + + Definitely Titan FTP server + + + + + Definitely TP-LINK FTP server + + + + + Definitely VsFTPd server + + + + + Definitely Windows CE FTP server + + + + + Definitely Windows Server/IIS FTP server + + + + + Definitely WS_FTP server + + + + + Definitely WuFTPd server + + + + + Definitely XLight FTP server + + + + + Types of special UNIX permissions + + + + + No special permissions are set + + + + + Sticky bit is set + + + + + SGID bit is set + + + + + SUID bit is set + + + + + The result of an upload or download operation + + + + + The upload or download failed with an error transferring, or the source file did not exist + + + + + The upload or download completed successfully + + + + + The upload or download was skipped because the file already existed on the target + + + + + Defines the level of the tracing message. Depending on the framework version this is translated + to an equivalent logging level in System.Diagnostices (if available) + + + + + Used for logging Debug or Verbose level messages + + + + + Used for logging Informational messages + + + + + Used for logging non-fatal or ignorable error messages + + + + + Used for logging Error messages that may need investigation + + + + + Defines if additional verification and actions upon failure that + should be performed when uploading/downloading files using the high-level APIs. Ignored if the + FTP server does not support any hashing algorithms. + + + + + No verification of the file is performed + + + + + The checksum of the file is verified, if supported by the server. + If the checksum comparison fails then we retry the download/upload + a specified amount of times before giving up. (See ) + + + + + The checksum of the file is verified, if supported by the server. + If the checksum comparison fails then the failed file will be deleted. + If combined with , then + the deletion will occur if it fails upon the final retry. + + + + + The checksum of the file is verified, if supported by the server. + If the checksum comparison fails then an exception will be thrown. + If combined with , then the throw will + occur upon the failure of the final retry, and/or if combined with + the method will throw after the deletion is processed. + + + + + The checksum of the file is verified, if supported by the server. + If the checksum comparison fails then the method returns false and no other action is taken. + + + + + Flags that can control how a file listing is performed. If you are unsure what to use, set it to Auto. + + + + + Not z/OS Server + + + + + HFS / USS + + + + + z/OS classic dataset + + + + + Partitioned dataset member, RECFM != U + + + + + Partitioned dataset member, RECFM = U + + + + + SITE FILETYPE=JES LIST + + + + + Event fired if a bad SSL certificate is encountered. This even is used internally; if you + don't have a specific reason for using it you are probably looking for FtpSslValidation. + + + + + + + Event is fired when a SSL certificate needs to be validated + + The control connection that triggered the event + Event args + + + + Event args for the FtpSslValidationError delegate + + + + + The certificate to be validated + + + + + The certificate chain + + + + + Validation errors, if any. + + + + + Gets or sets a value indicating if this certificate should be accepted. The default + value is false. If the certificate is not accepted, an AuthenticationException will + be thrown. + + + + + Exception triggered on FTP authentication failures + + + + + Initializes a new instance of a FtpAuthenticationException + + Status code + Associated message + + + + Initializes a new instance of a FtpAuthenticationException + + The FtpReply to build the exception from + + + + Must be implemented so every Serializer can Deserialize the Exception + + + + + Exception triggered on FTP command failures + + + + + Gets the completion code associated with the response + + + + + The type of response received from the last command executed + + + + + Setup the error message string + + + + + Initializes a new instance of a FtpResponseException + + Status code + Associated message + + + + Initializes a new instance of a FtpResponseException + + The FtpReply to build the exception from + + + + Must be implemented so every Serializer can Deserialize the Exception + + + + + FTP related error + + + + + Initializes a new instance of the class. + + The error message + + + + Initializes a new instance of the class with an inner exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Must be implemented so every Serializer can Deserialize the Exception + + + + + Exception is thrown when the required hash algorithm is unsupported by the server. + + + + + Gets the unsupported hash algorithm + + + + + Default constructor + + + + + Algorithm-specific constructor + + + + + Must be implemented so every Serializer can Deserialize the Exception + + + + + Exception is thrown when TLS/SSL encryption could not be negotiated by the FTP server. + + + + + AuthenticationException that caused this. + + + + + Default constructor + + + + + Custom error message + + Error message + + + + Must be implemented so every Serializer can Deserialize the Exception + + + + + Exception thrown by FtpListParser when parsing of FTP directory listing fails. + + + + + Creates a new FtpListParseException. + + + + + Must be implemented so every Serializer can Deserialize the Exception + + + + + Exception is thrown by FtpClient/AsyncFtpClient when the primary file or folder to be downloaded is missing. + + + + + Gets the type of file system object. + + + + + Gets the full path name to the file or folder. + + + + + Gets the name of the file or folder. Does not include the full path. + + + + + Creates a new FtpMissingObjectException. + + The original exception. + + + + Must be implemented so every Serializer can Deserialize the Exception + + + + + Exception is thrown by FtpSocketStream when there is no FTP server socket to connect to. + + + + + Creates a new FtpMissingSocketException. + + The original exception. + + + + Must be implemented so every Serializer can Deserialize the Exception + + + + + FtpProtocolUnsupportedException + + + + + FtpProtocolUnsupportedException + + Error message + + + + FtpProxyException + + + + + FtpProxyException + + + + + FtpProxyException + + + + + FtpProxyException + + + + + Exception is thrown when TLS/SSL encryption could not be negotiated by the FTP server. + + + + + Default constructor + + + + + Custom error message + + Error message + + + + Must be implemented so every Serializer can Deserialize the Exception + + + + + Extension methods related to FTP tasks + + + + + Check if operation can resume after . + + Received exception. + Result of checking. + + + + Extension methods related to FTP tasks + + + + + Checks if the array is null or 0 length. + + + + + Checks if the array is null or 0 length. + + + + + Converts the arguments to an array of strings. + + + + + Ensures the given item is only added once. If it was not present true is returned, else false is returned. + + + + + Shallow clones the list by copying each item to a new list. + + + + + Extension methods related to FTP date time values + + + + + Converts the FTP date string into a DateTime object, without performing any timezone conversion. + + The date string + The client object this is done for + Date formats to try parsing the value from (eg "yyyyMMddHHmmss") + A object representing the date, or if there was a problem + + + + Generates an FTP date-string from the DateTime object, without performing any timezone conversion. + + The date value + A string representing the date + + + + Generates C# code to create this date. + + + + + Extension methods related to FTP tasks + + + + + Validates that the FtpError flags set are not in an invalid combination. + + The error handling options set + True if a valid combination, otherwise false + + + + Checks if the operation was successful or skipped (indicating success). + + + + + Checks if the operation has failed. + + + + + Extension methods related to FTP tasks + + + + + Checks if the given file exists in the given file listing. + Supports servers that return: 1) full paths, 2) only filenames, 3) full paths without slash prefixed, 4) full paths with invalid slashes + + The listing returned by GetNameListing + The full file path you want to check + + + + + Checks if the given file exists in the given file listing. + + The listing returned by GetListing + The full file path you want to check + + + + + Extension methods related to FTP tasks + + + + + Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB) + + + + + Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB) + + + + + Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB) + + + + + Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB) + + + + + Parses a line from a file listing using the first successful parser, or the specified parser. + Returns an FtpListItem object representing the parsed line, or null if the line was unable to be parsed. + + + + + the FTP connection that owns this parser + + + + + current parser, or parser set by user + + + + + parser calculated based on system type (SYST command) + + + + + if we have detected that the current parser is valid + + + + + Is the version number returned as part of the filename? + + Some VMS FTP servers do not permit a file to be deleted unless + the filename includes the version number. Note that directories are + never returned with the version number. + + + + + Initializes a new instance of the class. + + An existing object + + + + Try to auto-detect which parser is suitable given a system string. + + + + + Parse raw file from server into a file object, using the currently active parser. + + + + + Validate if the current parser is correct, or if another parser seems more appropriate. + + + + + Validate if the current parser is correct + + + + + Helper class to convert FtpHashAlgorithm + + + + + Get FtpHashAlgorithm from its string representation + + Name of the hash algorithm + The FtpHashAlgorithm + + + + Get string representation of FtpHashAlgorithm + + FtpHashAlgorithm to be converted into string + Name of the hash algorithm + + + + Get the first supported algorithm, in the standard order of preference. If no hashing algos found, returns NONE. + + + + + Parses the received FTP hash response into a new FtpHash object. + + + + + Extension methods related to FTP tasks + + + + + Returns true if the given path is a directory path. + + + + + Ensures the given directory exists. + + + + + Combine the given base path with the relative path + + + + + The local ports. + + + + + Get random local port for the given local IP address + + + + + Log a message to the given IFluentLogger class. + + + + + Get the log prefix for the given trace level type. + + + + + Checks if the given listing is a valid IBM OS/400 file listing + + + + + Parses IBM OS/400 format listings + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Parses the last modified date from IBM OS/400 format listings + + + + + Checks if the given listing is a valid IBM z/OS file listing + + + + + Parses IBM z/OS format listings + + The FTP client + A line from the listing + Current location + FtpListItem if the item is able to be parsed + + + + Parses the last modified date from IBM z/OS format listings + + + + + Checks if the given listing is a valid Machine Listing item + + + + + Parses MLSD/MLST format listings + + A line from the listing + Server capabilities + The FTP client + FtpListItem if the item is able to be parsed + + + + Parses the date modified field from MLSD/MLST format listings + + + + + Parses the file size field from MLSD/MLST format listings + + + + + Parses the permissions from MLSD/MLST format listings + + + + + Checks if the given listing is a valid NonStop file listing + + + + + Parses NonStop format listings + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Parses the directory type and file size from NonStop format listings + + + + + Parses the last modified date from NonStop format listings + + + + + Checks if the given listing is a valid Unix file listing + + + + + Parses Unix format listings + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Parses the permissions from Unix format listings + + + + + Parses the link count from Unix format listings + + + + + Parses the owner and group permissions from Unix format listings + + + + + Parses the file size from Unix format listings + + + + + Parses day-of-month from Unix format listings + + + + + Parses the file or folder name from Unix format listings + + + + + Parses the last modified date from Unix format listings + + + + + Parses the last modified year from Unix format listings + + + + + Parses the last modified date from Unix format listings + + + + + Parses Unix format listings with alternate parser + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Checks if the given listing is a valid VMS file listing + + + + + Parses Vax/VMS format listings + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Parses the file size from Vax/VMS format listings + + + + + Parses the owner and group permissions from Vax/VMS format listings + + + + + Parses the permissions from Vax/VMS format listings + + + + + Parses the last modified date from Vax/VMS format listings + + + + + Checks if the given listing is a valid IIS/DOS file listing + + + + + Parses IIS/DOS format listings + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Parses the file or folder name from IIS/DOS format listings + + + + + Parses the file size and checks if the item is a directory from IIS/DOS format listings + + + + + Parses the last modified date from IIS/DOS format listings + + + + + Extension methods related to FTP tasks + + + + + Calculates the CHMOD value from the permissions flags + + + + + Calculates the permissions flags from the CHMOD value + + + + + Calculate the CHMOD integer value given a set of permissions. + + + + + Checks if the permission value has the given flag + + + + + Extension methods related to FTP tasks + + + + + Checks if this FTP path is a top level path + + + + + Checks if the given path is a root directory or working directory path + + + + + + + Converts the specified path into a valid FTP file system path. + Replaces invalid back-slashes with valid forward-slashes. + Replaces multiple slashes with single slashes. + Removes the ending postfix slash if any. + + The file system path + A path formatted for FTP + + + + Creates a valid FTP path by appending the specified segments to this string + + This string + The path segments to append + A valid FTP path + + + + Gets the parent directory path (formatted for a FTP server) + + The path + The parent directory path + + + + Gets the file name and extension from the path. + Supports paths with backslashes and forwardslashes. + + The full path to the file + The file name + + + + Converts a Windows or Unix-style path into its segments for segment-wise processing + + + + + + Get the full path of a given FTP Listing entry + + + + + Extension methods related to FTP tasks + + + + + Checks if every character in the string is whitespace, or the string is null. + + + + + Checks if the string is null or 0 length. + + + + + Join the given strings by a delimiter. + + + + + Join the given strings by a delimiter. + + + + + Adds a prefix to the given strings, returns a new array. + + + + + Adds a prefix to the given strings, returns a new array. + + + + + Ensure a string has the given prefix + + + + + Ensure a string has the given postfix + + + + + Remove a prefix from a string, only if it has the given prefix + + + + + Remove a postfix from a string, only if it has the given postfix + + + + + Escape a string into a valid C# string literal. + Implementation from StackOverflow - https://stackoverflow.com/a/14087738 + + + + + Split into fields by splitting on tokens + + + + + Checks if all the characters in this string are digits or dots + + + + + Checks if the string contains any of the given values + + + + + Checks if RexEx Pattern is valid + + + + + Checks if the reply contains any of the known error strings, by checking in case-insensitive manner. + + + + + Checks if the string equals any of these values, by checking in case-sensitive manner. + + + + + Checks if the string contains the given substring in a case-insensitive manner. + + + + + Checks if the string starts with the given substring in a case-insensitive manner. + + + + + Checks if the string ends with the given substring in a case-insensitive manner. + + + + + Extension methods related to FTP time span values + + + + + Extension methods related to FTP tasks + + + + + Ensures that the URI points to a server, and not a directory or invalid path. + + + + + + The current "state" of the client + + + + + Used to improve performance of OpenPassiveDataStream. + Enhanced-passive mode is tried once, and if not supported, is not tried again. + + + + + Used to improve performance of GetFileSize. + SIZE command is tried, and if the server cannot send it in ASCII mode, we switch to binary each time you call GetFileSize. + However most servers will support ASCII, so we can get the file size without switching to binary, improving performance. + + + + + Used to improve performance of GetListing. + You can set this to true by setting the RecursiveList property. + + + + + Used to automatically dispose cloned connections after FXP transfer has ended. + + + + + Cached value of the last read working directory (absolute path). + + + + + Cached value of the last set hash algorithm. + + + + + Did the FTPS connection fail during the last Connect/ConnectAsync attempt? + + + + + Did the UTF8 encoding setting work during the last Connect/ConnectAsync attempt? + + + + + Store the current data type setting + + + + + Allow checking for stale data on socket? + + + + + We are in a sequence of commands that should not be interrupted + by an automatic reconnect + + + + + Count the reconnects + Reset this value when a non-reconnect takes place + + + + + These flags must be reset every time we connect, to allow for users to connect to + different FTP servers with the same client object. + + + + + These flags must be copied when we quickly clone the connection. + + + + + Avoid repeated DNS queries for the same host name + + + + + During and after a z/OS GetListing(), this value stores the + z/OS filesystem realm that was encountered. + The value is used internally to control the list parse mode + + + + + During and after a z/OS GetListing(), this value stores the + the LRECL that was encountered (for a realm = Member only). + The value is used internally to calculate member sizes + + + + + Holds all the configuration settings for a single FTP client. + One FtpConfig object can only be bound to one client at a time. + If you want to reuse it across multiple FTP clients, then clone it and then reuse it. + + + + + Which FtpClient are we bound to? + + + + + Should the function calls be logged in Verbose mode? + + + + + Should the FTP server host IP/domain be shown in the logs (true) or masked out (false)? + + + + + Should the FTP username be shown in the logs (true) or masked out (false)? + + + + + Should the FTP password be shown in the logs (true) or masked out (false)? + + + + + Should the command duration be shown after each log command? + + + + + Flags specifying which versions of the internet protocol (IPV4 or IPV6) to + support when making a connection. All addresses returned during + name resolution are tried until a successful connection is made. + You can fine tune which versions of the internet protocol to use + by adding or removing flags here. I.e., setting this property + to FtpIpVersion.IPv4 will cause the connection process to + ignore IPv6 addresses. The default value is ANY version. + + + + + Gets or sets the length of time in milliseconds + that must pass since the last socket activity + before calling + on the socket to test for connectivity. + Setting this interval too low will + have a negative impact on performance. Setting this + interval to 0 disables Polling all together. + The default value is 15 seconds. + + + + + Gets or sets a value indicating whether a test should be performed to + see if there is stale (unrequested data) sitting on the socket. In some + cases the control connection may time out but before the server closes + the connection it might send a 4xx response that was unexpected and + can cause synchronization errors with transactions. To avoid this + problem the method checks to see if there is any data + available on the socket before executing a command. On Azure hosting + platforms this check can cause an exception to be thrown. In order + to work around the exception you can set this property to false + which will skip the test entirely however doing so eliminates the + best effort attempt of detecting such scenarios. See this thread + for more details about the Azure problem: + https://netftp.codeplex.com/discussions/535879 + + + + + Gets or sets the length of time in milliseconds after last command + (NOOP or other) that a NOOP command is sent by /. + This is called during downloading/uploading. Setting this + interval to 0 disables / all together. + The default value is 0 (disabled). + + + + + When this value is set to true (default) the control connection + will set which features are available by executing the FEAT command + when the connect method is called. + + + + + Client certificates to be used in SSL authentication process + + + + + Delegate used for resolving local address, used for active data connections + This can be used in case you're behind a router, but port forwarding is configured to forward the + ports from your router to your internal IP. In that case, we need to send the router's IP instead of our internal IP. + + + + + Ports used for Active Data Connection. + Useful when your FTP server has certain ports that are blocked or used for other purposes. + + + + + Ports blocked for Passive Data Connection (PASV and EPSV). + Useful when your FTP server has certain ports that are blocked or used for other purposes. + + + + + Maximum number of passive connections made in order to find a working port for Passive Data Connection (PASV and EPSV). + Only used if PassiveBlockedPorts is non-null. + + + + + Data connection type, default is AutoPassive which tries + a connection with EPSV first and if it fails then tries + PASV before giving up. If you know exactly which kind of + connection you need you can slightly increase performance + by defining a specific type of passive or active data + connection here. + + + + + Disconnect from the server without sending QUIT. This helps + work around IOExceptions caused by buggy connection resets + when closing the control connection. + + + + + Gets or sets the length of time in milliseconds to wait for a connection + attempt to succeed before giving up. Default is 0 (Use OS default timeout) + See: https://github.com/robinrodricks/FluentFTP/wiki/FTP-Connection#connection-timeout-settings + and: https://github.com/robinrodricks/FluentFTP/wiki/FTP-Connection#faq_timeoutwindows + + + + + Gets or sets the length of time wait in milliseconds for data to be + read from the underlying stream. The default value is 15000 (15 seconds). + + + + + Gets or sets the length of time in milliseconds for a data connection + to be established before giving up. Default is 15000 (15 seconds). + + + + + Gets or sets the length of time in milliseconds the data channel + should wait for the server to send data. Default value is + 15000 (15 seconds). + + + + + Gets or sets a value indicating if should be set on + the underlying stream's socket. If the connection is alive, the option is + adjusted in real-time. The value is stored and the KeepAlive option is set + accordingly upon any new connections. The value set here is also applied to + all future data streams. It has no affect on cloned control connections or + data connections already in progress. The default value is false. + + + + + Type of SSL to use, or none. Default is none. Explicit is TLS, Implicit is SSL. + + + + + Indicates if data channel transfers should be encrypted. Only valid if + property is not equal to . + + + + + Encryption protocols to use. Only valid if EncryptionMode property is not equal to . + Default value is .NET Framework defaults from the class. + + + + + Whether to use SSL Buffering to speed up data transfer during FTP operations. + SSL Buffering is always disabled on .NET 5.0 and later due to platform issues (see issue 682 in FluentFTP issue tracker). + + + + + Gets or sets the max number of socket write/read transactions + before an automatic disconnect/reconnect is performed. + This is required to bypass an SSL issue that occurs after a specific number of transactions. + Set to zero to disable automatic reconnects. + + + + + Accept any SSL certificate received from the server and skip performing + the validation using the ValidateCertificate callback. + Useful for Powershell users. + + + + + Indicates if the certificate revocation list is checked during authentication. + Useful when you need to maintain the certificate chain validation, + but skip the certificate revocation check. + WARNING: Enabling this can cause memory leaks in some conditions (see issue #710 for details). + + + + + Controls if the file listings are downloaded in Binary or ASCII mode. + + + + + File listing parser to be used. + Automatically calculated based on the type of the server at the time of connection. + If you want to override this property, make sure to do it after calling Connect. + + + + + Culture used to parse file listings + + + + + Custom file listing parser to be used. + + + + + Callback format to implement your custom FTP listing line parser. + + The line from the listing + The server capabilities + The FTP client + Return an FtpListItem object if the line can be parsed, else return null + + + + The timezone of the FTP server. If the server is in Tokyo with UTC+9 then set this to 9. + If the server returns timestamps in UTC then keep this 0. + + + + + Server timestamps are converted into the given timezone. + ServerTime will return the original timestamp. + LocalTime will convert the timestamp into your local machine's timezone. + UTC will convert the timestamp into UTC format (GMT+0). + You need to set TimeZone and LocalTimeZone (.NET core only) for these to work. + + + + + If true, increases performance of GetListing by reading multiple lines + of the file listing at once. If false then GetListing will read file + listings line-by-line. If GetListing is having issues with your server, + set it to false. + + The number of bytes read is based upon . + + + + + Bytes to read during GetListing. Only honored if is true. + + + + + Gets or sets the number of bytes transferred in a single chunk (a single FTP command). + Used by / and / + to transfer large files in multiple chunks. + + + + + Gets or sets the size of the file buffer when reading and writing files on the local file system. + Used by / and / + and all the other file and directory transfer methods. + + + + + Gets or sets the retry attempts allowed when a verification failure occurs during download or upload. + This value must be set to 1 or more. + + + + + Rate limit for uploads in kbyte/s. Set this to 0 for unlimited speed. + Honored by high-level API such as Upload(), Download(), UploadFile(), DownloadFile().. + + + + + Rate limit for downloads in kbytes/s. Set this to 0 for unlimited speed. + Honored by high-level API such as Upload(), Download(), UploadFile(), DownloadFile().. + + + + + Controls if zero-byte files should be downloaded or skipped. + If false, then no file is created/overwritten into the filesystem. + + + + + Controls if the high-level API uploads files in Binary or ASCII mode. + + + + + Controls if the high-level API downloads files in Binary or ASCII mode. + + + + + Controls if the UploadDirectory API deletes the excluded files when uploading in Mirror mode. + If true, then any files that are excluded will be deleted from the FTP server if they are + excluded from the local system. This is done to keep the server in sync with the local system. + But if it is false, the excluded files are not touched on the server, and simply ignored. + + + + + Controls if the DownloadDirectory API deletes the excluded files when downloading in Mirror mode. + If true, then any files that are excluded will be deleted from the local filesystem if they are + excluded from the FTP server. This is done to keep the local filesystem in sync with the FTP server. + But if it is false, the excluded files are not touched on the local filesystem, and simply ignored. + + + + + Controls if the FXP server-to-server file transfer API uses Binary or ASCII mode. + + + + + Controls how often the progress reports are sent during an FXP file transfer. + The default value is 1000 (1 second). + + + + + Controls if the HOST command is sent immediately after the handshake. + Useful when you are using shared hosting and you need to inform the + FTP server which domain you want to connect to. + + + + + Controls which domain is sent with the HOST command. + If this is null, then the Host parameter of the FTP client is sent. + + + + + The local socket will be bound to the given local IP/interface. + This is useful if you have several usable public IP addresses and want to use a particular one. + + + + + Bind this FtpConfig object to the given FTP client. + + + + + + Return a deep clone of this FtpConfig object. + + + + + Copy settings from one config object to another. + + + + + Object that keeps track of an active FXP Connection between 2 FTP servers. + + + + + A connection to the FTP server where the file or folder is currently stored + + + + + A connection to the destination FTP server where you want to create the file or folder + + + + + A connection to the destination FTP server used to track progress while transfer is going on. + + + + + Gets a value indicating if this object has already been disposed. + + + + + Closes an FXP connection by disconnecting and disposing off the FTP clients that are + cloned for this FXP connection. Manually created FTP clients are untouched. + + + + + Object that keeps track of an active FXP Connection between 2 FTP servers. + + + + + A connection to the FTP server where the file or folder is currently stored + + + + + A connection to the destination FTP server where you want to create the file or folder + + + + + A connection to the destination FTP server used to track progress while transfer is going on. + + + + + Gets a value indicating if this object has already been disposed. + + + + + Closes an FXP connection by disconnecting and disposing off the FTP clients that are + cloned for this FXP connection. Manually created FTP clients are untouched. + + + + + Represents a computed hash of an object + on the FTP server. See the following link + for more information: + http://tools.ietf.org/html/draft-bryan-ftpext-hash-02 + + + + + Gets the algorithm that was used to compute the hash + + + + + Gets the computed hash returned by the server + + + + + Gets a value indicating if this object represents a + valid hash response from the server. + + + + + Computes the hash for the specified file and compares + it to the value in this object. CRC hashes are not supported + because there is no built-in support in the .net framework and + a CRC implementation exceeds the scope of this project. If you + attempt to call this on a CRC hash a will + be thrown. + + The file to compute the hash for + True if the computed hash matches what's stored in this object. + Thrown if called on a CRC Hash + + + + Computes the hash for the specified stream and compares + it to the value in this object. CRC hashes are not supported + because there is no built-in support in the .net framework and + a CRC implementation exceeds the scope of this project. If you + attempt to call this on a CRC hash a will + be thrown. + + The stream to compute the hash for + True if the computed hash matches what's stored in this object. + Thrown if called on a CRC Hash + + + + Creates an empty instance. + + + + + Represents a file system object on the server + + + + + Blank constructor, you will need to fill arguments manually. + + NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing(). + + + + + Constructor with mandatory arguments filled. + + NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing(). + + + + + Constructor with mandatory arguments filled. + + NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing(). + + + + + Gets the type of file system object. + + + + + Gets the sub type of file system object. + + + + + Gets the full path name to the file or folder. + + + + + Gets the name of the file or folder. Does not include the full path. + + + + + Gets the target a symbolic link points to. + + + + + Gets the number of links pointing to this file. Only supplied by Unix servers. + + + + + Gets the object that the LinkTarget points to. + + + + + Gets the last write time of the object after timezone conversion (if enabled). + + + + + Gets the created date of the object after timezone conversion (if enabled). + + + + + Gets the last write time of the object before any timezone conversion. + + + + + Gets the created date of the object before any timezone conversion. + + + + + Gets the size of the object. + + + + + Gets special UNIX permissions such as Sticky, SUID and SGID. + + + + + Gets the owner permissions. + + + + + Gets the group permissions. + + + + + Gets the others permissions. + + + + + Gets the raw string received for the file permissions. + Use this if the other properties are blank/invalid. + + + + + Gets the file permissions in the CHMOD format. + + + + + Gets the raw string received for the file's GROUP permissions. + Use this if the other properties are blank/invalid. + + + + + Gets the raw string received for the file's OWNER permissions. + Use this if the other properties are blank/invalid. + + + + + Gets the input string that was parsed to generate the + values in this object. + + + + + Returns a string representation of this object and its properties + + A string representing this object + + + + Returns a code representation of this object and its properties + + + + + Metadata of a single log message. + + + + + The current "profile" defining the client + + + + + The host IP address or URL of the FTP server + + + + + The FTP username and password used to login + + + + + A working Encryption Mode found for this profile + + + + + A working Ssl Protocol setting found for this profile + + + + + A working Data Connection Type found for this profile + + + + + A working Encoding setting found for this profile + + + + + A working Timeout setting found for this profile, or 0 if default value should be used + + + + + A working SocketPollInterval setting found for this profile, or 0 if default value should be used + + + + + A working RetryAttempts setting found for this profile, or 0 if default value should be used + + + + + If the server surely supports the given encoding. + + + + + Generates valid C# code for this connection profile. + + + + + + Class to report FTP file transfer progress during upload or download of files + + + + + A value between 0-100 indicating percentage complete, or -1 for indeterminate. + Used to track the progress of an individual file transfer. + + + + + A value indicating how many bytes have been transferred. + When unable to calculate percentage, having the partial byte count may help in providing some feedback. + + + + + A value representing the current Transfer Speed in Bytes per seconds. + Used to track the progress of an individual file transfer. + + + + + A value representing the calculated 'Estimated time of arrival'. + Used to track the progress of an individual file transfer. + + + + + Stores the absolute remote path of the current file being transferred. + + + + + Stores the absolute local path of the current file being transferred. + + + + + Stores the index of the file in the listing. + Only used when transferring multiple files or an entire directory. + + + + + Stores the total count of the files to be transferred. + Only used when transferring multiple files or an entire directory. + + + + + Create a new FtpProgress object for meta progress info. + + + + + Create a new FtpProgress object for individual file transfer progress. + + + + + Convert Transfer Speed (bytes per second) in human readable format + + + + + Create a new FtpProgress object for a file transfer and calculate the ETA, Percentage and Transfer Speed. + + + + + Connection profile for a proxy connection. + + + + + Proxy server host name. Mandatory. + + + + + Proxy server port. Mandatory. + + + + + Proxy server login credentials. Mandatory if your proxy needs authentication, leave it blank otherwise. + + + + + FTP server host name. Optional. You can either set it here or set `ftpClient.Host` later on. + + + + + FTP server port. Optional. You can either set it here or set `ftpClient.Port` later on. + + + + + FTP server login credentials. Optional. You can either set it here or set `ftpClient.Credentials` later on. + + + + + Represents a reply to an event on the server + + + + + The type of response received from the last command executed + + + + + The status code of the response + + + + + The message, if any, that the server sent with the response + + + + + Informational messages sent from the server + + + + + General success or failure of the last command executed, by checking the FTP status code. + 1xx, 2xx, 3xx indicate success and 4xx, 5xx are failures. + + + + + Gets the error message including any informational output + that was sent by the server. Sometimes the final response + line doesn't contain anything informative as to what was going + on with the server. Instead it may send information messages so + in an effort to give as meaningful as a response as possible + the informational messages will be included in the error. + + + + + Stores the command that produced this reply (if any) + + + + + Stores the result of a file transfer when UploadDirectory or DownloadDirectory is used. + + + + + Returns true if the file was downloaded, false if it was uploaded. + + + + + Gets the type of file system object. + + + + + Gets the size of the file, or 0 if unknown. + + + + + Gets the name and extension of the file. + + + + + Stores the absolute remote path of the current file being transferred. + + + + + Stores the absolute local path of the current file being transferred. + + + + + Gets the error that occurring during transferring this file, if any. + + + + + Returns true if the file was downloaded/uploaded, or the file was already existing with the same file size. + + + + + Was the file skipped? + + + + + Was the file skipped due to failing the rule condition? + + + + + Was there an error during transfer? You can read the Exception property for more details. + + + + + Convert this result to a FTP list item. + + + + + Human readable results + + + + + Reply from a SIZE command + + + + + The returned file size + + + + + The reply we got + + + + + A FTP client with a user@host proxy identification, that works with Blue Coat FTP Service servers. + + The 'blue coat variant' forces the client to wait for a 220 FTP response code in + the handshake phase. + + + + A FTP client with a user@host proxy identification. + Proxy information + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + Redefine the first dialog: auth with proxy information + + + A FTP client with a HTTP 1.1 proxy implementation. + + + A FTP client with a HTTP 1.1 proxy implementation + Proxy information + + + Redefine the first dialog: HTTP Frame for the HTTP 1.1 Proxy + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Connects to the server using an existing + + The existing socket stream + The token that can be used to cancel the entire process + + + + Connects to the server using an existing + + The existing socket stream + Host name + Port number + IP version to use + IP version to use + + + + Abstraction of an FtpClient with a proxy + + + + The proxy connection info. + + + A FTP client with a HTTP 1.1 proxy implementation + Proxy information + + + Redefine connect for FtpClient : authentication on the Proxy + The socket stream. + Cancellation token. + + + + A FTP client with a SOCKS4a proxy implementation. + + + + + Setup a SOCKS4a proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Called during . Typically extended by FTP proxies. + + + + + Connect + + + + + A FTP client with a SOCKS4 proxy implementation. + + + + + Setup a SOCKS4 proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Called during . Typically extended by FTP proxies. + + + + + Connect + + + + + A FTP client with a SOCKS5 proxy implementation. + + + + + Setup a SOCKS5 proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Connect + + + + A FTP client with a user@host proxy identification. + + + A FTP client with a user@host proxy identification. + Proxy information + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + Redefine the first dialog: auth with proxy information + + + + This class is not reusable. + You have to create a new instance for each connection / attempt. + + + + + This class is not reusable. + You have to create a new instance for each connection / attempt. + + + + + Translate the host name or IP address to a byte array. + + Host name or IP address. + Byte array representing IP address in bytes. + + + + Translate the destination port value to a byte array. + + Destination port. + Byte array representing an 16 bit port number as two bytes. + + + + This class is not reusable. + You have to create a new instance for each connection / attempt. + + + + + A FTP client with a user@host proxy identification, that works with Blue Coat FTP Service servers. + + The 'blue coat variant' forces the client to wait for a 220 FTP response code in + the handshake phase. + + + + A FTP client with a user@host proxy identification. + Proxy information + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + Redefine the first dialog: auth with proxy information + + + A FTP client with a HTTP 1.1 proxy implementation. + + + A FTP client with a HTTP 1.1 proxy implementation + Proxy information + + + Redefine the first dialog: HTTP Frame for the HTTP 1.1 Proxy + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Connects to the server using an existing + + The existing socket stream + + + + Connects to the server using an existing + + The existing socket stream + Host name + Port number + IP version to use + + + + Abstraction of an FtpClient with a proxy + + + + The proxy connection info. + + + A FTP client with a HTTP 1.1 proxy implementation + Proxy information + + + Redefine connect for FtpClient : authentication on the Proxy + The socket stream. + + + + A FTP client with a SOCKS4a proxy implementation. + + + + + Setup a SOCKS4a proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Called during Connect(). Typically extended by FTP proxies. + + + + + Connect + + + + + + Connect + + + + + + + + + A FTP client with a SOCKS4 proxy implementation. + + + + + Setup a SOCKS4 proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Called during Connect(). Typically extended by FTP proxies. + + + + + Connect + + + + + Connect + + + + + A FTP client with a SOCKS5 proxy implementation. + + + + + Setup a SOCKS5 proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Connect + + + + + Connect + + + + A FTP client with a user@host proxy identification. + + + A FTP client with a user@host proxy identification. + Proxy information + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + Redefine the first dialog: auth with proxy information + + + + Only accept files that have the given extension, or exclude files of a given extension. + + + + + If true, only files of the given extension are uploaded or downloaded. If false, files of the given extension are excluded. + + + + + The extensions to match + + + + + Only accept files that have the given extension, or exclude files of a given extension. + + If true, only files of the given extension are uploaded or downloaded. If false, files of the given extension are excluded. + The extensions to match + + + + Checks if the files has the given extension, or exclude files of the given extension. + + + + + Only accept files whose names match the given regular expression(s), or exclude files that match. + + + + + If true, only items where one of the supplied regex pattern matches are uploaded or downloaded. + If false, items where one of the supplied regex pattern matches are excluded. + + + + + The files names to match + + + + + Only accept items that match one of the supplied regex patterns. + + If true, only items where one of the supplied regex pattern matches are uploaded or downloaded. If false, items where one of the supplied regex pattern matches are excluded. + The list of regex patterns to match. Only valid patterns are accepted and stored. If none of the patterns are valid, this rule is disabled and passes all objects. + + + + Checks if the FtpListItem Name does match any RegexPattern + + + + + Only accept files that have the given name, or exclude files of a given name. + + + + + If true, only files of the given name are uploaded or downloaded. If false, files of the given name are excluded. + + + + + The files names to match + + + + + Only accept files that have the given name, or exclude files of a given name. + + If true, only files of the given name are downloaded. If false, files of the given name are excluded. + The files names to match + + + + Checks if the files has the given name, or exclude files of the given name. + + + + + Only accept folders whose names match the given regular expression(s), or exclude folders that match. + + + + + If true, only folders where one of the supplied regex pattern matches are uploaded or downloaded. + If false, folders where one of the supplied regex pattern matches are excluded. + + + + + The files names to match + + + + + Which path segment to start checking from + + + + + Only accept items that one of the supplied regex pattern. + + If true, only folders where one of the supplied regex pattern matches are uploaded or downloaded. If false, folders where one of the supplied regex pattern matches are excluded. + The list of regex patterns to match. Only valid patterns are accepted and stored. If none of the patterns are valid, this rule is disabled and passes all objects. + Which path segment to start checking from. 0 checks root folder onwards. 1 skips root folder. + + + + Checks if the FtpListItem Name does match any RegexPattern + + + + + Only accept folders that have the given name, or exclude folders of a given name. + + + + + Common folders to blacklist + + + + + If true, only folders of the given name are uploaded or downloaded. + If false, folders of the given name are excluded. + + + + + The folder names to match + + + + + Which path segment to start checking from + + + + + Only accept folders that have the given name, or exclude folders of a given name. + + If true, only folders of the given name are downloaded. If false, folders of the given name are excluded. + The folder names to match + Which path segment to start checking from. 0 checks root folder onwards. 1 skips root folder. + + + + Checks if the folders has the given name, or exclude folders of the given name. + + + + + Base class used for all FTP Rules. Extend this class to create custom rules. + You only need to provide an implementation for IsAllowed, and add any custom arguments that you require. + + + + + Rule object + + + + + Returns true if the object has passed this rules. + + + + + Returns true if the object has passed all the rules. + + + + + Only accept files that are of the given size, or within the given range of sizes. + + + + + Which operator to use + + + + + The first value, required for all operators + + + + + The second value, only required for BetweenRange and OutsideRange operators + + + + + Only accept files that are of the given size, or within the given range of sizes. + + Which operator to use + The first value, required for all operators + The second value, only required for BetweenRange and OutsideRange operators. + + + + Checks if the file is of the given size, or within the given range of sizes. + + + + + The base class used for all FTP server specific support. + You may extend this class to implement support for custom FTP servers. + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return true if your server is detected by the given SYST response message. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Return your FTP server's default capabilities. + Used if your server does not broadcast its capabilities using the FEAT command. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Perform server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Perform async server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Perform server-specific create directory commands here. + Return true if you executed a server-specific command. + + + + + Perform async server-specific create directory commands here. + Return true if you executed a server-specific command. + + + + + Perform server-specific post-connection commands here. + Return true if you executed a server-specific command. + + + + + Perform server-specific post-connection commands here. + Return true if you executed a server-specific command. + + + + + Return true if your server requires custom handling of file size. + + + + + Perform server-specific file size fetching commands here. + Return the file size in bytes. + + + + + Perform server-specific file size fetching commands here. + Return the file size in bytes. + + + + + Check if the given path is a root directory on your FTP server. + If you are unsure, return false. + + + + + Skip reporting a parser error + + + + + Always read to end of stream on a download + If you are unsure, return false. + + + + + Return true if the path is an absolute path according to your server's convention. + + + + + Return true if your server requires custom handling of absolute paths. + + + + + Perform server-specific path modification here. + Return the absolute path. + + + + + Perform server-specific path modification here. + Return the absolute path. + + + + + Return true if your server requires custom handling of absolute dir. + + + + + Perform server-specific path modification here. + Return the absolute dir. + + + + + Perform server-specific path modification here. + Return the absolute path. + + + + + Return true if your server requires custom handling of path and filename concatenation. + + + + + Perform server-specific path modification here. + Return concatenation of path and filename + + + + + Perform server-specific path modification here. + Return concatenation of path and filename + + + + + Return true if your server requires custom handling to handle listing analysis. + + + + + Get the full path of a given FTP Listing entry + Return null indicates custom code decided not to handle this + + + + + Disable SIZE command even if server says it is supported + + + + + Disable MDTM command even if server says it is supported + + + + + Return true if your server requires custom handling to check file existence. + + + + + Check for existence of a file + Return null indicates custom code decided not to handle this + + + + + Check for existence of a file + Return null indicates custom code decided not to handle this + + + + + Server-specific handling for Apache (MINA) FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given SYST response message. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Server-specific handling for BFTPd FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for Cerberus FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for CrushFTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for D-Link FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for FileZilla FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Server-specific handling for FritzBox FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for FTP2S3Gateway FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for glFTPd FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for GlobalScapeEFT FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for HomegateFTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for Huawei FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for IBMOS400FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Server-specific handling for IBMzOSFTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Perform server-specific post-connection commands here. + Return true if you executed a server-specific command. + + + + + Perform server-specific post-connection commands here. + Return true if you executed a server-specific command. + + + + + Get z/OS file size + + The client object this is being done for + The full path of the file whose size you want to retrieve + + Make sure you are in the right realm (z/OS or HFS) before doing this + + The size of the file + + + + Get z/OS file size + + The client object this is being done for + The full path of the file whose size you want to retrieve + The token that can be used to cancel the entire process + + Make sure you are in the right realm (z/OS or HFS) before doing this + + The size of the file + + + + Check if the given path is a root directory on your FTP server. + If you are unsure, return false. + + + + + Skip reporting a parser error + + + + + Always read to End of stream on a download + + + + + Return true if your server requires custom handling of absolute path. + + + + + Perform server-specific path modification here. + Return the absolute path. + + + + + Perform server-specific path modification here. + Return the absolute path. + + + + + Return true if your server requires custom handling of absolute dir. + + + + + Perform server-specific path modification here. + Return null indicates custom code decided not to handle this + Return the absolute dir. + + + + + Perform server-specific path modification here. + Return null indicates custom code decided not to handle this + Return the absolute dir. + + + + + Return true if your server requires custom handling of path and filename concatenation. + + + + + Perform server-specific path modification here. + Return null indicates custom code decided not to handle this + Return concatenation of path and filename + + + + + Perform server-specific path modification here. + Return null indicates custom code decided not to handle this + Return concatenation of path and filename + + + + + Return true if your server requires custom handling to handle listing analysis. + + + + + Get the full path of a given FTP Listing entry + Return null indicates custom code decided not to handle this + + + + + Disable SIZE command even if server says it is supported + + + + + Disable MDTM command even if server says it is supported + + + + + Return true if your server requires custom handling to check file existence. + + + + + Check for existence of a file + Return null indicates custom code decided not to handle this + + + + + Check for existence of a file + Return null indicates custom code decided not to handle this + + + + + Server-specific handling for ABB IDAL FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for MikroTik RouterOS FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for NonStop/Tandem FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Server-specific handling for OpenVMS FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return true if your server is detected by the given SYST response message. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Return your FTP server's default capabilities. + Used if your server does not broadcast its capabilities using the FEAT command. + + + + + Return true if the path is an absolute path according to your server's convention. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Get the full path of a given FTP Listing entry + Return null indicates custom code decided not to handle this + + + + + Server-specific handling for ProFTPD FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Perform server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Perform async server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Perform server-specific create directory commands here. + Return true if you executed a server-specific command. + + + + + Perform async server-specific create directory commands here. + Return true if you executed a server-specific command. + + + + + Server-specific handling for PureFTPd FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Server-specific handling for PyFtpdLib FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for Rumpus FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for ServU FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Perform server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Perform async server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Server-specific handling for SolarisFTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given SYST response message. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Server-specific handling for Titan FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for TP-LINK FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for VsFTPd FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Server-specific handling for WindowsCE FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given SYST response message. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Server-specific handling for WindowsServer/IIS FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Server-specific handling for WS_FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for WuFTPd FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Return your FTP server's default capabilities. + Used if your server does not broadcast its capabilities using the FEAT command. + + + + + Server-specific handling for XLight FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Base class for data stream connections + + + + + Gets the status of the command that was used to open + this data channel + + + + + Gets or sets the control connection for this data stream. Setting + the control connection causes the object to be cloned and a new + connection is made to the server to carry out the task. This ensures + that multiple streams can be opened simultaneously. + + + + + Gets or sets the length of the stream. Only valid for file transfers + and only valid on servers that support the Size command. + + + + + Gets or sets the position of the stream + + + + + Reads data off the stream + + The buffer to read into + Where to start in the buffer + Number of bytes to read + The number of bytes read + + + + Reads data off the stream asynchronously + + The buffer to read into + Where to start in the buffer + Number of bytes to read + The cancellation token for this task + The number of bytes read + + + + Writes data to the stream + + The buffer to write to the stream + Where to start in the buffer + The number of bytes to write to the buffer + + + + Writes data to the stream asynchronously + + The buffer to write to the stream + Where to start in the buffer + The number of bytes to write to the buffer + The for this task + + + + Sets the length of this stream + + Value to apply to the Length property + + + + Sets the position of the stream. Intended to be used + internally by FtpControlConnection. + + The position + + + + Closes the connection and reads the server's reply + + + + + Creates a new data stream object + + The control connection to be used for carrying out this operation + + + + Finalizer + + + + + Stream object for the local files + + + + + Returns the file size using synchronous file I/O. + + + + + Returns the file size using async file I/O. + + + + + Returns the file size using synchronous file I/O. + + + + + Returns the file size using synchronous file I/O. + + + + + Returns a new stream to upload a file from disk. + If the file fits within the fileSizeLimit, then it is read in a single disk call and stored in memory, and a MemoryStream is returned. + If it is larger than that, then a regular read-only FileStream is returned. + + + + + Returns a new stream to download a file to disk. + If the file fits within the fileSizeLimit, then a new MemoryStream is returned. + If it is larger than that, then a regular writable FileStream is returned. + + + + + Stream class used for talking. Used by FtpClient, extended by FtpDataStream + + + + + The client this stream is associated with + + + + + This stream connection to be associated with this client + + + + + Used for tracking read/write activity on the socket + to determine if Poll() should be used to test for + socket connectivity. The socket in this class will + not know it has been disconnected if the remote host + closes the connection first. Using Poll() avoids + the exception that would be thrown when trying to + read or write to the disconnected socket. + + + + + The socket used for talking + + + + + Keep a count of command/response transactions on the + control connection + + + + + Gets or sets the length of time in milliseconds + that must pass since the last socket activity + before calling Poll() on the socket to test for + connectivity. Setting this interval too low will + have a negative impact on performance. Setting this + interval to 0 disables Poll()'ing all together. + The default value is 15 seconds. + + + + + Gets the number of available bytes on the socket, 0 if the + socket has not been initialized. This property is used internally + by FtpClient in an effort to detect disconnections and gracefully + reconnect the control connection. + + + + + Gets a value indicating if this socket stream is connected + + + + + Gets a value indicating if encryption is being used + + + + + Is this stream the control connection? + + + + + The negotiated SSL/TLS protocol version. Will have a valid value after connection is complete. + + + + + The non-encrypted stream + + + + + Gets the underlying stream, could be a NetworkStream or SslStream + + + + + Gets a value indicating if this stream can be read + + + + + Gets a value indicating if this stream if seekable + + + + + Gets a value indicating if this stream can be written to + + + + + Gets the length of the stream + + + + + Gets the current position of the stream. Trying to + set this property throws an InvalidOperationException() + + + + + Event is fired when a SSL certificate needs to be validated + + + + + Gets or sets the amount of time to wait for a read operation to complete. Default + value is Timeout.Infinite. + + + + + Gets or sets the length of time milliseconds to wait + for a connection succeed before giving up. The default + is 0 = disable, use system default timeout. + + + + + Gets the local end point of the socket + + + + + Gets the remote end point of the socket + + + + + Fires the SSL certificate validation event + + Certificate being validated + Certificate chain + Policy errors if any + True if it was accepted, false otherwise + + + + Throws an InvalidOperationException + + Ignored + Ignored + + + + + Throws an InvalidOperationException + + Ignored + + + + Flushes the stream + + + + + Flushes the stream asynchronously + + The for this task + + + + Bypass the stream and read directly off the socket. + + The buffer to read into + The number of bytes read + + + + Bypass the stream and read directly off the socket. + + The buffer to read into + The token that can be used to cancel the entire process + The number of bytes read + + + + Reads data from the stream + + Buffer to read into + Where in the buffer to start + Number of bytes to be read + The amount of bytes read from the stream + + + + Reads data from the stream + + Buffer to read into + Where in the buffer to start + Number of bytes to be read + The for this task + The amount of bytes read from the stream + + + + Reads a line from the socket + + The type of encoding used to convert from byte[] to string + A line from the stream, null if there is nothing to read + + + + Reads all lines from the socket + + The type of encoding used to convert from byte[] to string + The size of the buffer + A list of lines from the stream + + + + Reads a line from the socket asynchronously + + The type of encoding used to convert from byte[] to string + The for this task + A line from the stream, null if there is nothing to read + + + + Reads all lines from the socket + + The type of encoding used to convert from byte[] to string + The size of the buffer + The token that can be used to cancel the entire process + A list of lines from the stream + + + + Writes data to the stream + + Buffer to write to stream + Where in the buffer to start + Number of bytes to be written + + + + Writes data to the stream asynchronously + + Buffer to write to stream + Where in the buffer to start + Number of bytes to be written + The for this task + + + + Writes a line to the stream using the specified encoding + + Encoding used for writing the line + The data to write + + + + Writes a line to the stream using the specified encoding asynchronously + + Encoding used for writing the line + The data to write + The for this task + + + + Disconnects from server + + + + + Safely close the socket if its open + + + + + Sets socket options on the underlying socket + + SocketOptionLevel + SocketOptionName + SocketOptionValue + + + + Check if the specified IP Address is allowed + + The ip address to connect to + The enum value of allowed IP Versions + Textual representation of the address family + + + + Get the IP Address(es) associated with this host + + The host to query + + + + Set the connected IP Address associated with this host + + The host to query + The IP address to store in the cache + + + + Connect to the specified host + + The host to connect to + The port to connect to + Internet Protocol versions to support during the connection phase + + + + Connect to the specified host + Detects timeout and throws that explicitly + + The ip address to connect to + The port to connect to + + + + Get the IP Address(es) associated with this host + + The host to query + The token that can be used to cancel the entire process + + + + Connect to the specified host + + The host to connect to + The port to connect to + Internet Protocol versions to support during the connection phase + The token that can be used to cancel the entire process + + + + Connect to the specified host + Detects timeout and throws that explicitly + + The ip address to connect to + The port to connect to + The token that can be used to cancel the entire process + + + + Activates SSL on this stream using the specified protocols. Fires the ValidateCertificate event. + If this event is not handled and there are SslPolicyErrors present, the certificate will + not be accepted. + + The host to authenticate the certificate against + A collection of client certificates to use when authenticating the SSL stream + A bitwise parameter for supported encryption protocols. + Thrown when authentication fails + + + + Activates SSL on this stream using the specified protocols. Fires the ValidateCertificate event. + If this event is not handled and there are SslPolicyErrors present, the certificate will + not be accepted. + + The host to authenticate the certificate against + A collection of client certificates to use when authenticating the SSL stream + A bitwise parameter for supported encryption protocols. + The token that can be used to cancel the entire process + Thrown when authentication fails + + + + Conditionally create a SSL BufferStream based on the configuration in FtpClient.SslBuffering. + + + + + If SSL Buffering is enabled it returns the BufferStream, else returns the internal NetworkStream. + + + + + + Deactivates SSL on this stream using the specified protocols and reverts back to plain-text FTP. + + + + + Instructs this stream to listen for connections on the specified address and port + + The address to listen on + The port to listen on + + + + Accepts a connection from a listening socket + + + + + Asynchronously accepts a connection from a listening socket + + + + + + + + Completes a BeginAccept() operation + + IAsyncResult returned from BeginAccept + + + + Accepts a connection from a listening socket + + + + + FtpSslStream is an SslStream that properly sends a close_notify message when closing + the connection. This is required per RFC 5246 to avoid truncation attacks. + For more information, see https://tools.ietf.org/html/rfc5246#section-7.2.1 + + Inspired by: https://stackoverflow.com/questions/237807/net-sslstream-doesnt-close-tls-connection-properly/22626756#22626756 + + See: https://learn.microsoft.com/en-us/windows/win32/secauthn/shutting-down-an-schannel-connection + See: https://learn.microsoft.com/en-us/windows/win32/secauthn/using-sspi-with-a-windows-sockets-client?source=recommendations + + Note: + Microsoft says we should not override close(): + "Place all cleanup logic for your stream object in Dispose(Boolean). Do not override Close()." + See: https://learn.microsoft.com/en-us/dotnet/api/system.io.stream.dispose?view=net-7.0 + But: We recently changed the below logic due to issue #1107, which solved the problem in part + + + + + + Create an SslStream object + + + + + Close + + + + + For representing this SslStream in the log + + +
          +
          diff --git a/Source/packages/FluentFTP.44.0.1/lib/net5.0/FluentFTP.dll b/Source/packages/FluentFTP.44.0.1/lib/net5.0/FluentFTP.dll new file mode 100644 index 0000000..32201d4 Binary files /dev/null and b/Source/packages/FluentFTP.44.0.1/lib/net5.0/FluentFTP.dll differ diff --git a/Source/packages/FluentFTP.44.0.1/lib/net5.0/FluentFTP.xml b/Source/packages/FluentFTP.44.0.1/lib/net5.0/FluentFTP.xml new file mode 100644 index 0000000..5b407aa --- /dev/null +++ b/Source/packages/FluentFTP.44.0.1/lib/net5.0/FluentFTP.xml @@ -0,0 +1,8409 @@ + + + + FluentFTP + + + + + An FTP client that manages a connection to a single FTP server. + Interacts with any FTP/FTPS server and provides a high-level and low-level API to work with files and folders. + Uses asynchronous operations only. For the sync version use `FtpClient`. + + Debugging problems with FTP is much easier when you enable logging. Visit our Github Wiki for more info. + + + + + Performs a login on the server. This method is overridable so + that the login procedure can be changed to support, for example, + a FTP proxy. + + + + + Performs a login on the server. This method is overridable so + that the login procedure can be changed to support, for example, + a FTP proxy. + + On authentication failures + + To handle authentication failures without retries, catch FtpAuthenticationException. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and connects to the first successful profile. + Returns the FtpProfile if the connection succeeded, or null if it failed. + It will throw exceptions for permanent failures like invalid host or invalid credentials. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and returns the list of successful connection profiles. + You can configure it to stop after finding the first successful profile, or to collect all successful profiles. + You can then generate code for the profile using the FtpProfile.ToCode method. + If no successful profiles are found, a blank list is returned. + + Find all successful profiles (false) or stop after finding the first successful profile (true) + Use a new cloned AsyncFtpClient for testing connection profiles (true) or use the source AsyncFtpClient (false) + The token that can be used to cancel the entire process + + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The owner permissions + The group permissions + The other permissions + The token that can be used to cancel the entire process + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The permissions in CHMOD format + The token that can be used to cancel the entire process + + + + Compare the specified local file with the remote file on the FTP server using various kinds of quick equality checks. + In Auto mode, the file size and checksum are compared. + Comparing the checksum of a file is a quick way to check if the contents of the files are exactly equal without downloading a copy of the file. + You can use the option flags to compare any combination of: file size, checksum, date modified. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + Types of equality checks to perform. Use Auto to compare file size and checksum. + The token that can be used to cancel the entire process + + + + + Connect to the given server profile. + + + + + Connect to the given server profile. + + + + + Connect to the server + + true indicates that we want a + reconnect to take place. + The token that can be used to cancel the entire process + Thrown if this object has been disposed. + + + + Connect to the FTP server. Overridden in proxy classes. + + + + + + + Connect to the FTP server. Overridden in proxy classes. + + + + + Creates a remote directory asynchronously + + The full or relative path to the new remote directory + Try to create the whole path if the preceding directories do not exist + The token that can be used to cancel the entire process + True if directory was created, false if it was skipped + + + + Creates a remote directory asynchronously. If the preceding + directories do not exist, then they are created. + + The full or relative path to the new remote directory + The token that can be used to cancel the entire process + + + + Asynchronously removes a directory and all its contents. + + The full or relative path of the directory to delete + The token that can be used to cancel the entire process + + + + Asynchronously removes a directory and all its contents. + + The full or relative path of the directory to delete + Useful to delete hidden files or dot-files. + The token that can be used to cancel the entire process + + + + Asynchronously removes a directory. Used by and + . + + The full or relative path of the directory to delete + Delete the contents before deleting the folder + Useful to delete hidden files or dot-files. + Delete the top level dir too + Internally used to determine top level + The token that can be used to cancel the entire process + + + + + Deletes a file from the server asynchronously + + The full or relative path to the file + The token that can be used to cancel the entire process + + + + Tests if the specified directory exists on the server asynchronously. This + method works by trying to change the working directory to + the path specified. If it succeeds, the directory is changed + back to the old working directory and true is returned. False + is returned otherwise and since the CWD failed it is assumed + the working directory is still the same. + + The full or relative path of the directory to check for + The token that can be used to cancel the entire process + True if the directory exists. False otherwise. + + + + Disables UTF8 support and changes the Encoding property + back to ASCII. If the server returns an error when trying + to turn UTF8 off a FtpCommandException will be thrown. + + + + + Disconnects from the server asynchronously + + + + + Downloads the specified file and return the raw byte array. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The full or relative path to the file on the server + The size of the existing file in bytes, or 0 if unknown. The download restarts from this byte index. + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track download progress. + A byte array containing the contents of the downloaded file if successful, otherwise null. + + + + Downloads the specified file and return the raw byte array asynchronously. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The full or relative path to the file on the server + The token that can be used to cancel the entire process + A byte array containing the contents of the downloaded file if successful, otherwise null. + + + + Downloads the specified directory onto the local file system. + In Mirror mode, we will download missing files, and delete any extra files from disk that are not present on the server. This is very useful when creating an exact local backup of an FTP directory. + In Update mode, we will only download missing files and preserve any extra files on disk. This is useful when you want to simply download missing files from an FTP directory. + Only downloads the files and folders matching all the rules provided, if any. + All exceptions during downloading are caught, and the exception is stored in the related FtpResult object. + + The full path of the local folder on disk to download into. It is created if it does not exist. + The full path of the remote FTP folder that you want to download. If it does not exist, an empty result list is returned. + Mirror or Update mode, as explained above + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide an implementation of IProgress to track upload progress. + The token that can be used to cancel the entire process + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Download all the listed files and folders from the main directory + + + + + Downloads the specified file onto the local file system asynchronously. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + Overwrite if you want the local file to be overwritten if it already exists. Append will also create a new file if it doesn't exists + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Provide an implementation of IProgress to track download progress. + The token that can be used to cancel the entire process + FtpStatus flag indicating if the file was downloaded, skipped or failed to transfer. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts. + + + + + Download a remote file to a local file + + + + + Download a file from the server and write the data into the given stream asynchronously. + Reads data in chunks. Retries if server disconnects midway. + + + + + Setup a resume on failure of download + + + + + Downloads the specified files into a local single directory. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + Same speed as . + + The full or relative path to the directory that files will be downloaded into. + The full or relative paths to the files on the server + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are downloaded, and the files that don't pass are skipped. + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Remove successfully downloaded files. + + + + + Downloads the specified file into the specified stream asynchronously . + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory. + The full or relative path to the file on the server + The size of the existing file in bytes, or 0 if unknown. The download restarts from this byte index. + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track download progress. + If true then the file was downloaded, false otherwise. + + + + Deletes the contents of the specified directory, without deleting the directory itself. + + The full or relative path of the directorys contents to delete + The token that can be used to cancel the entire process + + + + Deletes the contents of the specified directory, without deleting the directory itself. + + The full or relative path of the directorys contents to delete + Useful to delete hidden files or dot-files. + The token that can be used to cancel the entire process + + + + Performs an asynchronous execution of the specified command + + The command to execute + The token that can be used to cancel the entire process + The servers reply to the command + + + + Things to do after executing a command + + + + + + Checks if a file exists on the server asynchronously. + + The full or relative path to the file + The token that can be used to cancel the entire process + True if the file exists, false otherwise + + + + Ensure a relative dir is absolute by prepending the working dir + + + + + Concat a path and a filename + + + + + Ensure a relative path is absolute by prepending the working dir + + + + + Retrieves a checksum of the given file using the specified checksum algorithm, or using the first available algorithm that the server supports. + + + The algorithm used goes in this order: + 1. HASH command using the first supported algorithm. + 2. MD5 / XMD5 / MMD5 commands + 3. XSHA1 command + 4. XSHA256 command + 5. XSHA512 command + 6. XCRC command + + Full or relative path of the file to checksum + The token that can be used to cancel the entire process + Specify an algorithm that you prefer, or NONE to use the first available algorithm. If the preferred algorithm is not supported, a blank hash is returned. + object containing the value and algorithm. Use the property to + determine if this command was successful. s can be thrown from + the underlying calls. + The command fails + + + + Gets the hash of the specified file using the given command. + + + + + Sets the hash algorithm on the server to be used with the HASH command asynchronously. + + + + + Gets the hash of an object on the server using the currently selected hash algorithm. + + + + + Retrieve the permissions of the given file/folder as an integer in the CHMOD format. + Throws FtpCommandException if there is an issue. + Returns 0 if the server did not specify a permission value. + Use `GetFilePermissions` if you required the permissions in the FtpPermission format. + + The full or relative path to the item + The token that can be used to cancel the entire process + + + + Retrieve the permissions of the given file/folder as an FtpListItem object with all "Permission" properties set. + Throws FtpCommandException if there is an issue. + Returns null if the server did not specify a permission value. + Use `GetChmod` if you required the integer value instead. + + The full or relative path to the item + The token that can be used to cancel the entire process + + + + Asynchronously gets the size of a remote file, in bytes. + + The full or relative path of the file + Value to return if there was an error obtaining the file size, or if the file does not exist + The token that can be used to cancel the entire process + The size of the file, or defaultValue if there was a problem. + + + + Gets the file size of an object, without locking + + + + + Gets a file listing from the server asynchronously. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + The path to list + Options that dictate how the list operation is performed + The token that can be used to cancel the entire process + The token that can be used to cancel the enumerator + An array of items retrieved in the listing + + + + Gets a file listing from the server asynchronously. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + The path to list + The token that can be used to cancel the entire process + The token that can be used to cancel the enumerator + An array of items retrieved in the listing + + + + Gets a file listing from the server asynchronously. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + An array of items retrieved in the listing + + + + Gets a file listing from the server asynchronously. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + The path to list + Options that dictate how the list operation is performed + The token that can be used to cancel the entire process + An array of items retrieved in the listing + + + + Process the output of the listing command + + + + + Get the records of a file listing and retry if temporary failure. + + + + + Gets a file listing from the server asynchronously. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + The path to list + The token that can be used to cancel the entire process + An array of items retrieved in the listing + + + + Gets a file listing from the server asynchronously. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + An array of items retrieved in the listing + + + + Recursive method of GetListingAsync, to recurse through directories on servers that do not natively support recursion. + Automatically called by GetListingAsync where required. + Uses flat recursion instead of head recursion. + + The path of the directory to list + Options that dictate how a list is performed and what information is gathered. + + + An array of FtpListItem objects + + + + Recursive method of GetListingAsync, to recurse through directories on servers that do not natively support recursion. + Automatically called by GetListingAsync where required. + Uses flat recursion instead of head recursion. + + The path of the directory to list + Options that dictate how a list is performed and what information is gathered. + + An array of FtpListItem objects + + + + Gets the modified time of a remote file asynchronously + + The full path to the file + The token that can be used to cancel the entire process + The modified time, or if there was a problem + + + + Returns a file/directory listing using the NLST command asynchronously + + The path of the directory to list + The token that can be used to cancel the entire process + An array of file and directory names if any were returned. + + + + Returns a file/directory listing using the NLST command asynchronously + + An array of file and directory names if any were returned. + + + + Return information about a remote file system object asynchronously. + + + You should check the property for the + flag before calling this method. Failing to do so will result in an InvalidOperationException + being thrown when the server does not support machine listings. Returns null if the server response can't + be parsed or the server returns a failure completion code. The error for a failure + is logged with FtpTrace. No exception is thrown on error because that would negate + the usefulness of this method for checking for the existence of an object. + Path of the item to retrieve information about + Get the accurate modified date using another MDTM command + The token that can be used to cancel the entire process + Thrown if the server does not support this Capability + A if the command succeeded, or null if there was a problem. + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + The token that can be used to cancel the entire process. + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + The token that can be used to cancel the entire process. + We are waiting for the response to which command? + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + The token that can be used to cancel the entire process. + We are waiting for the response to which command? + Set to true to select the NOOP devouring mode + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + The token that can be used to cancel the entire process. + We are waiting for the response to which command? + Set to true to select the NOOP devouring mode + -1 non-blocking, no timeout, >0 exhaustNoop mode, timeOut in seconds + FtpReply representing the response from the server + + + + Gets the current working directory asynchronously + + The current working directory, ./ if the response couldn't be parsed. + + + + Get the reply from the PWD command + + The current working directory reply. + + + + If an FTP Server has "different realms", in which realm is the + current working directory. + + The realm + + + + Called during . Typically extended by FTP proxies. + + + + + Is the current working directory the root? + + true if root. + + + + Moves a directory asynchronously on the remote file system from one directory to another. + Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter. + Only throws exceptions for critical errors. + + The full or relative path to the object + The new full or relative path including the new name of the object + Should we check if the dest directory exists? And if it does should we overwrite/skip the operation? + The token that can be used to cancel the entire process + Whether the directory was moved + + + + Moves a file asynchronously on the remote file system from one directory to another. + Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter. + Only throws exceptions for critical errors. + + The full or relative path to the object + The new full or relative path including the new name of the object + Should we check if the dest file exists? And if it does should we overwrite/skip the operation? + The token that can be used to cancel the entire process + Whether the file was moved + + + + Sends the NOOP command according to (effectively a no-op if 0). + Please call as needed to read the "OK" command sent by the server and prevent stale data on the socket. + Note that response is not guaranteed by all FTP servers when sent during file transfers. + + + true if NOOP command was sent + + + + Opens the specified type of active data stream + + Type of passive data stream to open + The command to execute that requires a data stream + Restart location in bytes for file transfer + The token that can be used to cancel the entire process + A data stream ready to be used + + + + Opens the specified file to be appended asynchronously + + Full or relative path of the file + ASCII/Binary + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + The token that can be used to cancel the entire process + A stream for writing to the file on the server + + + + Opens the specified file to be appended asynchronously + + Full or relative path of the file + ASCII/Binary + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + The token that can be used to cancel the entire process + A stream for writing to the file on the server +
          + + + Opens a data stream. + + The command to execute that requires a data stream + Restart location in bytes for file transfer + The token that can be used to cancel the entire process + The data stream. + + + + Opens a FXP PASV connection between the source FTP Server and the destination FTP Server + + Valid FTP connection to the destination FTP Server + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track download progress. + A data stream ready to be used + + + + Opens the specified type of passive data stream + + Type of passive data stream to open + The command to execute that requires a data stream + Restart location in bytes for file transfer + The token that can be used to cancel the entire process + A data stream ready to be used + + + + Opens the specified file for reading asynchronously + + The full or relative path of the file + ASCII/Binary + Resume location + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + The token that can be used to cancel the entire process + A stream for reading the file on the server + + + + Opens the specified file for reading asynchronously + + The full or relative path of the file + ASCII/Binary + Resume location + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + The token that can be used to cancel the entire process + A stream for reading the file on the server +
          + + + Opens the specified file for writing. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + Full or relative path of the file + ASCII/Binary + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + The token that can be used to cancel the entire process + A stream for writing to the file on the server + + + + Opens the specified file for writing. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + Full or relative path of the file + ASCII/Binary + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + The token that can be used to cancel the entire process + A stream for writing to the file on the server +
          + + + Renames an object on the remote file system asynchronously. + Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory(). + Throws exceptions if the file does not exist, or if the destination file already exists. + + The full or relative path to the object + The new full or relative path including the new name of the object + The token that can be used to cancel the entire process + + + + Sets the data type of information sent over the data stream asynchronously + + ASCII/Binary + The token that can be used to cancel the entire process + + + + Sets the data type of information sent over the data stream asynchronously + + ASCII/Binary + The token that can be used to cancel the entire process + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The owner permissions + The group permissions + The other permissions + The token that can be used to cancel the entire process + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The permissions in CHMOD format + The token that can be used to cancel the entire process + + + + Gets the modified time of a remote file asynchronously + + The full path to the file + The new modified date/time value + The token that can be used to cancel the entire process + + + + Sets the working directory on the server asynchronously + + The directory to change to + The token that can be used to cancel the entire process + + + + Transfer the specified directory from the source FTP Server onto the remote FTP Server asynchronously using the FXP protocol. + You will need to create a valid connection to your remote FTP Server before calling this method. + In Update mode, we will only transfer missing files and preserve any extra files on the remote FTP Server. This is useful when you want to simply transfer missing files from an FTP directory. + Currently Mirror mode is not implemented. + Only transfers the files and folders matching all the rules provided, if any. + All exceptions during transfer are caught, and the exception is stored in the related FtpResult object. + + The full or relative path to the folder on the source FTP Server. If it does not exist, an empty result list is returned. + Valid FTP connection to the destination FTP Server + The full or relative path to destination folder on the remote FTP Server + Only Update mode is currently implemented + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide a callback to track download progress. + The token that can be used to cancel the entire process + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Make a list of files to transfer + + + + + Transfer the files + + + + + Transfer the specified file from the source FTP Server to the destination FTP Server asynchronously using the FXP protocol. + High-level API that takes care of various edge cases internally. + + The full or relative path to the file on the source FTP Server + Valid FTP connection to the destination FTP Server + The full or relative path to destination file on the remote FTP Server + Indicates if the folder should be created on the remote FTP Server + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Provide a callback to track download progress. + + The token that can be used to cancel the entire process + Returns a FtpStatus indicating if the file was transferred. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts. + + + + + Transfers a file from the source FTP Server to the destination FTP Server via the FXP protocol asynchronously. + + + + + Uploads the specified byte array as a file onto the server asynchronously. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full data of the file, as a byte array + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + The token that can be used to cancel the entire process. + Provide an implementation of IProgress to track upload progress. + FtpStatus flag indicating if the file was uploaded, skipped or failed to transfer. + + + + Uploads the specified directory onto the server. + In Mirror mode, we will upload missing files, and delete any extra files from the server that are not present on disk. This is very useful when publishing an exact copy of a local folder onto an FTP server. + In Update mode, we will only upload missing files and preserve any extra files on the server. This is useful when you want to simply upload missing files to a server. + Only uploads the files and folders matching all the rules provided, if any. + All exceptions during uploading are caught, and the exception is stored in the related FtpResult object. + + The full path of the local folder on disk that you want to upload. If it does not exist, an empty result list is returned. + The full path of the remote FTP folder to upload into. It is created if it does not exist. + Mirror or Update mode, as explained above + If the file exists on disk, should we skip it, resume the upload or restart the upload? + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are uploaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide an implementation of IProgress to track upload progress. + The token that can be used to cancel the entire process + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Create all the sub directories within the main directory + + + + + Upload all the files within the main directory + + + + + Delete the extra remote files if in mirror mode and the directory was pre-existing + + + + + Uploads the specified file directly onto the server asynchronously. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + The token that can be used to cancel the entire process. + Provide an implementation of IProgress to track upload progress. + FtpStatus flag indicating if the file was uploaded, skipped or failed to transfer. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + + + + + Upload from a local file to a remote file + + + + + Upload the given stream to the server as a new file asynchronously. Overwrites the file if it exists. + Writes data in chunks. Retries if server disconnects midway. + + + + + Setup a resume on failure of upload + + + + + Uploads the given file paths to a single folder on the server asynchronously. + All files are placed directly into the given folder regardless of their path on the local filesystem. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + Faster than uploading single files with since it performs a single "file exists" check rather than one check per file. + + The full or relative paths to the files on the local file system. Files can be from multiple folders. + The full or relative path to the directory that files will be uploaded on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are uploaded, and the files that don't pass are skipped. + + Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Remove successfully uploaded files. + + + + + Uploads the given file paths to a single folder on the server asynchronously. + All files are placed directly into the given folder regardless of their path on the local filesystem. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + Faster than uploading single files with since it performs a single "file exists" check rather than one check per file. + + The full or relative paths to the files on the local file system. Files can be from multiple folders. + The full or relative path to the directory that files will be uploaded on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are uploaded, and the files that don't pass are skipped. + + Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Get a list of all the files that need to be uploaded + + + + + Uploads the specified stream as a file onto the server asynchronously. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full data of the file, as a stream + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + The token that can be used to cancel the entire process. + Provide an implementation of IProgress to track upload progress. + FtpStatus flag indicating if the file was uploaded, skipped or failed to transfer. + + + + Verify an FXP transfer + + + + + + + + + + + + Verify a file transfer + + + + + + + + + + Creates a new instance of an async FTP Client. You will have to setup the FTP host and credentials before connecting. + + + + + Creates a new instance of an async FTP Client, with the given host and credentials. + + + + + Creates a new instance of an async FTP Client, with the given host and credentials. + + + + + Creates a new instance of an async FTP Client, with the given host and credentials. + + + + + The base object for FtpClient, AsyncFtpClient + + + + + Calculate the position from which to append + + + + + + + + + Calculate transfer chunk size taking rate control into account + + + + + Check if the file is cleared to be uploaded, taking its existence/filesize and existsMode options into account. + + + + + Try using the SIZE command to check if file exists + + + + + + + Does the server support checksums? + + + + + + Is the checksum algorithm valid? + + + + + + + Cleanup the hash result + + + + + Get the first checksum algorithm mutually supported by both servers. + + + + + Disconnects a data stream + + The data stream to close + + + + If reverse is false, converts the date provided by the FTP server into the timezone required locally. + If reverse is true, converts the local timezone date into the date required by the FTP server. + + Affected by properties: TimeConversion, TimeZone, LocalTimeZone. + + + + + Delete the extra local files if in mirror mode + + + + + Check if the local file can be deleted, based on the DownloadDirectoryDeleteExcluded property + + + + + Executes a command + + The command to execute + The servers reply to the command + + + + Things to do after executing a command + + + + + + Populates the capabilities flags based on capabilities + supported by this server. This method is overridable + so that new features can be supported + + The reply object from the FEAT command. The InfoMessages property will + contain a list of the features the server supported delimited by a new line '\n' character. + + + + Forcibly set the capabilities of your FTP server. + By default capabilities are loaded automatically after calling Connect and you don't need to use this method. + This is only for advanced use-cases. + + + + + Performs a bitwise and to check if the specified + flag is set on the property. + + The to check for + True if the feature was found, false otherwise + + + + Returns true if the file passes all the rules + + + + + Get a list of all the files and folders that need to be downloaded + + + + + Get a list of all the files and folders that need to be downloaded + + + + + Create an FtpResult object for the given file to be downloaded, and check if the file passes the rules. + + + + + Get a list of all the files that need to be uploaded within the main directory + + + + + Create an FtpResult object for the given file to be uploaded, and check if the file passes the rules. + + + + + Parse the host and port number from an EPSV response + Handles (|||nnnn|) and (!!!nnnn!) + + + + + Parse the host and port number from an PASV or PASVEX response + + + + + Returns the IP address to be sent to the server for the active connection. + + + + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + We are waiting for the response to which command? + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + We are waiting for the response to which command? + Set to true to select the NOOP devouring mode + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + We are waiting for the response to which command? + Set to true to select the NOOP devouring mode + -1 non-blocking, no timeout, >0 exhaustNoop mode, timeOut in seconds + FtpReply representing the response from the server + + + + Process the returned data after command was executed + + + + + + + + Decodes the given FTP response string into a FtpReply, separating the FTP return code and message. + Returns true if the string was decoded correctly or false if it is not a standard format FTP response. + + + + + Make a list of subdirectories to transfer + + + + + + + + + + + Get a list of all the sub directories that need to be created within the main directory + + + + + Check if the remote file can be deleted, based on the UploadDirectoryDeleteExcluded property + + + + + Gets the current working directory + + The current working directory, ./ if the response couldn't be parsed. + + + + Get the reply to the PWD command + + + + + Parse the string returned from a PWD command + + + + + + + Checks if this FTP/FTPS connection is made through a proxy. + + + + + Checks whether will be called recursively or not. + + + + + + + Get a listing + + + + + + + + + + + + + + + + + + + + + Determine which command to use for getting a listing + + + + + Can the server do recursion for us? + + + + + Load the given connection profile and configure the FTP client instance accordingly. + + Connection profile. Not modified. + + + + Log the version of the running assembly + + + + + Log a function call with relevant arguments + + The name of the API function + The args passed to the function + + + + Log a message + + The type of tracing event + The message to write + + + + Log a message, adding an automatic prefix to the message based on the `eventType` + + The type of tracing event + The message to write + An optional exeption + Write an optional exeption on a new line + + + + Log a message to the debug output and console. + + + + + To allow for external connected classes to use the attached logger. + + + + + To allow for external connected classes to use the attached logger. + + + + + Should the function calls be logged in Verbose mode? + + + + + Add a custom listener here to get events every time a message is logged. + This is the older system, prefer using the ILogger based `Logger` property. + This system will never be removed, you can safely use it in your applications. + + + + + All the configuration settings for this FTP client. + + + + + Gets the type of the FTP server handler. + This is automatically set based on the detected FTP server, if it is detected. + You can manually set this property to implement handling for a custom FTP server. + + + + + Gets or sets the text encoding being used when talking with the server. The default + value is however upon connection, the client checks + for UTF8 support and if it's there this property is switched over to + . Manually setting this value overrides automatic detection + based on the FEAT list; if you change this value it's always used + regardless of what the server advertises, if anything. + + + + + When last command was sent (NOOP or other), for having /. + Respects the . + + + + + Current FTP client status flags used for improving performance and caching data. + + + + + Returns the current FTP client status flags. For advanced use only. + + + + + Used for internally synchronizing access to this + object from multiple threads + + + + + For usage by FTP proxies only + + + + + Control connection socket stream + + + + + Gets the base stream for talking to the server via + the control connection. + + + + + Gets a value indicating if this object has already been disposed. + + + + + Gets the current internet protocol (IPV4 or IPV6) used by the socket connection. + Returns FtpIpVersion.Unknown before connection. + + + + + Returns true if the connection to the FTP server is open. + WARNING: Returns true even if our credentials are incorrect but connection to the server is open. + See the IsAuthenticated property if you want to check if we are correctly logged in. + + + + + Returns true if the connection to the FTP server is open and if the FTP server accepted our credentials. + + + + + Gets a value indicating if this control connection is a clone. This property + is used with data streams to determine if the connection should be closed + when the stream is closed. Servers typically only allow 1 data connection + per control connection. If you try to open multiple data connections this + object will be cloned for 2 or more resulting in N new connections to the + server. + + + + + The server to connect to + + + + + The port to connect to. If this value is set to 0 (Default) the port used + will be determined by the type of SSL used or if no SSL is to be used it + will automatically connect to port 21. + + + + + Credentials used for authentication + + + + + Gets the server capabilities represented by an array of capability flags + + + + + Get the hash types supported by the server for use with the HASH Command. + This is a recent extension to the protocol that is not fully + standardized and is not guaranteed to work. See here for + more details: + http://tools.ietf.org/html/draft-bryan-ftpext-hash-02 + + + + + The negotiated SSL/TLS protocol version. + Will return a valid value after connection is complete. + Before connection it will return `SslProtocols.None`. + + + + + Checks if FTPS/SSL encryption is currently active. + Useful to see if your server supports FTPS, when using FtpEncryptionMode.Auto. + + + + + Easiest way to check if a handler has been attached. + + + + + Event is fired to validate SSL certificates. If this event is + not handled and there are errors validating the certificate + the connection will be aborted. + Not fired if ValidateAnyCertificate is set to true. + + + + + Gets the type of system/server that we're connected to. Typically begins with "WINDOWS" or "UNIX". + + + + + Gets the type of the FTP server software that we're connected to. + + + + + Gets the operating system of the FTP server that we're connected to. + + + + Gets the connection type + + + Gets the last reply received from the server + + + Gets the last replies received from the server + + + + Callback format to implement your custom FTP listing line parser. + + The line from the listing + The server capabilities + The FTP client + Return an FtpListItem object if the line can be parsed, else return null + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Returns the local end point of the FTP socket, if it is available. + + + + + Returns the remote end point of the FTP socket, if it is available. + + + + + Data shouldn't be on the socket, if it is it probably means we've been disconnected. + Read and discard whatever is there. + Returns the stale data as text, if any, or null if none was found. + + copy stale data information to logs? + for the log information + + + + Data shouldn't be on the socket, if it is it probably means we've been disconnected. + Read and discard whatever is there. + Returns the stale data as text, if any, or null if none was found. + + copy stale data information to logs? + called from where (text) + The token that can be used to cancel the entire process + + + + Sends progress to the user, either a value between 0-100 indicating percentage complete, or -1 for indeterminate. + + + + + Sends progress to the user, either a value between 0-100 indicating percentage complete, or -1 for indeterminate. + + + + + Open a local port on the given ActivePort or a random port. + + + + + + Validate the client before the auto detect process + + + + + + + Catches the socket stream ssl validation event and fires the event handlers + attached to this object for validating SSL certificates + + The stream that fired the event + The event args used to validate the certificate + + + + Fires the SSL validation event + + Event Args + + + + Verify that the client is usable + + + + + + + + + + + + Clones the FTP client control connection. Used for opening multiple data streams. + You will need to manually connect after cloning. + + A new FTP client connection with the same property settings as this one. + + + + Disposes and disconnects this FTP client if it was auto-created for an internal operation. + + + + + Check if the host parameter is valid + + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Disconnects from the server, releases resources held by this + object. + + + + + Finalizer + + + + + Class responsible for automatically detecting working FTP settings to connect to a target FTP server. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and returns the list of successful connection profiles. + You can configure it to stop after finding the first successful profile, or to collect all successful profiles. + You can then generate code for the profile using the FtpProfile.ToCode method. + If no successful profiles are found, a blank list is returned. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and returns the list of successful connection profiles. + You can configure it to stop after finding the first successful profile, or to collect all successful profiles. + You can then generate code for the profile using the FtpProfile.ToCode method. + If no successful profiles are found, a blank list is returned. + + + + + Check if the server refused to support one type of FTPS encryption, and if so blacklist that type of encryption. + + + + + Check if its an auth failure or something permanent, + so that we don't need to retry all the connection config combinations and can hard-abort the AutoConnect. + Return the exception if it is a hard failure, or null if no issue is found. + + + + + Load the given connection profile and configure the FTP client instance accordingly. + + + + + Create a default ValidateCertificate handler that accepts valid certificates. + + + + + Return a known working connection profile from the host/port combination. + + + + + Modify the `Status.InCriticalSequence` flag based on the FTP command sent, by checking against a list of known critical commands. + A critical sequence will not be interrupted by an automatic reconnect. + + + + + Class responsible for masking out sensitive data from FTP logs. + + + + + Populates the capabilities flags based on capabilities given in the list of strings. + + + + + Assume the FTP Server's capabilities if it does not support the FEAT command. + + + + + All servers with server-specific handling and support are listed here. + Its possible you can connect to other FTP servers too. + + To add support for another standard FTP server: + 1) Add a new enum in the `FtpServer` enum + 2) Add a new class extending `FtpBaseServer` under the `Servers.Handlers` NS + 3) Create a new instance of your class in `FtpHandlerIndex.AllServers` + + To support a custom FTP server you only need to extend `FtpBaseServer` + and set it on your client.ServerHandler before calling Connect. + + + + + Detect the FTP Server based on the welcome message sent by the server after getting the 220 connection command. + Its the primary method. + + + + + Get a default FTP Server handler based on the enum value. + + + + + Detect the FTP Server based on the response to the SYST connection command. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Detect the FTP Server based on the response to the SYST connection command. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Error messages returned by various servers when a file does not exist. + Instead of throwing an error, we use these to detect and handle the file detection properly. + MUST BE LOWER CASE! + + + + + Error messages returned by various servers when a file size is not supported in ASCII mode. + MUST BE LOWER CASE! + + + + + Error messages returned by various servers when a file transfer temporarily failed. + MUST BE LOWER CASE! + + + + + Error messages returned by various servers when a folder already exists. + Instead of throwing an error, we use these to detect and handle the folder creation properly. + MUST BE LOWER CASE! + + + + + Error messages returned by various servers when the connection failed due to wrong TLS version used. + MUST BE LOWER CASE! + + + + + An FTP client that manages a connection to a single FTP server. + Interacts with any FTP/FTPS server and provides a high-level and low-level API to work with files and folders. + Uses synchronous operations only. For the async version use `AsyncFtpClient`. + + Debugging problems with FTP is much easier when you enable logging. Visit our Github Wiki for more info. + + + + + Creates a new instance of a synchronous FTP Client. You will have to setup the FTP host and credentials before connecting. + + + + + Creates a new instance of a synchronous FTP Client, with the given host and credentials. + + + + + Creates a new instance of a synchronous FTP Client, with the given host and credentials. + + + + + Creates a new instance of a synchronous FTP Client, with the given host and credentials. + + + + + Performs a login on the server. This method is overridable so + that the login procedure can be changed to support, for example, + a FTP proxy. + + + + + Performs a login on the server. This method is overridable so + that the login procedure can be changed to support, for example, + a FTP proxy. + + On authentication failures + + To handle authentication failures without retries, catch FtpAuthenticationException. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and connects to the first successful profile. + Returns the FtpProfile if the connection succeeded, or null if it failed. + It will throw exceptions for permanent failures like invalid host or invalid credentials. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and returns the list of successful connection profiles. + You can configure it to stop after finding the first successful profile, or to collect all successful profiles. + You can then generate code for the profile using the FtpProfile.ToCode method. + If no successful profiles are found, a blank list is returned. + + Find all successful profiles (false) or stop after finding the first successful profile (true) + Use a new cloned FtpClient for testing connection profiles (true) or use the source FtpClient (false) + + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The owner permissions + The group permissions + The other permissions + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The permissions in CHMOD format + + + + Compare the specified local file with the remote file on the FTP server using various kinds of quick equality checks. + In Auto mode, the file size and checksum are compared. + Comparing the checksum of a file is a quick way to check if the contents of the files are exactly equal without downloading a copy of the file. + You can use the option flags to compare any combination of: file size, checksum, date modified. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + Types of equality checks to perform. Use Auto to compare file size and checksum. + + + + + Connect + + + + + Connect to the given server profile. + + + + + Connect to the server + + true indicates that we want a + reconnect to take place. + Thrown if this object has been disposed. + + + + Connect to the FTP server. Overridden in proxy classes. + + + + + + Connect to the FTP server. Overridden in proxy classes. + + + + + Creates a directory on the server. If the preceding + directories do not exist, then they are created. + + The full or relative path to the new remote directory + + + + Creates a directory on the server + + The full or relative path to the new remote directory + Try to force all non-existent pieces of the path to be created + True if directory was created, false if it was skipped + + + + Deletes the specified directory and all its contents. + + The full or relative path of the directory to delete + + + + Deletes the specified directory and all its contents. + + The full or relative path of the directory to delete + Useful to delete hidden files or dot-files. + + + + Deletes the specified directory and all its contents. + + The full or relative path of the directory to delete + If the directory is not empty, remove its contents + Useful to delete hidden files or dot-files. + Delete completely or leave the top level dir + Internally used to determine top level + + + + Deletes a file on the server + + The full or relative path to the file + + + + Tests if the specified directory exists on the server. This + method works by trying to change the working directory to + the path specified. If it succeeds, the directory is changed + back to the old working directory and true is returned. False + is returned otherwise and since the CWD failed it is assumed + the working directory is still the same. + + The path of the directory + True if it exists, false otherwise. + + + + Disables UTF8 support and changes the Encoding property + back to ASCII. If the server returns an error when trying + to turn UTF8 off a FtpCommandException will be thrown. + + + + + Disconnects from the server + + + + + Downloads the specified file and return the raw byte array. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The variable that will receive the bytes. + The full or relative path to the file on the server + The size of the existing file in bytes, or 0 if unknown. The download restarts from this byte index. + Provide a callback to track download progress. + If true then the file was downloaded, false otherwise. + + + + Downloads the specified directory onto the local file system. + In Mirror mode, we will download missing files, and delete any extra files from disk that are not present on the server. This is very useful when creating an exact local backup of an FTP directory. + In Update mode, we will only download missing files and preserve any extra files on disk. This is useful when you want to simply download missing files from an FTP directory. + Only downloads the files and folders matching all the rules provided, if any. + All exceptions during downloading are caught, and the exception is stored in the related FtpResult object. + + The full path of the local folder on disk to download into. It is created if it does not exist. + The full path of the remote FTP folder that you want to download. If it does not exist, an empty result list is returned. + Mirror or Update mode, as explained above + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide a callback to track download progress. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Download all the listed files and folders from the main directory + + + + + Downloads the specified file onto the local file system. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Provide a callback to track download progress. + FtpStatus flag indicating if the file was downloaded, skipped or failed to transfer. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts. + + + + + Download from a remote file to a local file + + + + + + + + + + + + + + Download a file from the server and write the data into the given stream. + Reads data in chunks. Retries if server disconnects midway. + + + + + Setup a resume on failure of download + + + + + Downloads the specified files into a local single directory. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + Same speed as . + + The full or relative path to the directory that files will be downloaded into. + The full or relative paths to the files on the server + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are downloaded, and the files that don't pass are skipped. + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Remove successfully downloaded files. + + + + + Downloads the specified file into the specified stream. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory. + The full or relative path to the file on the server + The size of the existing file in bytes, or 0 if unknown. The download restarts from this byte index. + Provide a callback to track download progress. + If true then the file was downloaded, false otherwise. + + + + Deletes the contents of the specified directory, without deleting the directory itself. + + The full or relative path of the directorys contents to delete + + + + Deletes the contents of the specified directory, without deleting the directory itself. + + The full or relative path of the directorys contents to delete + Useful to delete hidden files or dot-files. + + + + Executes a command + + The command to execute + The servers reply to the command + + + + Checks if a file exists on the server. + + The full or relative path to the file + True if the file exists + + + + Ensure a relative dir is absolute by prepending the working dir + + + + + Concat a path and a filename + + + + + Ensure a relative path is absolute by prepending the working dir + + + + + Retrieves a checksum of the given file using the specified checksum algorithm, or using the first available algorithm that the server supports. + + + The algorithm used goes in this order: + 1. HASH command using the first supported algorithm. + 2. MD5 / XMD5 / MMD5 commands + 3. XSHA1 command + 4. XSHA256 command + 5. XSHA512 command + 6. XCRC command + + Full or relative path of the file to checksum + Specify an algorithm that you prefer, or NONE to use the first available algorithm. If the preferred algorithm is not supported, a blank hash is returned. + object containing the value and algorithm. Use the property to + determine if this command was successful. s can be thrown from + the underlying calls. + The command fails + + + + Gets the hash of the specified file using the given command. + + + + + Sets the hash algorithm on the server to use for the HASH command. + + + + + Gets the hash of an object on the server using the currently selected hash algorithm. + + + + + Retrieve the permissions of the given file/folder as an integer in the CHMOD format. + Throws FtpCommandException if there is an issue. + Returns 0 if the server did not specify a permission value. + Use `GetFilePermissions` if you required the permissions in the FtpPermission format. + + The full or relative path to the item + + + + Retrieve the permissions of the given file/folder as an FtpListItem object with all "Permission" properties set. + Throws FtpCommandException if there is an issue. + Returns null if the server did not specify a permission value. + Use `GetChmod` if you required the integer value instead. + + The full or relative path to the item + + + + Gets the size of a remote file, in bytes. + + The full or relative path of the file + Value to return if there was an error obtaining the file size, or if the file does not exist + The size of the file, or defaultValue if there was a problem. + + + + Gets the file size of an object, without locking + + + + + Gets a file listing from the server from the current working directory. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + An array of FtpListItem objects + + + + Gets a file listing from the server. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + The path of the directory to list + An array of FtpListItem objects + + + + Gets a file listing from the server. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + The path of the directory to list + Options that dictate how a list is performed and what information is gathered. + An array of FtpListItem objects + + + + Get the records of a file listing and retry if temporary failure. + + + + + Recursive method of GetListing, to recurse through directories on servers that do not natively support recursion. + Automatically called by GetListing where required. + Uses flat recursion instead of head recursion. + + The path of the directory to list + Options that dictate how a list is performed and what information is gathered. + An array of FtpListItem objects + + + + Gets the modified time of a remote file. + + The full path to the file + The modified time, or if there was a problem + + + + Returns a file/directory listing using the NLST command. + + A string array of file and directory names if any were returned. + + + + Returns a file/directory listing using the NLST command. + + The path of the directory to list + A string array of file and directory names if any were returned. + + + + Returns information about a file system object. Returns null if the server response can't + be parsed or the server returns a failure completion code. The error for a failure + is logged with FtpTrace. No exception is thrown on error because that would negate + the usefulness of this method for checking for the existence of an object. + + The path of the file or folder + Get the accurate modified date using another MDTM command + A FtpListItem object + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + FtpReply representing the response from the server + + + + Gets the current working directory + + The current working directory, ./ if the response couldn't be parsed. + + + + If an FTP Server has "different realms", in which realm is the + current working directory. + + The realm + + + + Called during Connect(). Typically extended by FTP proxies. + + + + + Is the current working directory the root? + + true if root. + + + + Moves a directory on the remote file system from one directory to another. + Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter. + Only throws exceptions for critical errors. + + The full or relative path to the object + The new full or relative path including the new name of the object + Should we check if the dest directory exists? And if it does should we overwrite/skip the operation? + Whether the directory was moved + + + + Moves a file on the remote file system from one directory to another. + Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter. + Only throws exceptions for critical errors. + + The full or relative path to the object + The new full or relative path including the new name of the object + Should we check if the dest file exists? And if it does should we overwrite/skip the operation? + Whether the file was moved + + + + Sends the NOOP command according to (effectively a no-op if 0). + Please call as needed to read the "OK" command sent by the server and prevent stale data on the socket. + Note that response is not guaranteed by all FTP servers when sent during file transfers. + + true if NOOP command was sent + + + + Opens the specified type of active data stream + + Type of passive data stream to open + The command to execute that requires a data stream + Restart location in bytes for file transfer + A data stream ready to be used + + + + Opens the specified file for appending. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + The full or relative path to the file to be opened + ASCII/Binary + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + A stream for writing to the file on the server + + + + Opens the specified file for appending. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + The full or relative path to the file to be opened + ASCII/Binary + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + A stream for writing to the file on the server +
          + + + Opens a data stream. + + The command to execute that requires a data stream + Restart location in bytes for file transfer + The data stream. + + + + Opens a FXP PASV connection between the source FTP Server and the destination FTP Server + + FtpClient instance of the destination FTP Server + Provide an implementation of IProgress to track download progress. + A data stream ready to be used + + + + Opens the specified type of passive data stream + + Type of passive data stream to open + The command to execute that requires a data stream + Restart location in bytes for file transfer + A data stream ready to be used + + + + Opens the specified file for reading + + The full or relative path of the file + ASCII/Binary + Resume location + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + A stream for reading the file on the server + + + + Opens the specified file for reading + + The full or relative path of the file + ASCII/Binary + Resume location + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + A stream for reading the file on the server +
          + + + Opens the specified file for writing. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + Full or relative path of the file + ASCII/Binary + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + A stream for writing to the file on the server + + + + Opens the specified file for writing. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + Full or relative path of the file + ASCII/Binary + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + A stream for writing to the file on the server +
          + + + Renames an object on the remote file system. + Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory(). + Throws exceptions if the file does not exist, or if the destination file already exists. + + The full or relative path to the object + The new full or relative path including the new name of the object + + + + Sets the data type of information sent over the data stream + + ASCII/Binary + + + Internal method that handles actually setting the data type. + Thrown when a FTP Command error condition occurs. + Thrown when a FTP error condition occurs. + ASCII/Binary. + This method doesn't do any locking to prevent recursive lock scenarios. Callers must do their own locking. + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The owner permissions + The group permissions + The other permissions + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The permissions in CHMOD format + + + + Changes the modified time of a remote file + + The full path to the file + The new modified date/time value + + + + Sets the work directory on the server + + The path of the directory to change to + + + + Transfer the specified directory from the source FTP Server onto the remote FTP Server using the FXP protocol. + You will need to create a valid connection to your remote FTP Server before calling this method. + In Update mode, we will only transfer missing files and preserve any extra files on the remote FTP Server. This is useful when you want to simply transfer missing files from an FTP directory. + Currently Mirror mode is not implemented. + Only transfers the files and folders matching all the rules provided, if any. + All exceptions during transfer are caught, and the exception is stored in the related FtpResult object. + + The full or relative path to the folder on the source FTP Server. If it does not exist, an empty result list is returned. + Valid FTP connection to the destination FTP Server + The full or relative path to destination folder on the remote FTP Server + Only Update mode is currently implemented + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide a callback to track download progress. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Make a list of files to transfer + + + + + Transfer each file + + + + + + + + + + + Transfer the specified file from the source FTP Server to the destination FTP Server using the FXP protocol. + High-level API that takes care of various edge cases internally. + + The full or relative path to the file on the source FTP Server + Valid FTP connection to the destination FTP Server + The full or relative path to destination file on the remote FTP Server + Indicates if the folder should be created on the remote FTP Server + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Provide a callback to track download progress. + + Returns a FtpStatus indicating if the file was transferred. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts. + + + + + Transfers a file from the source FTP Server to the destination FTP Server via the FXP protocol + + + + + Uploads the specified byte array as a file onto the server. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full data of the file, as a byte array + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + Provide a callback to track upload progress. + + + + Uploads the specified directory onto the server. + In Mirror mode, we will upload missing files, and delete any extra files from the server that are not present on disk. This is very useful when publishing an exact copy of a local folder onto an FTP server. + In Update mode, we will only upload missing files and preserve any extra files on the server. This is useful when you want to simply upload missing files to a server. + Only uploads the files and folders matching all the rules provided, if any. + All exceptions during uploading are caught, and the exception is stored in the related FtpResult object. + + The full path of the local folder on disk that you want to upload. If it does not exist, an empty result list is returned. + The full path of the remote FTP folder to upload into. It is created if it does not exist. + Mirror or Update mode, as explained above + If the file exists on disk, should we skip it, resume the upload or restart the upload? + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide a callback to track upload progress. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Create all the sub directories within the main directory + + + + + Upload all the files within the main directory + + + + + Delete the extra remote files if in mirror mode and the directory was pre-existing + + + + + Uploads the specified file directly onto the server. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Provide a callback to track download progress. + FtpStatus flag indicating if the file was uploaded, skipped or failed to transfer. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + + + + + Upload a local file to a remote file + + + + + + + + + + + + + + + + Upload the given stream to the server as a new file. Overwrites the file if it exists. + Writes data in chunks. Retries if server disconnects midway. + + + + + Setup a resume on an upload failure + + + + + Uploads the given file paths to a single folder on the server. + All files are placed directly into the given folder regardless of their path on the local filesystem. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + Faster than uploading single files with since it performs a single "file exists" check rather than one check per file. + + The full or relative paths to the files on the local file system. Files can be from multiple folders. + The full or relative path to the directory that files will be uploaded on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are uploaded, and the files that don't pass are skipped. + + Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Remove successfully uploaded files. + + + + + Uploads the given file paths to a single folder on the server. + All files are placed directly into the given folder regardless of their path on the local filesystem. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + Faster than uploading single files with since it performs a single "file exists" check rather than one check per file. + + The full or relative paths to the files on the local file system. Files can be from multiple folders. + The full or relative path to the directory that files will be uploaded on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are uploaded, and the files that don't pass are skipped. + + Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Get a list of all the files that need to be uploaded + + + + + Uploads the specified stream as a file onto the server. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full data of the file, as a stream + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + Provide a callback to track upload progress. + + + + Verify an FXP file transfer + + + + + + + + + + + Verify a file transfer + + + + + + + + + Interface for the AsyncFtpClient class. + For detailed documentation of the methods, please see the FtpClient class or check the Wiki on the FluentFTP Github project. + + + + + Base object for FtpClient, AsyncFtpClient and the internal client + + + + + Interface for the FtpClient class. + For detailed documentation of the methods, please see the FtpClient class or check the Wiki on the FluentFTP Github project. + + + + + Server features + + + + + This server said it doesn't support anything! + + + + + Supports the MLST command (machine listings) + + + + + Supports the SIZE command (get file size) + + + + + Supports the MDTM command (get file date modified) + + + + + Supports download/upload stream resumes + + + + + Supports UTF8 + + + + + PRET Command used by DrFTPD + + + + + Server supports the MFMT command for setting the + modified date of an object on the server + + + + + Server supports the MFCT command for setting the + created date of an object on the server + + + + + Server supports the MFF command for setting certain facts + about file system objects. It typically allows you to modify + the last modification time, creation time, UNIX group/owner/mode of a file. + + + + + Server supports the STAT command + + + + + Support for the HASH command + + + + + Support for the MD5 command + + + + + Support for the XMD5 command + + + + + Support for the XCRC command + + + + + Support for the XSHA1 command + + + + + Support for the XSHA256 command + + + + + Support for the XSHA512 command + + + + + Support for the EPSV file-transfer command + + + + + Support for the CPSV command + + + + + Support for the NOOP command + + + + + Support for the CLNT command + + + + + Support for the SSCN command + + + + + Support for the SITE MKDIR (make directory) server-specific command for ProFTPd + + + + + Support for the SITE RMDIR (remove directory) server-specific command for ProFTPd + + + + + Support for the SITE UTIME server-specific command for ProFTPd + + + + + Support for the SITE SYMLINK server-specific command for ProFTPd + + + + + Support for the AVBL (get available space) server-specific command for Serv-U + + + + + Support for the THMB (get image thumbnail) server-specific command for Serv-U + + + + + Support for the RMDA (remove directory) server-specific command for Serv-U + + + + + Support for the DSIZ (get directory size) server-specific command for Serv-U + + + + + Support for the HOST (get host) server-specific command for Serv-U + + + + + Support for the CCC (Clear Command Channel) command, which makes a secure FTP channel revert back to plain text. + + + + + Support for the MODE Z (compression enabled) command, which says that the server supports ZLIB compression for all transfers + + + + + Support for the LANG (language negotiation) command. + + + + + Support for the MMD5 (multiple MD5 hash) command. + + + + + Flags that control how file comparison is performed. If you are unsure what to use, set it to Auto. + + + + + Compares the file size and the checksum of the file (using the first supported hash algorithm). + The local and remote file sizes and checksums should exactly match for the file to be considered equal. + + + + + Compares the file size. + Both file sizes should exactly match for the file to be considered equal. + + + + + Compares the date modified of the file. + Both dates should exactly match for the file to be considered equal. + + + + + Compares the checksum or hash of the file using the first supported hash algorithm. + Both checksums should exactly match for the file to be considered equal. + + + + + The result of a file comparison operation. + + + + + Success. Local and remote files are exactly equal. + + + + + Failure. Local and remote files do not match. + + + + + Failure. Either the local or remote file does not exist. + + + + + Failure. Checksum verification is enabled and your server does not support any hash algorithm. + + + + + Data connection type + + + + + This type of data connection attempts to use the EPSV command + and if the server does not support EPSV it falls back to the + PASV command before giving up unless you are connected via IPv6 + in which case the PASV command is not supported. + + + + + Passive data connection. EPSV is a better + option if it's supported. Passive connections + connect to the IP address dictated by the server + which may or may not be accessible by the client + for example a server behind a NAT device may + give an IP address on its local network that + is inaccessible to the client. Please note that IPv6 + does not support this type data connection. If you + ask for PASV and are connected via IPv6 EPSV will + automatically be used in its place. + + + + + Same as PASV except the host supplied by the server is ignored + and the data connection is made to the same address that the control + connection is connected to. This is useful in scenarios where the + server supplies a private/non-routable network address in the + PASV response. It's functionally identical to EPSV except some + servers may not implement the EPSV command. Please note that IPv6 + does not support this type data connection. If you + ask for PASV and are connected via IPv6 EPSV will + automatically be used in its place. + + + + + Extended passive data connection, recommended. Works + the same as a PASV connection except the server + does not dictate an IP address to connect to, instead + the passive connection goes to the same address used + in the control connection. This type of data connection + supports IPv4 and IPv6. + + + + + This type of data connection attempts to use the EPRT command + and if the server does not support EPRT it falls back to the + PORT command before giving up unless you are connected via IPv6 + in which case the PORT command is not supported. + + + + + Active data connection, not recommended unless + you have a specific reason for using this type. + Creates a listening socket on the client which + requires firewall exceptions on the client system + as well as client network when connecting to a + server outside of the client's network. In addition + the IP address of the interface used to connect to the + server is the address the server is told to connect to + which, if behind a NAT device, may be inaccessible to + the server. This type of data connection is not supported + by IPv6. If you specify PORT and are connected via IPv6 + EPRT will automatically be used instead. + + + + + Extended active data connection, not recommended + unless you have a specific reason for using this + type. Creates a listening socket on the client + which requires firewall exceptions on the client + as well as client network when connecting to a + server outside of the client's network. The server + connects to the IP address it sees the client coming + from. This type of data connection supports IPv4 and IPv6. + + + + + Type of data transfer to do + + + + + ASCII transfer + + + + + Binary transfer + + + + + Not known yet + + + + + Controls how timestamps returned by the server are converted. + + + + + Returns the server timestamps in Server Time. No timezone conversion is performed. + + + + + Returns the server timestamps in Local Time. + Ensure that the TimeZone property is correctly set to the server's timezone. + If you are on .NET Core/.NET Standard, you need to set the LocalTimeZone property for this to work. + + + + + Returns the server timestamps in UTC (Coordinated Universal Time). + Ensure that the TimeZone property is correctly set to the server's timezone. + + + + + Defines the type of encryption to use + + + + + Plain text. + + + + + FTPS encryption is used from the start of the connection, port 990. + + + + + Connection starts in plain text and FTPS encryption is enabled + with the AUTH command immediately after the server greeting. + + + + + FTPS encryption is used if supported by the server, otherwise it falls back to plaintext FTP communication. + + + + + Defines how multi-file processes should handle a processing error. + + & Cannot Be Combined + + + + No action is taken upon errors. The method absorbs the error and continues. + + + + + If any files have completed successfully (or failed after a partial download/upload) then should be deleted. + This will simulate an all-or-nothing transaction downloading or uploading multiple files. If this option is not + combined with or then the method will + continue to process all items whether if they are successful or not and then delete everything if a failure was + encountered at any point. + + + + + The method should stop processing any additional files and immediately return upon encountering an error. + Cannot be combined with + + + + + The method should stop processing any additional files and immediately throw the current error. + Cannot be combined with + + + + + Determines how we handle downloading and uploading folders + + + + + Dangerous but useful method! + Uploads/downloads all the missing files to update the server/local filesystem. + Deletes the extra files to ensure that the target is an exact mirror of the source. + + + + + Safe method! + Uploads/downloads all the missing files to update the server/local filesystem. + + + + + Different types of hashing algorithms for computing checksums. + + + + + Automatic algorithm, or hashing not supported. + + + + + SHA-1 algorithm + + + + + SHA-256 algorithm + + + + + SHA-512 algorithm + + + + + MD5 algorithm + + + + + CRC algorithm + + + + + IP Versions to allow when connecting + to a server. + + + + + Unknown protocol. + + + + + Internet Protocol Version 4 + + + + + Internet Protocol Version 6 + + + + + Allow any supported version + + + + + Flags that can control how a file listing is performed. If you are unsure what to use, set it to Auto. + + + + + Tries machine listings (MDTM command) if supported, + and if not then falls back to OS-specific listings (LIST command) + + + + + Load the modify date using MDTM when it could not + be parsed from the server listing. This only pertains + to servers that do not implement the MLSD command. + + + + + Load the file size using the SIZE command when it + could not be parsed from the server listing. This + only pertains to servers that do not support the + MLSD command. + + + + + Combines the Modify and Size flags + + + + + Show hidden/dot files. This only pertains to servers + that do not support the MLSD command. This option + makes use the non standard -a parameter to LIST to + tell the server to show hidden files. Since it's a + non-standard option it may not always work. MLSD listings + have no such option and whether or not a hidden file is + shown is at the discretion of the server. + + + + + Force the use of OS-specific listings (LIST command) even if + machine listings (MLSD command) are supported by the server + + + + + Use the NLST command instead of LIST for a reliable file listing + + + + + Force the use of the NLST command (the slowest mode) even if machine listings + and OS-specific listings are supported by the server + + + + + Sets the ForceList flag and uses `LS' instead of `LIST' as the + command for getting a directory listing. This option overrides + ForceNameList and ignores the AllFiles flag. + + + + + Gets files within subdirectories as well. Adds the -r option to the LIST command. + Some servers may not support this feature. + + + + + Do not retrieve path when no path is supplied to GetListing(), + instead just execute LIST with no path argument. + + + + + Include two extra items into the listing, for the current directory (".") + and the parent directory (".."). Meaningless unless you want these two + items for some reason. + + + + + Force the use of STAT command for getting file listings + + + + + Determines how we handle partially downloaded files + + + + + Restart the download of a file if it is partially downloaded. + Overwrites the file if it exists on disk. + + + + + Resume the download of a file if it is partially downloaded. + Appends to the file if it exists, by checking the length and adding the missing data. + If the file doesn't exist on disk, a new file is created. + + + + + Blindly skip downloading the file if it exists on disk, without any more checks. + This is only included to be compatible with legacy behaviour. + + + + + Append is now renamed to Resume. + + + + + Type of file system of object + + + + + The default subtype. + + + + + A sub directory within the listed directory. + (Only set when machine listing is available and type is 'dir') + + + + + The self directory. + (Only set when machine listing is available and type is 'cdir') + + + + + The parent directory. + (Only set when machine listing is available and type is 'pdir') + + + + + Type of file system of object + + + + + A file + + + + + A directory + + + + + A symbolic link + + + + + Defines the operating system of the FTP server. + + + + + Unknown operating system + + + + + Definitely Windows or Windows Server + + + + + Definitely Unix or AIX-based server + + + + + Definitely VMS or OpenVMS server + + + + + Definitely IBM OS/400 server + + + + + Definitely IBM z/OS server + + + + + Definitely SUN OS/Solaris server + + + + + For setting up rules + + + + + If the value is exactly equal to X + + + + + If the value is anything except for X + + + + + If the value is less than X + + + + + If the value is less than or equal to X + + + + + If the value is more than X + + + + + If the value is more than or equal to X + + + + + If the value is between the range of X and Y + + + + + If the value is outside the range of X and Y + + + + + The type of response the server responded with + + + + + Use the custom parser that you have set on the FtpClient object (ListingCustomParser property) + + + + + Automatically detect the file listing parser to use based on the FTP server (SYST command). + + + + + Machine listing parser, works on any FTP server supporting the MLST/MLSD commands. + + + + + File listing parser for Windows/IIS. + + + + + File listing parser for Unix. + + + + + Alternate parser for Unix. Use this if the default one does not work. + + + + + File listing parser for Vax/VMS/OpenVMS. + + + + + File listing parser for IBM z/OS + + + + + File listing parser for IBM OS/400. + + + + + File listing parser for Tandem/Nonstop Guardian OS. + + + + + Types of file permissions + + + + + No access + + + + + Executable + + + + + Writable + + + + + Readable + + + + + This enum is obsolete. Please use FtpRemoteExists instead. + + + + + Defines the behavior for uploading/downloading files that already exist + + + + + Do not check if the file exists. A bit faster than the other options. + Only use this if you are SURE that the file does not exist on the server. + Otherwise it can cause the UploadFile method to hang due to filesize mismatch. + + + + + Resume uploading by appending to the remote file, but don't check if it exists and add missing data. + This might be required if you don't have permissions on the server to list files in the folder. + Only use this if you are SURE that the file does not exist on the server otherwise it can cause the UploadFile method to hang due to filesize mismatch. + + + + + Append the local file to the end of the remote file, but don't check if it exists and add missing data. + This might be required if you don't have permissions on the server to list files in the folder. + Only use this if you are SURE that the file does not exist on the server otherwise it can cause the UploadFile method to hang due to filesize mismatch. + + + + + Skip the file if it exists, without any more checks. + + + + + Overwrite the file if it exists. + + + + + Resume uploading by appending to the remote file if it exists. + It works by checking the remote file length and adding the missing data. + + + + + Append the local file to the end of the remote file. + + + + + Append is now renamed to Resume. Alternatively you can use AddToEnd. + + + + + The type of response the server responded with + + + + + No response + + + + + Success + + + + + Success + + + + + Success + + + + + Temporary failure + + + + + Permanent failure + + + + + Determines how SSL Buffering is handled + + + + + Enables buffering in all cases except when using FTP proxies. + + + + + Always disables SSL Buffering to reduce FTPS connectivity issues. + + + + + Always enables SSL Buffering to massively speed up FTPS operations. + + + + + Defines the type of the FTP server software. + Add constants here as you add detection scripts for individual server types. + + + + + Unknown FTP server software + + + + + Definitely Apache FTP server + + + + + Definitely BFTPd server + + + + + Definitely Cerberus FTP server + + + + + Definitely CrushFTP server + + + + + Definitely D-Link FTP server + + + + + Definitely FileZilla server + + + + + Definitely FritzBox FTP server + + + + + Definitely FTP2S3 gateway server + + + + + Definitely glFTPd server + + + + + Definitely GlobalScape EFT server + + + + + Definitely Homegate FTP server + + + + + Definitely Huawei Technologies HG5xxx series FTP server + + + + + Definitely IBM z/OS FTP server + + + + + Definitely IBM OS/400 FTP server + + + + + Definitely ABB IDAL FTP server + + + + + Definitely MikroTik RouterOS FTP server + + + + + Definitely HP NonStop/Tandem server + + + + + Definitely OpenVMS server + + + + + Definitely ProFTPD server + + + + + Definitely PureFTPd server + + + + + Definitely PyFtpdLib server + + + + + Definitely Rumpus server + + + + + Definitely Serv-U server + + + + + Definitely Sun OS Solaris FTP server + + + + + Definitely Titan FTP server + + + + + Definitely TP-LINK FTP server + + + + + Definitely VsFTPd server + + + + + Definitely Windows CE FTP server + + + + + Definitely Windows Server/IIS FTP server + + + + + Definitely WS_FTP server + + + + + Definitely WuFTPd server + + + + + Definitely XLight FTP server + + + + + Types of special UNIX permissions + + + + + No special permissions are set + + + + + Sticky bit is set + + + + + SGID bit is set + + + + + SUID bit is set + + + + + The result of an upload or download operation + + + + + The upload or download failed with an error transferring, or the source file did not exist + + + + + The upload or download completed successfully + + + + + The upload or download was skipped because the file already existed on the target + + + + + Defines the level of the tracing message. Depending on the framework version this is translated + to an equivalent logging level in System.Diagnostices (if available) + + + + + Used for logging Debug or Verbose level messages + + + + + Used for logging Informational messages + + + + + Used for logging non-fatal or ignorable error messages + + + + + Used for logging Error messages that may need investigation + + + + + Defines if additional verification and actions upon failure that + should be performed when uploading/downloading files using the high-level APIs. Ignored if the + FTP server does not support any hashing algorithms. + + + + + No verification of the file is performed + + + + + The checksum of the file is verified, if supported by the server. + If the checksum comparison fails then we retry the download/upload + a specified amount of times before giving up. (See ) + + + + + The checksum of the file is verified, if supported by the server. + If the checksum comparison fails then the failed file will be deleted. + If combined with , then + the deletion will occur if it fails upon the final retry. + + + + + The checksum of the file is verified, if supported by the server. + If the checksum comparison fails then an exception will be thrown. + If combined with , then the throw will + occur upon the failure of the final retry, and/or if combined with + the method will throw after the deletion is processed. + + + + + The checksum of the file is verified, if supported by the server. + If the checksum comparison fails then the method returns false and no other action is taken. + + + + + Flags that can control how a file listing is performed. If you are unsure what to use, set it to Auto. + + + + + Not z/OS Server + + + + + HFS / USS + + + + + z/OS classic dataset + + + + + Partitioned dataset member, RECFM != U + + + + + Partitioned dataset member, RECFM = U + + + + + SITE FILETYPE=JES LIST + + + + + Event fired if a bad SSL certificate is encountered. This even is used internally; if you + don't have a specific reason for using it you are probably looking for FtpSslValidation. + + + + + + + Event is fired when a SSL certificate needs to be validated + + The control connection that triggered the event + Event args + + + + Event args for the FtpSslValidationError delegate + + + + + The certificate to be validated + + + + + The certificate chain + + + + + Validation errors, if any. + + + + + Gets or sets a value indicating if this certificate should be accepted. The default + value is false. If the certificate is not accepted, an AuthenticationException will + be thrown. + + + + + Exception triggered on FTP authentication failures + + + + + Initializes a new instance of a FtpAuthenticationException + + Status code + Associated message + + + + Initializes a new instance of a FtpAuthenticationException + + The FtpReply to build the exception from + + + + Exception triggered on FTP command failures + + + + + Gets the completion code associated with the response + + + + + The type of response received from the last command executed + + + + + Setup the error message string + + + + + Initializes a new instance of a FtpResponseException + + Status code + Associated message + + + + Initializes a new instance of a FtpResponseException + + The FtpReply to build the exception from + + + + FTP related error + + + + + Initializes a new instance of the class. + + The error message + + + + Initializes a new instance of the class with an inner exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Exception is thrown when the required hash algorithm is unsupported by the server. + + + + + Gets the unsupported hash algorithm + + + + + Default constructor + + + + + Algorithm-specific constructor + + + + + Exception is thrown when TLS/SSL encryption could not be negotiated by the FTP server. + + + + + AuthenticationException that caused this. + + + + + Default constructor + + + + + Custom error message + + Error message + + + + Exception thrown by FtpListParser when parsing of FTP directory listing fails. + + + + + Creates a new FtpListParseException. + + + + + Exception is thrown by FtpClient/AsyncFtpClient when the primary file or folder to be downloaded is missing. + + + + + Gets the type of file system object. + + + + + Gets the full path name to the file or folder. + + + + + Gets the name of the file or folder. Does not include the full path. + + + + + Creates a new FtpMissingObjectException. + + The original exception. + + + + Exception is thrown by FtpSocketStream when there is no FTP server socket to connect to. + + + + + Creates a new FtpMissingSocketException. + + The original exception. + + + + FtpProtocolUnsupportedException + + + + + FtpProtocolUnsupportedException + + Error message + + + + FtpProxyException + + + + + FtpProxyException + + + + + FtpProxyException + + + + + FtpProxyException + + + + + Exception is thrown when TLS/SSL encryption could not be negotiated by the FTP server. + + + + + Default constructor + + + + + Custom error message + + Error message + + + + Extension methods related to FTP tasks + + + + + Check if operation can resume after . + + Received exception. + Result of checking. + + + + Extension methods related to FTP tasks + + + + + Checks if the array is null or 0 length. + + + + + Checks if the array is null or 0 length. + + + + + Converts the arguments to an array of strings. + + + + + Ensures the given item is only added once. If it was not present true is returned, else false is returned. + + + + + Shallow clones the list by copying each item to a new list. + + + + + Extension methods related to FTP date time values + + + + + Converts the FTP date string into a DateTime object, without performing any timezone conversion. + + The date string + The client object this is done for + Date formats to try parsing the value from (eg "yyyyMMddHHmmss") + A object representing the date, or if there was a problem + + + + Generates an FTP date-string from the DateTime object, without performing any timezone conversion. + + The date value + A string representing the date + + + + Generates C# code to create this date. + + + + + Extension methods related to FTP tasks + + + + + Validates that the FtpError flags set are not in an invalid combination. + + The error handling options set + True if a valid combination, otherwise false + + + + Checks if the operation was successful or skipped (indicating success). + + + + + Checks if the operation has failed. + + + + + Extension methods related to FTP tasks + + + + + Checks if the given file exists in the given file listing. + Supports servers that return: 1) full paths, 2) only filenames, 3) full paths without slash prefixed, 4) full paths with invalid slashes + + The listing returned by GetNameListing + The full file path you want to check + + + + + Checks if the given file exists in the given file listing. + + The listing returned by GetListing + The full file path you want to check + + + + + Extension methods related to FTP tasks + + + + + Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB) + + + + + Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB) + + + + + Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB) + + + + + Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB) + + + + + Parses a line from a file listing using the first successful parser, or the specified parser. + Returns an FtpListItem object representing the parsed line, or null if the line was unable to be parsed. + + + + + the FTP connection that owns this parser + + + + + current parser, or parser set by user + + + + + parser calculated based on system type (SYST command) + + + + + if we have detected that the current parser is valid + + + + + Is the version number returned as part of the filename? + + Some VMS FTP servers do not permit a file to be deleted unless + the filename includes the version number. Note that directories are + never returned with the version number. + + + + + Initializes a new instance of the class. + + An existing object + + + + Try to auto-detect which parser is suitable given a system string. + + + + + Parse raw file from server into a file object, using the currently active parser. + + + + + Validate if the current parser is correct, or if another parser seems more appropriate. + + + + + Validate if the current parser is correct + + + + + Helper class to convert FtpHashAlgorithm + + + + + Get FtpHashAlgorithm from its string representation + + Name of the hash algorithm + The FtpHashAlgorithm + + + + Get string representation of FtpHashAlgorithm + + FtpHashAlgorithm to be converted into string + Name of the hash algorithm + + + + Get the first supported algorithm, in the standard order of preference. If no hashing algos found, returns NONE. + + + + + Parses the received FTP hash response into a new FtpHash object. + + + + + Extension methods related to FTP tasks + + + + + Returns true if the given path is a directory path. + + + + + Ensures the given directory exists. + + + + + Combine the given base path with the relative path + + + + + The local ports. + + + + + Get random local port for the given local IP address + + + + + Log a message to the given IFluentLogger class. + + + + + Get the log prefix for the given trace level type. + + + + + Checks if the given listing is a valid IBM OS/400 file listing + + + + + Parses IBM OS/400 format listings + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Parses the last modified date from IBM OS/400 format listings + + + + + Checks if the given listing is a valid IBM z/OS file listing + + + + + Parses IBM z/OS format listings + + The FTP client + A line from the listing + Current location + FtpListItem if the item is able to be parsed + + + + Parses the last modified date from IBM z/OS format listings + + + + + Checks if the given listing is a valid Machine Listing item + + + + + Parses MLSD/MLST format listings + + A line from the listing + Server capabilities + The FTP client + FtpListItem if the item is able to be parsed + + + + Parses the date modified field from MLSD/MLST format listings + + + + + Parses the file size field from MLSD/MLST format listings + + + + + Parses the permissions from MLSD/MLST format listings + + + + + Checks if the given listing is a valid NonStop file listing + + + + + Parses NonStop format listings + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Parses the directory type and file size from NonStop format listings + + + + + Parses the last modified date from NonStop format listings + + + + + Checks if the given listing is a valid Unix file listing + + + + + Parses Unix format listings + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Parses the permissions from Unix format listings + + + + + Parses the link count from Unix format listings + + + + + Parses the owner and group permissions from Unix format listings + + + + + Parses the file size from Unix format listings + + + + + Parses day-of-month from Unix format listings + + + + + Parses the file or folder name from Unix format listings + + + + + Parses the last modified date from Unix format listings + + + + + Parses the last modified year from Unix format listings + + + + + Parses the last modified date from Unix format listings + + + + + Parses Unix format listings with alternate parser + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Checks if the given listing is a valid VMS file listing + + + + + Parses Vax/VMS format listings + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Parses the file size from Vax/VMS format listings + + + + + Parses the owner and group permissions from Vax/VMS format listings + + + + + Parses the permissions from Vax/VMS format listings + + + + + Parses the last modified date from Vax/VMS format listings + + + + + Checks if the given listing is a valid IIS/DOS file listing + + + + + Parses IIS/DOS format listings + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Parses the file or folder name from IIS/DOS format listings + + + + + Parses the file size and checks if the item is a directory from IIS/DOS format listings + + + + + Parses the last modified date from IIS/DOS format listings + + + + + Extension methods related to FTP tasks + + + + + Calculates the CHMOD value from the permissions flags + + + + + Calculates the permissions flags from the CHMOD value + + + + + Calculate the CHMOD integer value given a set of permissions. + + + + + Checks if the permission value has the given flag + + + + + Extension methods related to FTP tasks + + + + + Checks if this FTP path is a top level path + + + + + Checks if the given path is a root directory or working directory path + + + + + + + Converts the specified path into a valid FTP file system path. + Replaces invalid back-slashes with valid forward-slashes. + Replaces multiple slashes with single slashes. + Removes the ending postfix slash if any. + + The file system path + A path formatted for FTP + + + + Creates a valid FTP path by appending the specified segments to this string + + This string + The path segments to append + A valid FTP path + + + + Gets the parent directory path (formatted for a FTP server) + + The path + The parent directory path + + + + Gets the file name and extension from the path. + Supports paths with backslashes and forwardslashes. + + The full path to the file + The file name + + + + Converts a Windows or Unix-style path into its segments for segment-wise processing + + + + + + Get the full path of a given FTP Listing entry + + + + + Extension methods related to FTP tasks + + + + + Checks if every character in the string is whitespace, or the string is null. + + + + + Checks if the string is null or 0 length. + + + + + Join the given strings by a delimiter. + + + + + Join the given strings by a delimiter. + + + + + Adds a prefix to the given strings, returns a new array. + + + + + Adds a prefix to the given strings, returns a new array. + + + + + Ensure a string has the given prefix + + + + + Ensure a string has the given postfix + + + + + Remove a prefix from a string, only if it has the given prefix + + + + + Remove a postfix from a string, only if it has the given postfix + + + + + Escape a string into a valid C# string literal. + Implementation from StackOverflow - https://stackoverflow.com/a/14087738 + + + + + Split into fields by splitting on tokens + + + + + Checks if all the characters in this string are digits or dots + + + + + Checks if the string contains any of the given values + + + + + Checks if RexEx Pattern is valid + + + + + Checks if the reply contains any of the known error strings, by checking in case-insensitive manner. + + + + + Checks if the string equals any of these values, by checking in case-sensitive manner. + + + + + Checks if the string contains the given substring in a case-insensitive manner. + + + + + Checks if the string starts with the given substring in a case-insensitive manner. + + + + + Checks if the string ends with the given substring in a case-insensitive manner. + + + + + Extension methods related to FTP time span values + + + + + Extension methods related to FTP tasks + + + + + Ensures that the URI points to a server, and not a directory or invalid path. + + + + + + The current "state" of the client + + + + + Used to improve performance of OpenPassiveDataStream. + Enhanced-passive mode is tried once, and if not supported, is not tried again. + + + + + Used to improve performance of GetFileSize. + SIZE command is tried, and if the server cannot send it in ASCII mode, we switch to binary each time you call GetFileSize. + However most servers will support ASCII, so we can get the file size without switching to binary, improving performance. + + + + + Used to improve performance of GetListing. + You can set this to true by setting the RecursiveList property. + + + + + Used to automatically dispose cloned connections after FXP transfer has ended. + + + + + Cached value of the last read working directory (absolute path). + + + + + Cached value of the last set hash algorithm. + + + + + Did the FTPS connection fail during the last Connect/ConnectAsync attempt? + + + + + Did the UTF8 encoding setting work during the last Connect/ConnectAsync attempt? + + + + + Store the current data type setting + + + + + Allow checking for stale data on socket? + + + + + We are in a sequence of commands that should not be interrupted + by an automatic reconnect + + + + + Count the reconnects + Reset this value when a non-reconnect takes place + + + + + These flags must be reset every time we connect, to allow for users to connect to + different FTP servers with the same client object. + + + + + These flags must be copied when we quickly clone the connection. + + + + + Avoid repeated DNS queries for the same host name + + + + + During and after a z/OS GetListing(), this value stores the + z/OS filesystem realm that was encountered. + The value is used internally to control the list parse mode + + + + + During and after a z/OS GetListing(), this value stores the + the LRECL that was encountered (for a realm = Member only). + The value is used internally to calculate member sizes + + + + + Holds all the configuration settings for a single FTP client. + One FtpConfig object can only be bound to one client at a time. + If you want to reuse it across multiple FTP clients, then clone it and then reuse it. + + + + + Which FtpClient are we bound to? + + + + + Should the function calls be logged in Verbose mode? + + + + + Should the FTP server host IP/domain be shown in the logs (true) or masked out (false)? + + + + + Should the FTP username be shown in the logs (true) or masked out (false)? + + + + + Should the FTP password be shown in the logs (true) or masked out (false)? + + + + + Should the command duration be shown after each log command? + + + + + Flags specifying which versions of the internet protocol (IPV4 or IPV6) to + support when making a connection. All addresses returned during + name resolution are tried until a successful connection is made. + You can fine tune which versions of the internet protocol to use + by adding or removing flags here. I.e., setting this property + to FtpIpVersion.IPv4 will cause the connection process to + ignore IPv6 addresses. The default value is ANY version. + + + + + Gets or sets the length of time in milliseconds + that must pass since the last socket activity + before calling + on the socket to test for connectivity. + Setting this interval too low will + have a negative impact on performance. Setting this + interval to 0 disables Polling all together. + The default value is 15 seconds. + + + + + Gets or sets a value indicating whether a test should be performed to + see if there is stale (unrequested data) sitting on the socket. In some + cases the control connection may time out but before the server closes + the connection it might send a 4xx response that was unexpected and + can cause synchronization errors with transactions. To avoid this + problem the method checks to see if there is any data + available on the socket before executing a command. On Azure hosting + platforms this check can cause an exception to be thrown. In order + to work around the exception you can set this property to false + which will skip the test entirely however doing so eliminates the + best effort attempt of detecting such scenarios. See this thread + for more details about the Azure problem: + https://netftp.codeplex.com/discussions/535879 + + + + + Gets or sets the length of time in milliseconds after last command + (NOOP or other) that a NOOP command is sent by /. + This is called during downloading/uploading. Setting this + interval to 0 disables / all together. + The default value is 0 (disabled). + + + + + When this value is set to true (default) the control connection + will set which features are available by executing the FEAT command + when the connect method is called. + + + + + Client certificates to be used in SSL authentication process + + + + + Delegate used for resolving local address, used for active data connections + This can be used in case you're behind a router, but port forwarding is configured to forward the + ports from your router to your internal IP. In that case, we need to send the router's IP instead of our internal IP. + + + + + Ports used for Active Data Connection. + Useful when your FTP server has certain ports that are blocked or used for other purposes. + + + + + Ports blocked for Passive Data Connection (PASV and EPSV). + Useful when your FTP server has certain ports that are blocked or used for other purposes. + + + + + Maximum number of passive connections made in order to find a working port for Passive Data Connection (PASV and EPSV). + Only used if PassiveBlockedPorts is non-null. + + + + + Data connection type, default is AutoPassive which tries + a connection with EPSV first and if it fails then tries + PASV before giving up. If you know exactly which kind of + connection you need you can slightly increase performance + by defining a specific type of passive or active data + connection here. + + + + + Disconnect from the server without sending QUIT. This helps + work around IOExceptions caused by buggy connection resets + when closing the control connection. + + + + + Gets or sets the length of time in milliseconds to wait for a connection + attempt to succeed before giving up. Default is 0 (Use OS default timeout) + See: https://github.com/robinrodricks/FluentFTP/wiki/FTP-Connection#connection-timeout-settings + and: https://github.com/robinrodricks/FluentFTP/wiki/FTP-Connection#faq_timeoutwindows + + + + + Gets or sets the length of time wait in milliseconds for data to be + read from the underlying stream. The default value is 15000 (15 seconds). + + + + + Gets or sets the length of time in milliseconds for a data connection + to be established before giving up. Default is 15000 (15 seconds). + + + + + Gets or sets the length of time in milliseconds the data channel + should wait for the server to send data. Default value is + 15000 (15 seconds). + + + + + Gets or sets a value indicating if should be set on + the underlying stream's socket. If the connection is alive, the option is + adjusted in real-time. The value is stored and the KeepAlive option is set + accordingly upon any new connections. The value set here is also applied to + all future data streams. It has no affect on cloned control connections or + data connections already in progress. The default value is false. + + + + + Type of SSL to use, or none. Default is none. Explicit is TLS, Implicit is SSL. + + + + + Indicates if data channel transfers should be encrypted. Only valid if + property is not equal to . + + + + + Encryption protocols to use. Only valid if EncryptionMode property is not equal to . + Default value is .NET Framework defaults from the class. + + + + + Whether to use SSL Buffering to speed up data transfer during FTP operations. + SSL Buffering is always disabled on .NET 5.0 and later due to platform issues (see issue 682 in FluentFTP issue tracker). + + + + + Gets or sets the max number of socket write/read transactions + before an automatic disconnect/reconnect is performed. + This is required to bypass an SSL issue that occurs after a specific number of transactions. + Set to zero to disable automatic reconnects. + + + + + Accept any SSL certificate received from the server and skip performing + the validation using the ValidateCertificate callback. + Useful for Powershell users. + + + + + Indicates if the certificate revocation list is checked during authentication. + Useful when you need to maintain the certificate chain validation, + but skip the certificate revocation check. + WARNING: Enabling this can cause memory leaks in some conditions (see issue #710 for details). + + + + + Controls if the file listings are downloaded in Binary or ASCII mode. + + + + + File listing parser to be used. + Automatically calculated based on the type of the server at the time of connection. + If you want to override this property, make sure to do it after calling Connect. + + + + + Culture used to parse file listings + + + + + Custom file listing parser to be used. + + + + + Callback format to implement your custom FTP listing line parser. + + The line from the listing + The server capabilities + The FTP client + Return an FtpListItem object if the line can be parsed, else return null + + + + The timezone of the FTP server. If the server is in Tokyo with UTC+9 then set this to 9. + If the server returns timestamps in UTC then keep this 0. + + + + + The timezone of your machine. If your machine is in Tokyo with UTC+9 then set this to 9. + If your machine is synchronized with UTC then keep this 0. + + + + + Server timestamps are converted into the given timezone. + ServerTime will return the original timestamp. + LocalTime will convert the timestamp into your local machine's timezone. + UTC will convert the timestamp into UTC format (GMT+0). + You need to set TimeZone and LocalTimeZone (.NET core only) for these to work. + + + + + If true, increases performance of GetListing by reading multiple lines + of the file listing at once. If false then GetListing will read file + listings line-by-line. If GetListing is having issues with your server, + set it to false. + + The number of bytes read is based upon . + + + + + Bytes to read during GetListing. Only honored if is true. + + + + + Gets or sets the number of bytes transferred in a single chunk (a single FTP command). + Used by / and / + to transfer large files in multiple chunks. + + + + + Gets or sets the size of the file buffer when reading and writing files on the local file system. + Used by / and / + and all the other file and directory transfer methods. + + + + + Gets or sets the retry attempts allowed when a verification failure occurs during download or upload. + This value must be set to 1 or more. + + + + + Rate limit for uploads in kbyte/s. Set this to 0 for unlimited speed. + Honored by high-level API such as Upload(), Download(), UploadFile(), DownloadFile().. + + + + + Rate limit for downloads in kbytes/s. Set this to 0 for unlimited speed. + Honored by high-level API such as Upload(), Download(), UploadFile(), DownloadFile().. + + + + + Controls if zero-byte files should be downloaded or skipped. + If false, then no file is created/overwritten into the filesystem. + + + + + Controls if the high-level API uploads files in Binary or ASCII mode. + + + + + Controls if the high-level API downloads files in Binary or ASCII mode. + + + + + Controls if the UploadDirectory API deletes the excluded files when uploading in Mirror mode. + If true, then any files that are excluded will be deleted from the FTP server if they are + excluded from the local system. This is done to keep the server in sync with the local system. + But if it is false, the excluded files are not touched on the server, and simply ignored. + + + + + Controls if the DownloadDirectory API deletes the excluded files when downloading in Mirror mode. + If true, then any files that are excluded will be deleted from the local filesystem if they are + excluded from the FTP server. This is done to keep the local filesystem in sync with the FTP server. + But if it is false, the excluded files are not touched on the local filesystem, and simply ignored. + + + + + Controls if the FXP server-to-server file transfer API uses Binary or ASCII mode. + + + + + Controls how often the progress reports are sent during an FXP file transfer. + The default value is 1000 (1 second). + + + + + Controls if the HOST command is sent immediately after the handshake. + Useful when you are using shared hosting and you need to inform the + FTP server which domain you want to connect to. + + + + + Controls which domain is sent with the HOST command. + If this is null, then the Host parameter of the FTP client is sent. + + + + + The local socket will be bound to the given local IP/interface. + This is useful if you have several usable public IP addresses and want to use a particular one. + + + + + Bind this FtpConfig object to the given FTP client. + + + + + + Return a deep clone of this FtpConfig object. + + + + + Copy settings from one config object to another. + + + + + Object that keeps track of an active FXP Connection between 2 FTP servers. + + + + + A connection to the FTP server where the file or folder is currently stored + + + + + A connection to the destination FTP server where you want to create the file or folder + + + + + A connection to the destination FTP server used to track progress while transfer is going on. + + + + + Gets a value indicating if this object has already been disposed. + + + + + Closes an FXP connection by disconnecting and disposing off the FTP clients that are + cloned for this FXP connection. Manually created FTP clients are untouched. + + + + + Object that keeps track of an active FXP Connection between 2 FTP servers. + + + + + A connection to the FTP server where the file or folder is currently stored + + + + + A connection to the destination FTP server where you want to create the file or folder + + + + + A connection to the destination FTP server used to track progress while transfer is going on. + + + + + Gets a value indicating if this object has already been disposed. + + + + + Closes an FXP connection by disconnecting and disposing off the FTP clients that are + cloned for this FXP connection. Manually created FTP clients are untouched. + + + + + Represents a computed hash of an object + on the FTP server. See the following link + for more information: + http://tools.ietf.org/html/draft-bryan-ftpext-hash-02 + + + + + Gets the algorithm that was used to compute the hash + + + + + Gets the computed hash returned by the server + + + + + Gets a value indicating if this object represents a + valid hash response from the server. + + + + + Computes the hash for the specified file and compares + it to the value in this object. CRC hashes are not supported + because there is no built-in support in the .net framework and + a CRC implementation exceeds the scope of this project. If you + attempt to call this on a CRC hash a will + be thrown. + + The file to compute the hash for + True if the computed hash matches what's stored in this object. + Thrown if called on a CRC Hash + + + + Computes the hash for the specified stream and compares + it to the value in this object. CRC hashes are not supported + because there is no built-in support in the .net framework and + a CRC implementation exceeds the scope of this project. If you + attempt to call this on a CRC hash a will + be thrown. + + The stream to compute the hash for + True if the computed hash matches what's stored in this object. + Thrown if called on a CRC Hash + + + + Creates an empty instance. + + + + + Represents a file system object on the server + + + + + Blank constructor, you will need to fill arguments manually. + + NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing(). + + + + + Constructor with mandatory arguments filled. + + NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing(). + + + + + Constructor with mandatory arguments filled. + + NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing(). + + + + + Gets the type of file system object. + + + + + Gets the sub type of file system object. + + + + + Gets the full path name to the file or folder. + + + + + Gets the name of the file or folder. Does not include the full path. + + + + + Gets the target a symbolic link points to. + + + + + Gets the number of links pointing to this file. Only supplied by Unix servers. + + + + + Gets the object that the LinkTarget points to. + + + + + Gets the last write time of the object after timezone conversion (if enabled). + + + + + Gets the created date of the object after timezone conversion (if enabled). + + + + + Gets the last write time of the object before any timezone conversion. + + + + + Gets the created date of the object before any timezone conversion. + + + + + Gets the size of the object. + + + + + Gets special UNIX permissions such as Sticky, SUID and SGID. + + + + + Gets the owner permissions. + + + + + Gets the group permissions. + + + + + Gets the others permissions. + + + + + Gets the raw string received for the file permissions. + Use this if the other properties are blank/invalid. + + + + + Gets the file permissions in the CHMOD format. + + + + + Gets the raw string received for the file's GROUP permissions. + Use this if the other properties are blank/invalid. + + + + + Gets the raw string received for the file's OWNER permissions. + Use this if the other properties are blank/invalid. + + + + + Gets the input string that was parsed to generate the + values in this object. + + + + + Returns a string representation of this object and its properties + + A string representing this object + + + + Returns a code representation of this object and its properties + + + + + Metadata of a single log message. + + + + + The current "profile" defining the client + + + + + The host IP address or URL of the FTP server + + + + + The FTP username and password used to login + + + + + A working Encryption Mode found for this profile + + + + + A working Ssl Protocol setting found for this profile + + + + + A working Data Connection Type found for this profile + + + + + A working Encoding setting found for this profile + + + + + A working Timeout setting found for this profile, or 0 if default value should be used + + + + + A working SocketPollInterval setting found for this profile, or 0 if default value should be used + + + + + A working RetryAttempts setting found for this profile, or 0 if default value should be used + + + + + If the server surely supports the given encoding. + + + + + Generates valid C# code for this connection profile. + + + + + + Class to report FTP file transfer progress during upload or download of files + + + + + A value between 0-100 indicating percentage complete, or -1 for indeterminate. + Used to track the progress of an individual file transfer. + + + + + A value indicating how many bytes have been transferred. + When unable to calculate percentage, having the partial byte count may help in providing some feedback. + + + + + A value representing the current Transfer Speed in Bytes per seconds. + Used to track the progress of an individual file transfer. + + + + + A value representing the calculated 'Estimated time of arrival'. + Used to track the progress of an individual file transfer. + + + + + Stores the absolute remote path of the current file being transferred. + + + + + Stores the absolute local path of the current file being transferred. + + + + + Stores the index of the file in the listing. + Only used when transferring multiple files or an entire directory. + + + + + Stores the total count of the files to be transferred. + Only used when transferring multiple files or an entire directory. + + + + + Create a new FtpProgress object for meta progress info. + + + + + Create a new FtpProgress object for individual file transfer progress. + + + + + Convert Transfer Speed (bytes per second) in human readable format + + + + + Create a new FtpProgress object for a file transfer and calculate the ETA, Percentage and Transfer Speed. + + + + + Connection profile for a proxy connection. + + + + + Proxy server host name. Mandatory. + + + + + Proxy server port. Mandatory. + + + + + Proxy server login credentials. Mandatory if your proxy needs authentication, leave it blank otherwise. + + + + + FTP server host name. Optional. You can either set it here or set `ftpClient.Host` later on. + + + + + FTP server port. Optional. You can either set it here or set `ftpClient.Port` later on. + + + + + FTP server login credentials. Optional. You can either set it here or set `ftpClient.Credentials` later on. + + + + + Represents a reply to an event on the server + + + + + The type of response received from the last command executed + + + + + The status code of the response + + + + + The message, if any, that the server sent with the response + + + + + Informational messages sent from the server + + + + + General success or failure of the last command executed, by checking the FTP status code. + 1xx, 2xx, 3xx indicate success and 4xx, 5xx are failures. + + + + + Gets the error message including any informational output + that was sent by the server. Sometimes the final response + line doesn't contain anything informative as to what was going + on with the server. Instead it may send information messages so + in an effort to give as meaningful as a response as possible + the informational messages will be included in the error. + + + + + Stores the command that produced this reply (if any) + + + + + Stores the result of a file transfer when UploadDirectory or DownloadDirectory is used. + + + + + Returns true if the file was downloaded, false if it was uploaded. + + + + + Gets the type of file system object. + + + + + Gets the size of the file, or 0 if unknown. + + + + + Gets the name and extension of the file. + + + + + Stores the absolute remote path of the current file being transferred. + + + + + Stores the absolute local path of the current file being transferred. + + + + + Gets the error that occurring during transferring this file, if any. + + + + + Returns true if the file was downloaded/uploaded, or the file was already existing with the same file size. + + + + + Was the file skipped? + + + + + Was the file skipped due to failing the rule condition? + + + + + Was there an error during transfer? You can read the Exception property for more details. + + + + + Convert this result to a FTP list item. + + + + + Human readable results + + + + + Reply from a SIZE command + + + + + The returned file size + + + + + The reply we got + + + + + A FTP client with a user@host proxy identification, that works with Blue Coat FTP Service servers. + + The 'blue coat variant' forces the client to wait for a 220 FTP response code in + the handshake phase. + + + + A FTP client with a user@host proxy identification. + Proxy information + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + Redefine the first dialog: auth with proxy information + + + A FTP client with a HTTP 1.1 proxy implementation. + + + A FTP client with a HTTP 1.1 proxy implementation + Proxy information + + + Redefine the first dialog: HTTP Frame for the HTTP 1.1 Proxy + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Connects to the server using an existing + + The existing socket stream + The token that can be used to cancel the entire process + + + + Connects to the server using an existing + + The existing socket stream + Host name + Port number + IP version to use + IP version to use + + + + Abstraction of an FtpClient with a proxy + + + + The proxy connection info. + + + A FTP client with a HTTP 1.1 proxy implementation + Proxy information + + + Redefine connect for FtpClient : authentication on the Proxy + The socket stream. + Cancellation token. + + + + A FTP client with a SOCKS4a proxy implementation. + + + + + Setup a SOCKS4a proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Called during . Typically extended by FTP proxies. + + + + + Connect + + + + + A FTP client with a SOCKS4 proxy implementation. + + + + + Setup a SOCKS4 proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Called during . Typically extended by FTP proxies. + + + + + Connect + + + + + A FTP client with a SOCKS5 proxy implementation. + + + + + Setup a SOCKS5 proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Connect + + + + A FTP client with a user@host proxy identification. + + + A FTP client with a user@host proxy identification. + Proxy information + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + Redefine the first dialog: auth with proxy information + + + + This class is not reusable. + You have to create a new instance for each connection / attempt. + + + + + This class is not reusable. + You have to create a new instance for each connection / attempt. + + + + + Translate the host name or IP address to a byte array. + + Host name or IP address. + Byte array representing IP address in bytes. + + + + Translate the destination port value to a byte array. + + Destination port. + Byte array representing an 16 bit port number as two bytes. + + + + This class is not reusable. + You have to create a new instance for each connection / attempt. + + + + + A FTP client with a user@host proxy identification, that works with Blue Coat FTP Service servers. + + The 'blue coat variant' forces the client to wait for a 220 FTP response code in + the handshake phase. + + + + A FTP client with a user@host proxy identification. + Proxy information + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + Redefine the first dialog: auth with proxy information + + + A FTP client with a HTTP 1.1 proxy implementation. + + + A FTP client with a HTTP 1.1 proxy implementation + Proxy information + + + Redefine the first dialog: HTTP Frame for the HTTP 1.1 Proxy + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Connects to the server using an existing + + The existing socket stream + + + + Connects to the server using an existing + + The existing socket stream + Host name + Port number + IP version to use + + + + Abstraction of an FtpClient with a proxy + + + + The proxy connection info. + + + A FTP client with a HTTP 1.1 proxy implementation + Proxy information + + + Redefine connect for FtpClient : authentication on the Proxy + The socket stream. + + + + A FTP client with a SOCKS4a proxy implementation. + + + + + Setup a SOCKS4a proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Called during Connect(). Typically extended by FTP proxies. + + + + + Connect + + + + + + Connect + + + + + + + + + A FTP client with a SOCKS4 proxy implementation. + + + + + Setup a SOCKS4 proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Called during Connect(). Typically extended by FTP proxies. + + + + + Connect + + + + + Connect + + + + + A FTP client with a SOCKS5 proxy implementation. + + + + + Setup a SOCKS5 proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Connect + + + + + Connect + + + + A FTP client with a user@host proxy identification. + + + A FTP client with a user@host proxy identification. + Proxy information + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + Redefine the first dialog: auth with proxy information + + + + Only accept files that have the given extension, or exclude files of a given extension. + + + + + If true, only files of the given extension are uploaded or downloaded. If false, files of the given extension are excluded. + + + + + The extensions to match + + + + + Only accept files that have the given extension, or exclude files of a given extension. + + If true, only files of the given extension are uploaded or downloaded. If false, files of the given extension are excluded. + The extensions to match + + + + Checks if the files has the given extension, or exclude files of the given extension. + + + + + Only accept files whose names match the given regular expression(s), or exclude files that match. + + + + + If true, only items where one of the supplied regex pattern matches are uploaded or downloaded. + If false, items where one of the supplied regex pattern matches are excluded. + + + + + The files names to match + + + + + Only accept items that match one of the supplied regex patterns. + + If true, only items where one of the supplied regex pattern matches are uploaded or downloaded. If false, items where one of the supplied regex pattern matches are excluded. + The list of regex patterns to match. Only valid patterns are accepted and stored. If none of the patterns are valid, this rule is disabled and passes all objects. + + + + Checks if the FtpListItem Name does match any RegexPattern + + + + + Only accept files that have the given name, or exclude files of a given name. + + + + + If true, only files of the given name are uploaded or downloaded. If false, files of the given name are excluded. + + + + + The files names to match + + + + + Only accept files that have the given name, or exclude files of a given name. + + If true, only files of the given name are downloaded. If false, files of the given name are excluded. + The files names to match + + + + Checks if the files has the given name, or exclude files of the given name. + + + + + Only accept folders whose names match the given regular expression(s), or exclude folders that match. + + + + + If true, only folders where one of the supplied regex pattern matches are uploaded or downloaded. + If false, folders where one of the supplied regex pattern matches are excluded. + + + + + The files names to match + + + + + Which path segment to start checking from + + + + + Only accept items that one of the supplied regex pattern. + + If true, only folders where one of the supplied regex pattern matches are uploaded or downloaded. If false, folders where one of the supplied regex pattern matches are excluded. + The list of regex patterns to match. Only valid patterns are accepted and stored. If none of the patterns are valid, this rule is disabled and passes all objects. + Which path segment to start checking from. 0 checks root folder onwards. 1 skips root folder. + + + + Checks if the FtpListItem Name does match any RegexPattern + + + + + Only accept folders that have the given name, or exclude folders of a given name. + + + + + Common folders to blacklist + + + + + If true, only folders of the given name are uploaded or downloaded. + If false, folders of the given name are excluded. + + + + + The folder names to match + + + + + Which path segment to start checking from + + + + + Only accept folders that have the given name, or exclude folders of a given name. + + If true, only folders of the given name are downloaded. If false, folders of the given name are excluded. + The folder names to match + Which path segment to start checking from. 0 checks root folder onwards. 1 skips root folder. + + + + Checks if the folders has the given name, or exclude folders of the given name. + + + + + Base class used for all FTP Rules. Extend this class to create custom rules. + You only need to provide an implementation for IsAllowed, and add any custom arguments that you require. + + + + + Rule object + + + + + Returns true if the object has passed this rules. + + + + + Returns true if the object has passed all the rules. + + + + + Only accept files that are of the given size, or within the given range of sizes. + + + + + Which operator to use + + + + + The first value, required for all operators + + + + + The second value, only required for BetweenRange and OutsideRange operators + + + + + Only accept files that are of the given size, or within the given range of sizes. + + Which operator to use + The first value, required for all operators + The second value, only required for BetweenRange and OutsideRange operators. + + + + Checks if the file is of the given size, or within the given range of sizes. + + + + + The base class used for all FTP server specific support. + You may extend this class to implement support for custom FTP servers. + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return true if your server is detected by the given SYST response message. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Return your FTP server's default capabilities. + Used if your server does not broadcast its capabilities using the FEAT command. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Perform server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Perform async server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Perform server-specific create directory commands here. + Return true if you executed a server-specific command. + + + + + Perform async server-specific create directory commands here. + Return true if you executed a server-specific command. + + + + + Perform server-specific post-connection commands here. + Return true if you executed a server-specific command. + + + + + Perform server-specific post-connection commands here. + Return true if you executed a server-specific command. + + + + + Return true if your server requires custom handling of file size. + + + + + Perform server-specific file size fetching commands here. + Return the file size in bytes. + + + + + Perform server-specific file size fetching commands here. + Return the file size in bytes. + + + + + Check if the given path is a root directory on your FTP server. + If you are unsure, return false. + + + + + Skip reporting a parser error + + + + + Always read to end of stream on a download + If you are unsure, return false. + + + + + Return true if the path is an absolute path according to your server's convention. + + + + + Return true if your server requires custom handling of absolute paths. + + + + + Perform server-specific path modification here. + Return the absolute path. + + + + + Perform server-specific path modification here. + Return the absolute path. + + + + + Return true if your server requires custom handling of absolute dir. + + + + + Perform server-specific path modification here. + Return the absolute dir. + + + + + Perform server-specific path modification here. + Return the absolute path. + + + + + Return true if your server requires custom handling of path and filename concatenation. + + + + + Perform server-specific path modification here. + Return concatenation of path and filename + + + + + Perform server-specific path modification here. + Return concatenation of path and filename + + + + + Return true if your server requires custom handling to handle listing analysis. + + + + + Get the full path of a given FTP Listing entry + Return null indicates custom code decided not to handle this + + + + + Disable SIZE command even if server says it is supported + + + + + Disable MDTM command even if server says it is supported + + + + + Return true if your server requires custom handling to check file existence. + + + + + Check for existence of a file + Return null indicates custom code decided not to handle this + + + + + Check for existence of a file + Return null indicates custom code decided not to handle this + + + + + Server-specific handling for Apache (MINA) FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given SYST response message. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Server-specific handling for BFTPd FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for Cerberus FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for CrushFTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for D-Link FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for FileZilla FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Server-specific handling for FritzBox FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for FTP2S3Gateway FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for glFTPd FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for GlobalScapeEFT FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for HomegateFTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for Huawei FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for IBMOS400FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Server-specific handling for IBMzOSFTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Perform server-specific post-connection commands here. + Return true if you executed a server-specific command. + + + + + Perform server-specific post-connection commands here. + Return true if you executed a server-specific command. + + + + + Get z/OS file size + + The client object this is being done for + The full path of the file whose size you want to retrieve + + Make sure you are in the right realm (z/OS or HFS) before doing this + + The size of the file + + + + Get z/OS file size + + The client object this is being done for + The full path of the file whose size you want to retrieve + The token that can be used to cancel the entire process + + Make sure you are in the right realm (z/OS or HFS) before doing this + + The size of the file + + + + Check if the given path is a root directory on your FTP server. + If you are unsure, return false. + + + + + Skip reporting a parser error + + + + + Always read to End of stream on a download + + + + + Return true if your server requires custom handling of absolute path. + + + + + Perform server-specific path modification here. + Return the absolute path. + + + + + Perform server-specific path modification here. + Return the absolute path. + + + + + Return true if your server requires custom handling of absolute dir. + + + + + Perform server-specific path modification here. + Return null indicates custom code decided not to handle this + Return the absolute dir. + + + + + Perform server-specific path modification here. + Return null indicates custom code decided not to handle this + Return the absolute dir. + + + + + Return true if your server requires custom handling of path and filename concatenation. + + + + + Perform server-specific path modification here. + Return null indicates custom code decided not to handle this + Return concatenation of path and filename + + + + + Perform server-specific path modification here. + Return null indicates custom code decided not to handle this + Return concatenation of path and filename + + + + + Return true if your server requires custom handling to handle listing analysis. + + + + + Get the full path of a given FTP Listing entry + Return null indicates custom code decided not to handle this + + + + + Disable SIZE command even if server says it is supported + + + + + Disable MDTM command even if server says it is supported + + + + + Return true if your server requires custom handling to check file existence. + + + + + Check for existence of a file + Return null indicates custom code decided not to handle this + + + + + Check for existence of a file + Return null indicates custom code decided not to handle this + + + + + Server-specific handling for ABB IDAL FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for MikroTik RouterOS FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for NonStop/Tandem FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Server-specific handling for OpenVMS FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return true if your server is detected by the given SYST response message. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Return your FTP server's default capabilities. + Used if your server does not broadcast its capabilities using the FEAT command. + + + + + Return true if the path is an absolute path according to your server's convention. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Get the full path of a given FTP Listing entry + Return null indicates custom code decided not to handle this + + + + + Server-specific handling for ProFTPD FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Perform server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Perform async server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Perform server-specific create directory commands here. + Return true if you executed a server-specific command. + + + + + Perform async server-specific create directory commands here. + Return true if you executed a server-specific command. + + + + + Server-specific handling for PureFTPd FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Server-specific handling for PyFtpdLib FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for Rumpus FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for ServU FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Perform server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Perform async server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Server-specific handling for SolarisFTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given SYST response message. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Server-specific handling for Titan FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for TP-LINK FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for VsFTPd FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Server-specific handling for WindowsCE FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given SYST response message. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Server-specific handling for WindowsServer/IIS FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Server-specific handling for WS_FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for WuFTPd FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Return your FTP server's default capabilities. + Used if your server does not broadcast its capabilities using the FEAT command. + + + + + Server-specific handling for XLight FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Base class for data stream connections + + + + + Gets the status of the command that was used to open + this data channel + + + + + Gets or sets the control connection for this data stream. Setting + the control connection causes the object to be cloned and a new + connection is made to the server to carry out the task. This ensures + that multiple streams can be opened simultaneously. + + + + + Gets or sets the length of the stream. Only valid for file transfers + and only valid on servers that support the Size command. + + + + + Gets or sets the position of the stream + + + + + Reads data off the stream + + The buffer to read into + Where to start in the buffer + Number of bytes to read + The number of bytes read + + + + Reads data off the stream asynchronously + + The buffer to read into + Where to start in the buffer + Number of bytes to read + The cancellation token for this task + The number of bytes read + + + + Writes data to the stream + + The buffer to write to the stream + Where to start in the buffer + The number of bytes to write to the buffer + + + + Writes data to the stream asynchronously + + The buffer to write to the stream + Where to start in the buffer + The number of bytes to write to the buffer + The for this task + + + + Sets the length of this stream + + Value to apply to the Length property + + + + Sets the position of the stream. Intended to be used + internally by FtpControlConnection. + + The position + + + + Closes the connection and reads the server's reply + + + + + Creates a new data stream object + + The control connection to be used for carrying out this operation + + + + Finalizer + + + + + Stream object for the local files + + + + + Returns the file size using synchronous file I/O. + + + + + Returns the file size using async file I/O. + + + + + Returns the file size using synchronous file I/O. + + + + + Returns the file size using synchronous file I/O. + + + + + Returns a new stream to upload a file from disk. + If the file fits within the fileSizeLimit, then it is read in a single disk call and stored in memory, and a MemoryStream is returned. + If it is larger than that, then a regular read-only FileStream is returned. + + + + + Returns a new stream to download a file to disk. + If the file fits within the fileSizeLimit, then a new MemoryStream is returned. + If it is larger than that, then a regular writable FileStream is returned. + + + + + Stream class used for talking. Used by FtpClient, extended by FtpDataStream + + + + + The client this stream is associated with + + + + + This stream connection to be associated with this client + + + + + Used for tracking read/write activity on the socket + to determine if Poll() should be used to test for + socket connectivity. The socket in this class will + not know it has been disconnected if the remote host + closes the connection first. Using Poll() avoids + the exception that would be thrown when trying to + read or write to the disconnected socket. + + + + + The socket used for talking + + + + + Keep a count of command/response transactions on the + control connection + + + + + Gets or sets the length of time in milliseconds + that must pass since the last socket activity + before calling Poll() on the socket to test for + connectivity. Setting this interval too low will + have a negative impact on performance. Setting this + interval to 0 disables Poll()'ing all together. + The default value is 15 seconds. + + + + + Gets the number of available bytes on the socket, 0 if the + socket has not been initialized. This property is used internally + by FtpClient in an effort to detect disconnections and gracefully + reconnect the control connection. + + + + + Gets a value indicating if this socket stream is connected + + + + + Gets a value indicating if encryption is being used + + + + + Is this stream the control connection? + + + + + The negotiated SSL/TLS protocol version. Will have a valid value after connection is complete. + + + + + The non-encrypted stream + + + + + Gets the underlying stream, could be a NetworkStream or SslStream + + + + + Gets a value indicating if this stream can be read + + + + + Gets a value indicating if this stream if seekable + + + + + Gets a value indicating if this stream can be written to + + + + + Gets the length of the stream + + + + + Gets the current position of the stream. Trying to + set this property throws an InvalidOperationException() + + + + + Event is fired when a SSL certificate needs to be validated + + + + + Gets or sets the amount of time to wait for a read operation to complete. Default + value is Timeout.Infinite. + + + + + Gets or sets the length of time milliseconds to wait + for a connection succeed before giving up. The default + is 0 = disable, use system default timeout. + + + + + Gets the local end point of the socket + + + + + Gets the remote end point of the socket + + + + + Fires the SSL certificate validation event + + Certificate being validated + Certificate chain + Policy errors if any + True if it was accepted, false otherwise + + + + Throws an InvalidOperationException + + Ignored + Ignored + + + + + Throws an InvalidOperationException + + Ignored + + + + Flushes the stream + + + + + Flushes the stream asynchronously + + The for this task + + + + Bypass the stream and read directly off the socket. + + The buffer to read into + The number of bytes read + + + + Bypass the stream and read directly off the socket. + + The buffer to read into + The token that can be used to cancel the entire process + The number of bytes read + + + + Reads data from the stream + + Buffer to read into + Where in the buffer to start + Number of bytes to be read + The amount of bytes read from the stream + + + + Reads data from the stream + + Buffer to read into + Where in the buffer to start + Number of bytes to be read + The for this task + The amount of bytes read from the stream + + + + Reads a line from the socket + + The type of encoding used to convert from byte[] to string + A line from the stream, null if there is nothing to read + + + + Reads all lines from the socket + + The type of encoding used to convert from byte[] to string + The size of the buffer + A list of lines from the stream + + + + Reads a line from the socket asynchronously + + The type of encoding used to convert from byte[] to string + The for this task + A line from the stream, null if there is nothing to read + + + + Reads all lines from the socket + + The type of encoding used to convert from byte[] to string + The size of the buffer + The token that can be used to cancel the entire process + A list of lines from the stream + + + + Writes data to the stream + + Buffer to write to stream + Where in the buffer to start + Number of bytes to be written + + + + Writes data to the stream asynchronously + + Buffer to write to stream + Where in the buffer to start + Number of bytes to be written + The for this task + + + + Writes a line to the stream using the specified encoding + + Encoding used for writing the line + The data to write + + + + Writes a line to the stream using the specified encoding asynchronously + + Encoding used for writing the line + The data to write + The for this task + + + + Disconnects from server + + + + + Disconnects from server + + + + + Safely close the socket if its open + + + + + Sets socket options on the underlying socket + + SocketOptionLevel + SocketOptionName + SocketOptionValue + + + + Check if the specified IP Address is allowed + + The ip address to connect to + The enum value of allowed IP Versions + Textual representation of the address family + + + + Get the IP Address(es) associated with this host + + The host to query + + + + Set the connected IP Address associated with this host + + The host to query + The IP address to store in the cache + + + + Connect to the specified host + + The host to connect to + The port to connect to + Internet Protocol versions to support during the connection phase + + + + Connect to the specified host + Detects timeout and throws that explicitly + + The ip address to connect to + The port to connect to + + + + Get the IP Address(es) associated with this host + + The host to query + The token that can be used to cancel the entire process + + + + Connect to the specified host + + The host to connect to + The port to connect to + Internet Protocol versions to support during the connection phase + The token that can be used to cancel the entire process + + + + Connect to the specified host + Detects timeout and throws that explicitly + + The ip address to connect to + The port to connect to + The token that can be used to cancel the entire process + + + + Activates SSL on this stream using the specified protocols. Fires the ValidateCertificate event. + If this event is not handled and there are SslPolicyErrors present, the certificate will + not be accepted. + + The host to authenticate the certificate against + A collection of client certificates to use when authenticating the SSL stream + A bitwise parameter for supported encryption protocols. + Thrown when authentication fails + + + + Activates SSL on this stream using the specified protocols. Fires the ValidateCertificate event. + If this event is not handled and there are SslPolicyErrors present, the certificate will + not be accepted. + + The host to authenticate the certificate against + A collection of client certificates to use when authenticating the SSL stream + A bitwise parameter for supported encryption protocols. + The token that can be used to cancel the entire process + Thrown when authentication fails + + + + Conditionally create a SSL BufferStream based on the configuration in FtpClient.SslBuffering. + + + + + If SSL Buffering is enabled it returns the BufferStream, else returns the internal NetworkStream. + + + + + + Instructs this stream to listen for connections on the specified address and port + + The address to listen on + The port to listen on + + + + Accepts a connection from a listening socket + + + + + Accepts a connection from a listening socket + + + + + FtpSslStream is an SslStream that properly sends a close_notify message when closing + the connection. This is required per RFC 5246 to avoid truncation attacks. + For more information, see https://tools.ietf.org/html/rfc5246#section-7.2.1 + + Inspired by: https://stackoverflow.com/questions/237807/net-sslstream-doesnt-close-tls-connection-properly/22626756#22626756 + + See: https://learn.microsoft.com/en-us/windows/win32/secauthn/shutting-down-an-schannel-connection + See: https://learn.microsoft.com/en-us/windows/win32/secauthn/using-sspi-with-a-windows-sockets-client?source=recommendations + + Note: + Microsoft says we should not override close(): + "Place all cleanup logic for your stream object in Dispose(Boolean). Do not override Close()." + See: https://learn.microsoft.com/en-us/dotnet/api/system.io.stream.dispose?view=net-7.0 + But: We recently changed the below logic due to issue #1107, which solved the problem in part + + + + + + Create an SslStream object + + + + + Close + + + + + For representing this SslStream in the log + + +
          +
          diff --git a/Source/packages/FluentFTP.44.0.1/lib/net6.0/FluentFTP.dll b/Source/packages/FluentFTP.44.0.1/lib/net6.0/FluentFTP.dll new file mode 100644 index 0000000..eb6db1b Binary files /dev/null and b/Source/packages/FluentFTP.44.0.1/lib/net6.0/FluentFTP.dll differ diff --git a/Source/packages/FluentFTP.44.0.1/lib/net6.0/FluentFTP.xml b/Source/packages/FluentFTP.44.0.1/lib/net6.0/FluentFTP.xml new file mode 100644 index 0000000..5b407aa --- /dev/null +++ b/Source/packages/FluentFTP.44.0.1/lib/net6.0/FluentFTP.xml @@ -0,0 +1,8409 @@ + + + + FluentFTP + + + + + An FTP client that manages a connection to a single FTP server. + Interacts with any FTP/FTPS server and provides a high-level and low-level API to work with files and folders. + Uses asynchronous operations only. For the sync version use `FtpClient`. + + Debugging problems with FTP is much easier when you enable logging. Visit our Github Wiki for more info. + + + + + Performs a login on the server. This method is overridable so + that the login procedure can be changed to support, for example, + a FTP proxy. + + + + + Performs a login on the server. This method is overridable so + that the login procedure can be changed to support, for example, + a FTP proxy. + + On authentication failures + + To handle authentication failures without retries, catch FtpAuthenticationException. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and connects to the first successful profile. + Returns the FtpProfile if the connection succeeded, or null if it failed. + It will throw exceptions for permanent failures like invalid host or invalid credentials. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and returns the list of successful connection profiles. + You can configure it to stop after finding the first successful profile, or to collect all successful profiles. + You can then generate code for the profile using the FtpProfile.ToCode method. + If no successful profiles are found, a blank list is returned. + + Find all successful profiles (false) or stop after finding the first successful profile (true) + Use a new cloned AsyncFtpClient for testing connection profiles (true) or use the source AsyncFtpClient (false) + The token that can be used to cancel the entire process + + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The owner permissions + The group permissions + The other permissions + The token that can be used to cancel the entire process + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The permissions in CHMOD format + The token that can be used to cancel the entire process + + + + Compare the specified local file with the remote file on the FTP server using various kinds of quick equality checks. + In Auto mode, the file size and checksum are compared. + Comparing the checksum of a file is a quick way to check if the contents of the files are exactly equal without downloading a copy of the file. + You can use the option flags to compare any combination of: file size, checksum, date modified. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + Types of equality checks to perform. Use Auto to compare file size and checksum. + The token that can be used to cancel the entire process + + + + + Connect to the given server profile. + + + + + Connect to the given server profile. + + + + + Connect to the server + + true indicates that we want a + reconnect to take place. + The token that can be used to cancel the entire process + Thrown if this object has been disposed. + + + + Connect to the FTP server. Overridden in proxy classes. + + + + + + + Connect to the FTP server. Overridden in proxy classes. + + + + + Creates a remote directory asynchronously + + The full or relative path to the new remote directory + Try to create the whole path if the preceding directories do not exist + The token that can be used to cancel the entire process + True if directory was created, false if it was skipped + + + + Creates a remote directory asynchronously. If the preceding + directories do not exist, then they are created. + + The full or relative path to the new remote directory + The token that can be used to cancel the entire process + + + + Asynchronously removes a directory and all its contents. + + The full or relative path of the directory to delete + The token that can be used to cancel the entire process + + + + Asynchronously removes a directory and all its contents. + + The full or relative path of the directory to delete + Useful to delete hidden files or dot-files. + The token that can be used to cancel the entire process + + + + Asynchronously removes a directory. Used by and + . + + The full or relative path of the directory to delete + Delete the contents before deleting the folder + Useful to delete hidden files or dot-files. + Delete the top level dir too + Internally used to determine top level + The token that can be used to cancel the entire process + + + + + Deletes a file from the server asynchronously + + The full or relative path to the file + The token that can be used to cancel the entire process + + + + Tests if the specified directory exists on the server asynchronously. This + method works by trying to change the working directory to + the path specified. If it succeeds, the directory is changed + back to the old working directory and true is returned. False + is returned otherwise and since the CWD failed it is assumed + the working directory is still the same. + + The full or relative path of the directory to check for + The token that can be used to cancel the entire process + True if the directory exists. False otherwise. + + + + Disables UTF8 support and changes the Encoding property + back to ASCII. If the server returns an error when trying + to turn UTF8 off a FtpCommandException will be thrown. + + + + + Disconnects from the server asynchronously + + + + + Downloads the specified file and return the raw byte array. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The full or relative path to the file on the server + The size of the existing file in bytes, or 0 if unknown. The download restarts from this byte index. + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track download progress. + A byte array containing the contents of the downloaded file if successful, otherwise null. + + + + Downloads the specified file and return the raw byte array asynchronously. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The full or relative path to the file on the server + The token that can be used to cancel the entire process + A byte array containing the contents of the downloaded file if successful, otherwise null. + + + + Downloads the specified directory onto the local file system. + In Mirror mode, we will download missing files, and delete any extra files from disk that are not present on the server. This is very useful when creating an exact local backup of an FTP directory. + In Update mode, we will only download missing files and preserve any extra files on disk. This is useful when you want to simply download missing files from an FTP directory. + Only downloads the files and folders matching all the rules provided, if any. + All exceptions during downloading are caught, and the exception is stored in the related FtpResult object. + + The full path of the local folder on disk to download into. It is created if it does not exist. + The full path of the remote FTP folder that you want to download. If it does not exist, an empty result list is returned. + Mirror or Update mode, as explained above + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide an implementation of IProgress to track upload progress. + The token that can be used to cancel the entire process + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Download all the listed files and folders from the main directory + + + + + Downloads the specified file onto the local file system asynchronously. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + Overwrite if you want the local file to be overwritten if it already exists. Append will also create a new file if it doesn't exists + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Provide an implementation of IProgress to track download progress. + The token that can be used to cancel the entire process + FtpStatus flag indicating if the file was downloaded, skipped or failed to transfer. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts. + + + + + Download a remote file to a local file + + + + + Download a file from the server and write the data into the given stream asynchronously. + Reads data in chunks. Retries if server disconnects midway. + + + + + Setup a resume on failure of download + + + + + Downloads the specified files into a local single directory. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + Same speed as . + + The full or relative path to the directory that files will be downloaded into. + The full or relative paths to the files on the server + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are downloaded, and the files that don't pass are skipped. + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Remove successfully downloaded files. + + + + + Downloads the specified file into the specified stream asynchronously . + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory. + The full or relative path to the file on the server + The size of the existing file in bytes, or 0 if unknown. The download restarts from this byte index. + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track download progress. + If true then the file was downloaded, false otherwise. + + + + Deletes the contents of the specified directory, without deleting the directory itself. + + The full or relative path of the directorys contents to delete + The token that can be used to cancel the entire process + + + + Deletes the contents of the specified directory, without deleting the directory itself. + + The full or relative path of the directorys contents to delete + Useful to delete hidden files or dot-files. + The token that can be used to cancel the entire process + + + + Performs an asynchronous execution of the specified command + + The command to execute + The token that can be used to cancel the entire process + The servers reply to the command + + + + Things to do after executing a command + + + + + + Checks if a file exists on the server asynchronously. + + The full or relative path to the file + The token that can be used to cancel the entire process + True if the file exists, false otherwise + + + + Ensure a relative dir is absolute by prepending the working dir + + + + + Concat a path and a filename + + + + + Ensure a relative path is absolute by prepending the working dir + + + + + Retrieves a checksum of the given file using the specified checksum algorithm, or using the first available algorithm that the server supports. + + + The algorithm used goes in this order: + 1. HASH command using the first supported algorithm. + 2. MD5 / XMD5 / MMD5 commands + 3. XSHA1 command + 4. XSHA256 command + 5. XSHA512 command + 6. XCRC command + + Full or relative path of the file to checksum + The token that can be used to cancel the entire process + Specify an algorithm that you prefer, or NONE to use the first available algorithm. If the preferred algorithm is not supported, a blank hash is returned. + object containing the value and algorithm. Use the property to + determine if this command was successful. s can be thrown from + the underlying calls. + The command fails + + + + Gets the hash of the specified file using the given command. + + + + + Sets the hash algorithm on the server to be used with the HASH command asynchronously. + + + + + Gets the hash of an object on the server using the currently selected hash algorithm. + + + + + Retrieve the permissions of the given file/folder as an integer in the CHMOD format. + Throws FtpCommandException if there is an issue. + Returns 0 if the server did not specify a permission value. + Use `GetFilePermissions` if you required the permissions in the FtpPermission format. + + The full or relative path to the item + The token that can be used to cancel the entire process + + + + Retrieve the permissions of the given file/folder as an FtpListItem object with all "Permission" properties set. + Throws FtpCommandException if there is an issue. + Returns null if the server did not specify a permission value. + Use `GetChmod` if you required the integer value instead. + + The full or relative path to the item + The token that can be used to cancel the entire process + + + + Asynchronously gets the size of a remote file, in bytes. + + The full or relative path of the file + Value to return if there was an error obtaining the file size, or if the file does not exist + The token that can be used to cancel the entire process + The size of the file, or defaultValue if there was a problem. + + + + Gets the file size of an object, without locking + + + + + Gets a file listing from the server asynchronously. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + The path to list + Options that dictate how the list operation is performed + The token that can be used to cancel the entire process + The token that can be used to cancel the enumerator + An array of items retrieved in the listing + + + + Gets a file listing from the server asynchronously. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + The path to list + The token that can be used to cancel the entire process + The token that can be used to cancel the enumerator + An array of items retrieved in the listing + + + + Gets a file listing from the server asynchronously. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + An array of items retrieved in the listing + + + + Gets a file listing from the server asynchronously. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + The path to list + Options that dictate how the list operation is performed + The token that can be used to cancel the entire process + An array of items retrieved in the listing + + + + Process the output of the listing command + + + + + Get the records of a file listing and retry if temporary failure. + + + + + Gets a file listing from the server asynchronously. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + The path to list + The token that can be used to cancel the entire process + An array of items retrieved in the listing + + + + Gets a file listing from the server asynchronously. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + An array of items retrieved in the listing + + + + Recursive method of GetListingAsync, to recurse through directories on servers that do not natively support recursion. + Automatically called by GetListingAsync where required. + Uses flat recursion instead of head recursion. + + The path of the directory to list + Options that dictate how a list is performed and what information is gathered. + + + An array of FtpListItem objects + + + + Recursive method of GetListingAsync, to recurse through directories on servers that do not natively support recursion. + Automatically called by GetListingAsync where required. + Uses flat recursion instead of head recursion. + + The path of the directory to list + Options that dictate how a list is performed and what information is gathered. + + An array of FtpListItem objects + + + + Gets the modified time of a remote file asynchronously + + The full path to the file + The token that can be used to cancel the entire process + The modified time, or if there was a problem + + + + Returns a file/directory listing using the NLST command asynchronously + + The path of the directory to list + The token that can be used to cancel the entire process + An array of file and directory names if any were returned. + + + + Returns a file/directory listing using the NLST command asynchronously + + An array of file and directory names if any were returned. + + + + Return information about a remote file system object asynchronously. + + + You should check the property for the + flag before calling this method. Failing to do so will result in an InvalidOperationException + being thrown when the server does not support machine listings. Returns null if the server response can't + be parsed or the server returns a failure completion code. The error for a failure + is logged with FtpTrace. No exception is thrown on error because that would negate + the usefulness of this method for checking for the existence of an object. + Path of the item to retrieve information about + Get the accurate modified date using another MDTM command + The token that can be used to cancel the entire process + Thrown if the server does not support this Capability + A if the command succeeded, or null if there was a problem. + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + The token that can be used to cancel the entire process. + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + The token that can be used to cancel the entire process. + We are waiting for the response to which command? + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + The token that can be used to cancel the entire process. + We are waiting for the response to which command? + Set to true to select the NOOP devouring mode + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + The token that can be used to cancel the entire process. + We are waiting for the response to which command? + Set to true to select the NOOP devouring mode + -1 non-blocking, no timeout, >0 exhaustNoop mode, timeOut in seconds + FtpReply representing the response from the server + + + + Gets the current working directory asynchronously + + The current working directory, ./ if the response couldn't be parsed. + + + + Get the reply from the PWD command + + The current working directory reply. + + + + If an FTP Server has "different realms", in which realm is the + current working directory. + + The realm + + + + Called during . Typically extended by FTP proxies. + + + + + Is the current working directory the root? + + true if root. + + + + Moves a directory asynchronously on the remote file system from one directory to another. + Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter. + Only throws exceptions for critical errors. + + The full or relative path to the object + The new full or relative path including the new name of the object + Should we check if the dest directory exists? And if it does should we overwrite/skip the operation? + The token that can be used to cancel the entire process + Whether the directory was moved + + + + Moves a file asynchronously on the remote file system from one directory to another. + Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter. + Only throws exceptions for critical errors. + + The full or relative path to the object + The new full or relative path including the new name of the object + Should we check if the dest file exists? And if it does should we overwrite/skip the operation? + The token that can be used to cancel the entire process + Whether the file was moved + + + + Sends the NOOP command according to (effectively a no-op if 0). + Please call as needed to read the "OK" command sent by the server and prevent stale data on the socket. + Note that response is not guaranteed by all FTP servers when sent during file transfers. + + + true if NOOP command was sent + + + + Opens the specified type of active data stream + + Type of passive data stream to open + The command to execute that requires a data stream + Restart location in bytes for file transfer + The token that can be used to cancel the entire process + A data stream ready to be used + + + + Opens the specified file to be appended asynchronously + + Full or relative path of the file + ASCII/Binary + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + The token that can be used to cancel the entire process + A stream for writing to the file on the server + + + + Opens the specified file to be appended asynchronously + + Full or relative path of the file + ASCII/Binary + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + The token that can be used to cancel the entire process + A stream for writing to the file on the server +
          + + + Opens a data stream. + + The command to execute that requires a data stream + Restart location in bytes for file transfer + The token that can be used to cancel the entire process + The data stream. + + + + Opens a FXP PASV connection between the source FTP Server and the destination FTP Server + + Valid FTP connection to the destination FTP Server + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track download progress. + A data stream ready to be used + + + + Opens the specified type of passive data stream + + Type of passive data stream to open + The command to execute that requires a data stream + Restart location in bytes for file transfer + The token that can be used to cancel the entire process + A data stream ready to be used + + + + Opens the specified file for reading asynchronously + + The full or relative path of the file + ASCII/Binary + Resume location + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + The token that can be used to cancel the entire process + A stream for reading the file on the server + + + + Opens the specified file for reading asynchronously + + The full or relative path of the file + ASCII/Binary + Resume location + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + The token that can be used to cancel the entire process + A stream for reading the file on the server +
          + + + Opens the specified file for writing. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + Full or relative path of the file + ASCII/Binary + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + The token that can be used to cancel the entire process + A stream for writing to the file on the server + + + + Opens the specified file for writing. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + Full or relative path of the file + ASCII/Binary + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + The token that can be used to cancel the entire process + A stream for writing to the file on the server +
          + + + Renames an object on the remote file system asynchronously. + Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory(). + Throws exceptions if the file does not exist, or if the destination file already exists. + + The full or relative path to the object + The new full or relative path including the new name of the object + The token that can be used to cancel the entire process + + + + Sets the data type of information sent over the data stream asynchronously + + ASCII/Binary + The token that can be used to cancel the entire process + + + + Sets the data type of information sent over the data stream asynchronously + + ASCII/Binary + The token that can be used to cancel the entire process + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The owner permissions + The group permissions + The other permissions + The token that can be used to cancel the entire process + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The permissions in CHMOD format + The token that can be used to cancel the entire process + + + + Gets the modified time of a remote file asynchronously + + The full path to the file + The new modified date/time value + The token that can be used to cancel the entire process + + + + Sets the working directory on the server asynchronously + + The directory to change to + The token that can be used to cancel the entire process + + + + Transfer the specified directory from the source FTP Server onto the remote FTP Server asynchronously using the FXP protocol. + You will need to create a valid connection to your remote FTP Server before calling this method. + In Update mode, we will only transfer missing files and preserve any extra files on the remote FTP Server. This is useful when you want to simply transfer missing files from an FTP directory. + Currently Mirror mode is not implemented. + Only transfers the files and folders matching all the rules provided, if any. + All exceptions during transfer are caught, and the exception is stored in the related FtpResult object. + + The full or relative path to the folder on the source FTP Server. If it does not exist, an empty result list is returned. + Valid FTP connection to the destination FTP Server + The full or relative path to destination folder on the remote FTP Server + Only Update mode is currently implemented + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide a callback to track download progress. + The token that can be used to cancel the entire process + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Make a list of files to transfer + + + + + Transfer the files + + + + + Transfer the specified file from the source FTP Server to the destination FTP Server asynchronously using the FXP protocol. + High-level API that takes care of various edge cases internally. + + The full or relative path to the file on the source FTP Server + Valid FTP connection to the destination FTP Server + The full or relative path to destination file on the remote FTP Server + Indicates if the folder should be created on the remote FTP Server + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Provide a callback to track download progress. + + The token that can be used to cancel the entire process + Returns a FtpStatus indicating if the file was transferred. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts. + + + + + Transfers a file from the source FTP Server to the destination FTP Server via the FXP protocol asynchronously. + + + + + Uploads the specified byte array as a file onto the server asynchronously. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full data of the file, as a byte array + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + The token that can be used to cancel the entire process. + Provide an implementation of IProgress to track upload progress. + FtpStatus flag indicating if the file was uploaded, skipped or failed to transfer. + + + + Uploads the specified directory onto the server. + In Mirror mode, we will upload missing files, and delete any extra files from the server that are not present on disk. This is very useful when publishing an exact copy of a local folder onto an FTP server. + In Update mode, we will only upload missing files and preserve any extra files on the server. This is useful when you want to simply upload missing files to a server. + Only uploads the files and folders matching all the rules provided, if any. + All exceptions during uploading are caught, and the exception is stored in the related FtpResult object. + + The full path of the local folder on disk that you want to upload. If it does not exist, an empty result list is returned. + The full path of the remote FTP folder to upload into. It is created if it does not exist. + Mirror or Update mode, as explained above + If the file exists on disk, should we skip it, resume the upload or restart the upload? + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are uploaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide an implementation of IProgress to track upload progress. + The token that can be used to cancel the entire process + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Create all the sub directories within the main directory + + + + + Upload all the files within the main directory + + + + + Delete the extra remote files if in mirror mode and the directory was pre-existing + + + + + Uploads the specified file directly onto the server asynchronously. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + The token that can be used to cancel the entire process. + Provide an implementation of IProgress to track upload progress. + FtpStatus flag indicating if the file was uploaded, skipped or failed to transfer. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + + + + + Upload from a local file to a remote file + + + + + Upload the given stream to the server as a new file asynchronously. Overwrites the file if it exists. + Writes data in chunks. Retries if server disconnects midway. + + + + + Setup a resume on failure of upload + + + + + Uploads the given file paths to a single folder on the server asynchronously. + All files are placed directly into the given folder regardless of their path on the local filesystem. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + Faster than uploading single files with since it performs a single "file exists" check rather than one check per file. + + The full or relative paths to the files on the local file system. Files can be from multiple folders. + The full or relative path to the directory that files will be uploaded on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are uploaded, and the files that don't pass are skipped. + + Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Remove successfully uploaded files. + + + + + Uploads the given file paths to a single folder on the server asynchronously. + All files are placed directly into the given folder regardless of their path on the local filesystem. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + Faster than uploading single files with since it performs a single "file exists" check rather than one check per file. + + The full or relative paths to the files on the local file system. Files can be from multiple folders. + The full or relative path to the directory that files will be uploaded on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are uploaded, and the files that don't pass are skipped. + + Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Get a list of all the files that need to be uploaded + + + + + Uploads the specified stream as a file onto the server asynchronously. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full data of the file, as a stream + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + The token that can be used to cancel the entire process. + Provide an implementation of IProgress to track upload progress. + FtpStatus flag indicating if the file was uploaded, skipped or failed to transfer. + + + + Verify an FXP transfer + + + + + + + + + + + + Verify a file transfer + + + + + + + + + + Creates a new instance of an async FTP Client. You will have to setup the FTP host and credentials before connecting. + + + + + Creates a new instance of an async FTP Client, with the given host and credentials. + + + + + Creates a new instance of an async FTP Client, with the given host and credentials. + + + + + Creates a new instance of an async FTP Client, with the given host and credentials. + + + + + The base object for FtpClient, AsyncFtpClient + + + + + Calculate the position from which to append + + + + + + + + + Calculate transfer chunk size taking rate control into account + + + + + Check if the file is cleared to be uploaded, taking its existence/filesize and existsMode options into account. + + + + + Try using the SIZE command to check if file exists + + + + + + + Does the server support checksums? + + + + + + Is the checksum algorithm valid? + + + + + + + Cleanup the hash result + + + + + Get the first checksum algorithm mutually supported by both servers. + + + + + Disconnects a data stream + + The data stream to close + + + + If reverse is false, converts the date provided by the FTP server into the timezone required locally. + If reverse is true, converts the local timezone date into the date required by the FTP server. + + Affected by properties: TimeConversion, TimeZone, LocalTimeZone. + + + + + Delete the extra local files if in mirror mode + + + + + Check if the local file can be deleted, based on the DownloadDirectoryDeleteExcluded property + + + + + Executes a command + + The command to execute + The servers reply to the command + + + + Things to do after executing a command + + + + + + Populates the capabilities flags based on capabilities + supported by this server. This method is overridable + so that new features can be supported + + The reply object from the FEAT command. The InfoMessages property will + contain a list of the features the server supported delimited by a new line '\n' character. + + + + Forcibly set the capabilities of your FTP server. + By default capabilities are loaded automatically after calling Connect and you don't need to use this method. + This is only for advanced use-cases. + + + + + Performs a bitwise and to check if the specified + flag is set on the property. + + The to check for + True if the feature was found, false otherwise + + + + Returns true if the file passes all the rules + + + + + Get a list of all the files and folders that need to be downloaded + + + + + Get a list of all the files and folders that need to be downloaded + + + + + Create an FtpResult object for the given file to be downloaded, and check if the file passes the rules. + + + + + Get a list of all the files that need to be uploaded within the main directory + + + + + Create an FtpResult object for the given file to be uploaded, and check if the file passes the rules. + + + + + Parse the host and port number from an EPSV response + Handles (|||nnnn|) and (!!!nnnn!) + + + + + Parse the host and port number from an PASV or PASVEX response + + + + + Returns the IP address to be sent to the server for the active connection. + + + + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + We are waiting for the response to which command? + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + We are waiting for the response to which command? + Set to true to select the NOOP devouring mode + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + We are waiting for the response to which command? + Set to true to select the NOOP devouring mode + -1 non-blocking, no timeout, >0 exhaustNoop mode, timeOut in seconds + FtpReply representing the response from the server + + + + Process the returned data after command was executed + + + + + + + + Decodes the given FTP response string into a FtpReply, separating the FTP return code and message. + Returns true if the string was decoded correctly or false if it is not a standard format FTP response. + + + + + Make a list of subdirectories to transfer + + + + + + + + + + + Get a list of all the sub directories that need to be created within the main directory + + + + + Check if the remote file can be deleted, based on the UploadDirectoryDeleteExcluded property + + + + + Gets the current working directory + + The current working directory, ./ if the response couldn't be parsed. + + + + Get the reply to the PWD command + + + + + Parse the string returned from a PWD command + + + + + + + Checks if this FTP/FTPS connection is made through a proxy. + + + + + Checks whether will be called recursively or not. + + + + + + + Get a listing + + + + + + + + + + + + + + + + + + + + + Determine which command to use for getting a listing + + + + + Can the server do recursion for us? + + + + + Load the given connection profile and configure the FTP client instance accordingly. + + Connection profile. Not modified. + + + + Log the version of the running assembly + + + + + Log a function call with relevant arguments + + The name of the API function + The args passed to the function + + + + Log a message + + The type of tracing event + The message to write + + + + Log a message, adding an automatic prefix to the message based on the `eventType` + + The type of tracing event + The message to write + An optional exeption + Write an optional exeption on a new line + + + + Log a message to the debug output and console. + + + + + To allow for external connected classes to use the attached logger. + + + + + To allow for external connected classes to use the attached logger. + + + + + Should the function calls be logged in Verbose mode? + + + + + Add a custom listener here to get events every time a message is logged. + This is the older system, prefer using the ILogger based `Logger` property. + This system will never be removed, you can safely use it in your applications. + + + + + All the configuration settings for this FTP client. + + + + + Gets the type of the FTP server handler. + This is automatically set based on the detected FTP server, if it is detected. + You can manually set this property to implement handling for a custom FTP server. + + + + + Gets or sets the text encoding being used when talking with the server. The default + value is however upon connection, the client checks + for UTF8 support and if it's there this property is switched over to + . Manually setting this value overrides automatic detection + based on the FEAT list; if you change this value it's always used + regardless of what the server advertises, if anything. + + + + + When last command was sent (NOOP or other), for having /. + Respects the . + + + + + Current FTP client status flags used for improving performance and caching data. + + + + + Returns the current FTP client status flags. For advanced use only. + + + + + Used for internally synchronizing access to this + object from multiple threads + + + + + For usage by FTP proxies only + + + + + Control connection socket stream + + + + + Gets the base stream for talking to the server via + the control connection. + + + + + Gets a value indicating if this object has already been disposed. + + + + + Gets the current internet protocol (IPV4 or IPV6) used by the socket connection. + Returns FtpIpVersion.Unknown before connection. + + + + + Returns true if the connection to the FTP server is open. + WARNING: Returns true even if our credentials are incorrect but connection to the server is open. + See the IsAuthenticated property if you want to check if we are correctly logged in. + + + + + Returns true if the connection to the FTP server is open and if the FTP server accepted our credentials. + + + + + Gets a value indicating if this control connection is a clone. This property + is used with data streams to determine if the connection should be closed + when the stream is closed. Servers typically only allow 1 data connection + per control connection. If you try to open multiple data connections this + object will be cloned for 2 or more resulting in N new connections to the + server. + + + + + The server to connect to + + + + + The port to connect to. If this value is set to 0 (Default) the port used + will be determined by the type of SSL used or if no SSL is to be used it + will automatically connect to port 21. + + + + + Credentials used for authentication + + + + + Gets the server capabilities represented by an array of capability flags + + + + + Get the hash types supported by the server for use with the HASH Command. + This is a recent extension to the protocol that is not fully + standardized and is not guaranteed to work. See here for + more details: + http://tools.ietf.org/html/draft-bryan-ftpext-hash-02 + + + + + The negotiated SSL/TLS protocol version. + Will return a valid value after connection is complete. + Before connection it will return `SslProtocols.None`. + + + + + Checks if FTPS/SSL encryption is currently active. + Useful to see if your server supports FTPS, when using FtpEncryptionMode.Auto. + + + + + Easiest way to check if a handler has been attached. + + + + + Event is fired to validate SSL certificates. If this event is + not handled and there are errors validating the certificate + the connection will be aborted. + Not fired if ValidateAnyCertificate is set to true. + + + + + Gets the type of system/server that we're connected to. Typically begins with "WINDOWS" or "UNIX". + + + + + Gets the type of the FTP server software that we're connected to. + + + + + Gets the operating system of the FTP server that we're connected to. + + + + Gets the connection type + + + Gets the last reply received from the server + + + Gets the last replies received from the server + + + + Callback format to implement your custom FTP listing line parser. + + The line from the listing + The server capabilities + The FTP client + Return an FtpListItem object if the line can be parsed, else return null + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Returns the local end point of the FTP socket, if it is available. + + + + + Returns the remote end point of the FTP socket, if it is available. + + + + + Data shouldn't be on the socket, if it is it probably means we've been disconnected. + Read and discard whatever is there. + Returns the stale data as text, if any, or null if none was found. + + copy stale data information to logs? + for the log information + + + + Data shouldn't be on the socket, if it is it probably means we've been disconnected. + Read and discard whatever is there. + Returns the stale data as text, if any, or null if none was found. + + copy stale data information to logs? + called from where (text) + The token that can be used to cancel the entire process + + + + Sends progress to the user, either a value between 0-100 indicating percentage complete, or -1 for indeterminate. + + + + + Sends progress to the user, either a value between 0-100 indicating percentage complete, or -1 for indeterminate. + + + + + Open a local port on the given ActivePort or a random port. + + + + + + Validate the client before the auto detect process + + + + + + + Catches the socket stream ssl validation event and fires the event handlers + attached to this object for validating SSL certificates + + The stream that fired the event + The event args used to validate the certificate + + + + Fires the SSL validation event + + Event Args + + + + Verify that the client is usable + + + + + + + + + + + + Clones the FTP client control connection. Used for opening multiple data streams. + You will need to manually connect after cloning. + + A new FTP client connection with the same property settings as this one. + + + + Disposes and disconnects this FTP client if it was auto-created for an internal operation. + + + + + Check if the host parameter is valid + + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Disconnects from the server, releases resources held by this + object. + + + + + Finalizer + + + + + Class responsible for automatically detecting working FTP settings to connect to a target FTP server. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and returns the list of successful connection profiles. + You can configure it to stop after finding the first successful profile, or to collect all successful profiles. + You can then generate code for the profile using the FtpProfile.ToCode method. + If no successful profiles are found, a blank list is returned. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and returns the list of successful connection profiles. + You can configure it to stop after finding the first successful profile, or to collect all successful profiles. + You can then generate code for the profile using the FtpProfile.ToCode method. + If no successful profiles are found, a blank list is returned. + + + + + Check if the server refused to support one type of FTPS encryption, and if so blacklist that type of encryption. + + + + + Check if its an auth failure or something permanent, + so that we don't need to retry all the connection config combinations and can hard-abort the AutoConnect. + Return the exception if it is a hard failure, or null if no issue is found. + + + + + Load the given connection profile and configure the FTP client instance accordingly. + + + + + Create a default ValidateCertificate handler that accepts valid certificates. + + + + + Return a known working connection profile from the host/port combination. + + + + + Modify the `Status.InCriticalSequence` flag based on the FTP command sent, by checking against a list of known critical commands. + A critical sequence will not be interrupted by an automatic reconnect. + + + + + Class responsible for masking out sensitive data from FTP logs. + + + + + Populates the capabilities flags based on capabilities given in the list of strings. + + + + + Assume the FTP Server's capabilities if it does not support the FEAT command. + + + + + All servers with server-specific handling and support are listed here. + Its possible you can connect to other FTP servers too. + + To add support for another standard FTP server: + 1) Add a new enum in the `FtpServer` enum + 2) Add a new class extending `FtpBaseServer` under the `Servers.Handlers` NS + 3) Create a new instance of your class in `FtpHandlerIndex.AllServers` + + To support a custom FTP server you only need to extend `FtpBaseServer` + and set it on your client.ServerHandler before calling Connect. + + + + + Detect the FTP Server based on the welcome message sent by the server after getting the 220 connection command. + Its the primary method. + + + + + Get a default FTP Server handler based on the enum value. + + + + + Detect the FTP Server based on the response to the SYST connection command. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Detect the FTP Server based on the response to the SYST connection command. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Error messages returned by various servers when a file does not exist. + Instead of throwing an error, we use these to detect and handle the file detection properly. + MUST BE LOWER CASE! + + + + + Error messages returned by various servers when a file size is not supported in ASCII mode. + MUST BE LOWER CASE! + + + + + Error messages returned by various servers when a file transfer temporarily failed. + MUST BE LOWER CASE! + + + + + Error messages returned by various servers when a folder already exists. + Instead of throwing an error, we use these to detect and handle the folder creation properly. + MUST BE LOWER CASE! + + + + + Error messages returned by various servers when the connection failed due to wrong TLS version used. + MUST BE LOWER CASE! + + + + + An FTP client that manages a connection to a single FTP server. + Interacts with any FTP/FTPS server and provides a high-level and low-level API to work with files and folders. + Uses synchronous operations only. For the async version use `AsyncFtpClient`. + + Debugging problems with FTP is much easier when you enable logging. Visit our Github Wiki for more info. + + + + + Creates a new instance of a synchronous FTP Client. You will have to setup the FTP host and credentials before connecting. + + + + + Creates a new instance of a synchronous FTP Client, with the given host and credentials. + + + + + Creates a new instance of a synchronous FTP Client, with the given host and credentials. + + + + + Creates a new instance of a synchronous FTP Client, with the given host and credentials. + + + + + Performs a login on the server. This method is overridable so + that the login procedure can be changed to support, for example, + a FTP proxy. + + + + + Performs a login on the server. This method is overridable so + that the login procedure can be changed to support, for example, + a FTP proxy. + + On authentication failures + + To handle authentication failures without retries, catch FtpAuthenticationException. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and connects to the first successful profile. + Returns the FtpProfile if the connection succeeded, or null if it failed. + It will throw exceptions for permanent failures like invalid host or invalid credentials. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and returns the list of successful connection profiles. + You can configure it to stop after finding the first successful profile, or to collect all successful profiles. + You can then generate code for the profile using the FtpProfile.ToCode method. + If no successful profiles are found, a blank list is returned. + + Find all successful profiles (false) or stop after finding the first successful profile (true) + Use a new cloned FtpClient for testing connection profiles (true) or use the source FtpClient (false) + + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The owner permissions + The group permissions + The other permissions + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The permissions in CHMOD format + + + + Compare the specified local file with the remote file on the FTP server using various kinds of quick equality checks. + In Auto mode, the file size and checksum are compared. + Comparing the checksum of a file is a quick way to check if the contents of the files are exactly equal without downloading a copy of the file. + You can use the option flags to compare any combination of: file size, checksum, date modified. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + Types of equality checks to perform. Use Auto to compare file size and checksum. + + + + + Connect + + + + + Connect to the given server profile. + + + + + Connect to the server + + true indicates that we want a + reconnect to take place. + Thrown if this object has been disposed. + + + + Connect to the FTP server. Overridden in proxy classes. + + + + + + Connect to the FTP server. Overridden in proxy classes. + + + + + Creates a directory on the server. If the preceding + directories do not exist, then they are created. + + The full or relative path to the new remote directory + + + + Creates a directory on the server + + The full or relative path to the new remote directory + Try to force all non-existent pieces of the path to be created + True if directory was created, false if it was skipped + + + + Deletes the specified directory and all its contents. + + The full or relative path of the directory to delete + + + + Deletes the specified directory and all its contents. + + The full or relative path of the directory to delete + Useful to delete hidden files or dot-files. + + + + Deletes the specified directory and all its contents. + + The full or relative path of the directory to delete + If the directory is not empty, remove its contents + Useful to delete hidden files or dot-files. + Delete completely or leave the top level dir + Internally used to determine top level + + + + Deletes a file on the server + + The full or relative path to the file + + + + Tests if the specified directory exists on the server. This + method works by trying to change the working directory to + the path specified. If it succeeds, the directory is changed + back to the old working directory and true is returned. False + is returned otherwise and since the CWD failed it is assumed + the working directory is still the same. + + The path of the directory + True if it exists, false otherwise. + + + + Disables UTF8 support and changes the Encoding property + back to ASCII. If the server returns an error when trying + to turn UTF8 off a FtpCommandException will be thrown. + + + + + Disconnects from the server + + + + + Downloads the specified file and return the raw byte array. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The variable that will receive the bytes. + The full or relative path to the file on the server + The size of the existing file in bytes, or 0 if unknown. The download restarts from this byte index. + Provide a callback to track download progress. + If true then the file was downloaded, false otherwise. + + + + Downloads the specified directory onto the local file system. + In Mirror mode, we will download missing files, and delete any extra files from disk that are not present on the server. This is very useful when creating an exact local backup of an FTP directory. + In Update mode, we will only download missing files and preserve any extra files on disk. This is useful when you want to simply download missing files from an FTP directory. + Only downloads the files and folders matching all the rules provided, if any. + All exceptions during downloading are caught, and the exception is stored in the related FtpResult object. + + The full path of the local folder on disk to download into. It is created if it does not exist. + The full path of the remote FTP folder that you want to download. If it does not exist, an empty result list is returned. + Mirror or Update mode, as explained above + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide a callback to track download progress. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Download all the listed files and folders from the main directory + + + + + Downloads the specified file onto the local file system. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Provide a callback to track download progress. + FtpStatus flag indicating if the file was downloaded, skipped or failed to transfer. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts. + + + + + Download from a remote file to a local file + + + + + + + + + + + + + + Download a file from the server and write the data into the given stream. + Reads data in chunks. Retries if server disconnects midway. + + + + + Setup a resume on failure of download + + + + + Downloads the specified files into a local single directory. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + Same speed as . + + The full or relative path to the directory that files will be downloaded into. + The full or relative paths to the files on the server + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are downloaded, and the files that don't pass are skipped. + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Remove successfully downloaded files. + + + + + Downloads the specified file into the specified stream. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory. + The full or relative path to the file on the server + The size of the existing file in bytes, or 0 if unknown. The download restarts from this byte index. + Provide a callback to track download progress. + If true then the file was downloaded, false otherwise. + + + + Deletes the contents of the specified directory, without deleting the directory itself. + + The full or relative path of the directorys contents to delete + + + + Deletes the contents of the specified directory, without deleting the directory itself. + + The full or relative path of the directorys contents to delete + Useful to delete hidden files or dot-files. + + + + Executes a command + + The command to execute + The servers reply to the command + + + + Checks if a file exists on the server. + + The full or relative path to the file + True if the file exists + + + + Ensure a relative dir is absolute by prepending the working dir + + + + + Concat a path and a filename + + + + + Ensure a relative path is absolute by prepending the working dir + + + + + Retrieves a checksum of the given file using the specified checksum algorithm, or using the first available algorithm that the server supports. + + + The algorithm used goes in this order: + 1. HASH command using the first supported algorithm. + 2. MD5 / XMD5 / MMD5 commands + 3. XSHA1 command + 4. XSHA256 command + 5. XSHA512 command + 6. XCRC command + + Full or relative path of the file to checksum + Specify an algorithm that you prefer, or NONE to use the first available algorithm. If the preferred algorithm is not supported, a blank hash is returned. + object containing the value and algorithm. Use the property to + determine if this command was successful. s can be thrown from + the underlying calls. + The command fails + + + + Gets the hash of the specified file using the given command. + + + + + Sets the hash algorithm on the server to use for the HASH command. + + + + + Gets the hash of an object on the server using the currently selected hash algorithm. + + + + + Retrieve the permissions of the given file/folder as an integer in the CHMOD format. + Throws FtpCommandException if there is an issue. + Returns 0 if the server did not specify a permission value. + Use `GetFilePermissions` if you required the permissions in the FtpPermission format. + + The full or relative path to the item + + + + Retrieve the permissions of the given file/folder as an FtpListItem object with all "Permission" properties set. + Throws FtpCommandException if there is an issue. + Returns null if the server did not specify a permission value. + Use `GetChmod` if you required the integer value instead. + + The full or relative path to the item + + + + Gets the size of a remote file, in bytes. + + The full or relative path of the file + Value to return if there was an error obtaining the file size, or if the file does not exist + The size of the file, or defaultValue if there was a problem. + + + + Gets the file size of an object, without locking + + + + + Gets a file listing from the server from the current working directory. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + An array of FtpListItem objects + + + + Gets a file listing from the server. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + The path of the directory to list + An array of FtpListItem objects + + + + Gets a file listing from the server. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + The path of the directory to list + Options that dictate how a list is performed and what information is gathered. + An array of FtpListItem objects + + + + Get the records of a file listing and retry if temporary failure. + + + + + Recursive method of GetListing, to recurse through directories on servers that do not natively support recursion. + Automatically called by GetListing where required. + Uses flat recursion instead of head recursion. + + The path of the directory to list + Options that dictate how a list is performed and what information is gathered. + An array of FtpListItem objects + + + + Gets the modified time of a remote file. + + The full path to the file + The modified time, or if there was a problem + + + + Returns a file/directory listing using the NLST command. + + A string array of file and directory names if any were returned. + + + + Returns a file/directory listing using the NLST command. + + The path of the directory to list + A string array of file and directory names if any were returned. + + + + Returns information about a file system object. Returns null if the server response can't + be parsed or the server returns a failure completion code. The error for a failure + is logged with FtpTrace. No exception is thrown on error because that would negate + the usefulness of this method for checking for the existence of an object. + + The path of the file or folder + Get the accurate modified date using another MDTM command + A FtpListItem object + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + FtpReply representing the response from the server + + + + Gets the current working directory + + The current working directory, ./ if the response couldn't be parsed. + + + + If an FTP Server has "different realms", in which realm is the + current working directory. + + The realm + + + + Called during Connect(). Typically extended by FTP proxies. + + + + + Is the current working directory the root? + + true if root. + + + + Moves a directory on the remote file system from one directory to another. + Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter. + Only throws exceptions for critical errors. + + The full or relative path to the object + The new full or relative path including the new name of the object + Should we check if the dest directory exists? And if it does should we overwrite/skip the operation? + Whether the directory was moved + + + + Moves a file on the remote file system from one directory to another. + Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter. + Only throws exceptions for critical errors. + + The full or relative path to the object + The new full or relative path including the new name of the object + Should we check if the dest file exists? And if it does should we overwrite/skip the operation? + Whether the file was moved + + + + Sends the NOOP command according to (effectively a no-op if 0). + Please call as needed to read the "OK" command sent by the server and prevent stale data on the socket. + Note that response is not guaranteed by all FTP servers when sent during file transfers. + + true if NOOP command was sent + + + + Opens the specified type of active data stream + + Type of passive data stream to open + The command to execute that requires a data stream + Restart location in bytes for file transfer + A data stream ready to be used + + + + Opens the specified file for appending. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + The full or relative path to the file to be opened + ASCII/Binary + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + A stream for writing to the file on the server + + + + Opens the specified file for appending. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + The full or relative path to the file to be opened + ASCII/Binary + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + A stream for writing to the file on the server +
          + + + Opens a data stream. + + The command to execute that requires a data stream + Restart location in bytes for file transfer + The data stream. + + + + Opens a FXP PASV connection between the source FTP Server and the destination FTP Server + + FtpClient instance of the destination FTP Server + Provide an implementation of IProgress to track download progress. + A data stream ready to be used + + + + Opens the specified type of passive data stream + + Type of passive data stream to open + The command to execute that requires a data stream + Restart location in bytes for file transfer + A data stream ready to be used + + + + Opens the specified file for reading + + The full or relative path of the file + ASCII/Binary + Resume location + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + A stream for reading the file on the server + + + + Opens the specified file for reading + + The full or relative path of the file + ASCII/Binary + Resume location + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + A stream for reading the file on the server +
          + + + Opens the specified file for writing. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + Full or relative path of the file + ASCII/Binary + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + A stream for writing to the file on the server + + + + Opens the specified file for writing. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + Full or relative path of the file + ASCII/Binary + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + A stream for writing to the file on the server +
          + + + Renames an object on the remote file system. + Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory(). + Throws exceptions if the file does not exist, or if the destination file already exists. + + The full or relative path to the object + The new full or relative path including the new name of the object + + + + Sets the data type of information sent over the data stream + + ASCII/Binary + + + Internal method that handles actually setting the data type. + Thrown when a FTP Command error condition occurs. + Thrown when a FTP error condition occurs. + ASCII/Binary. + This method doesn't do any locking to prevent recursive lock scenarios. Callers must do their own locking. + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The owner permissions + The group permissions + The other permissions + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The permissions in CHMOD format + + + + Changes the modified time of a remote file + + The full path to the file + The new modified date/time value + + + + Sets the work directory on the server + + The path of the directory to change to + + + + Transfer the specified directory from the source FTP Server onto the remote FTP Server using the FXP protocol. + You will need to create a valid connection to your remote FTP Server before calling this method. + In Update mode, we will only transfer missing files and preserve any extra files on the remote FTP Server. This is useful when you want to simply transfer missing files from an FTP directory. + Currently Mirror mode is not implemented. + Only transfers the files and folders matching all the rules provided, if any. + All exceptions during transfer are caught, and the exception is stored in the related FtpResult object. + + The full or relative path to the folder on the source FTP Server. If it does not exist, an empty result list is returned. + Valid FTP connection to the destination FTP Server + The full or relative path to destination folder on the remote FTP Server + Only Update mode is currently implemented + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide a callback to track download progress. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Make a list of files to transfer + + + + + Transfer each file + + + + + + + + + + + Transfer the specified file from the source FTP Server to the destination FTP Server using the FXP protocol. + High-level API that takes care of various edge cases internally. + + The full or relative path to the file on the source FTP Server + Valid FTP connection to the destination FTP Server + The full or relative path to destination file on the remote FTP Server + Indicates if the folder should be created on the remote FTP Server + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Provide a callback to track download progress. + + Returns a FtpStatus indicating if the file was transferred. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts. + + + + + Transfers a file from the source FTP Server to the destination FTP Server via the FXP protocol + + + + + Uploads the specified byte array as a file onto the server. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full data of the file, as a byte array + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + Provide a callback to track upload progress. + + + + Uploads the specified directory onto the server. + In Mirror mode, we will upload missing files, and delete any extra files from the server that are not present on disk. This is very useful when publishing an exact copy of a local folder onto an FTP server. + In Update mode, we will only upload missing files and preserve any extra files on the server. This is useful when you want to simply upload missing files to a server. + Only uploads the files and folders matching all the rules provided, if any. + All exceptions during uploading are caught, and the exception is stored in the related FtpResult object. + + The full path of the local folder on disk that you want to upload. If it does not exist, an empty result list is returned. + The full path of the remote FTP folder to upload into. It is created if it does not exist. + Mirror or Update mode, as explained above + If the file exists on disk, should we skip it, resume the upload or restart the upload? + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide a callback to track upload progress. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Create all the sub directories within the main directory + + + + + Upload all the files within the main directory + + + + + Delete the extra remote files if in mirror mode and the directory was pre-existing + + + + + Uploads the specified file directly onto the server. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Provide a callback to track download progress. + FtpStatus flag indicating if the file was uploaded, skipped or failed to transfer. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + + + + + Upload a local file to a remote file + + + + + + + + + + + + + + + + Upload the given stream to the server as a new file. Overwrites the file if it exists. + Writes data in chunks. Retries if server disconnects midway. + + + + + Setup a resume on an upload failure + + + + + Uploads the given file paths to a single folder on the server. + All files are placed directly into the given folder regardless of their path on the local filesystem. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + Faster than uploading single files with since it performs a single "file exists" check rather than one check per file. + + The full or relative paths to the files on the local file system. Files can be from multiple folders. + The full or relative path to the directory that files will be uploaded on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are uploaded, and the files that don't pass are skipped. + + Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Remove successfully uploaded files. + + + + + Uploads the given file paths to a single folder on the server. + All files are placed directly into the given folder regardless of their path on the local filesystem. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + Faster than uploading single files with since it performs a single "file exists" check rather than one check per file. + + The full or relative paths to the files on the local file system. Files can be from multiple folders. + The full or relative path to the directory that files will be uploaded on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are uploaded, and the files that don't pass are skipped. + + Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Get a list of all the files that need to be uploaded + + + + + Uploads the specified stream as a file onto the server. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full data of the file, as a stream + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + Provide a callback to track upload progress. + + + + Verify an FXP file transfer + + + + + + + + + + + Verify a file transfer + + + + + + + + + Interface for the AsyncFtpClient class. + For detailed documentation of the methods, please see the FtpClient class or check the Wiki on the FluentFTP Github project. + + + + + Base object for FtpClient, AsyncFtpClient and the internal client + + + + + Interface for the FtpClient class. + For detailed documentation of the methods, please see the FtpClient class or check the Wiki on the FluentFTP Github project. + + + + + Server features + + + + + This server said it doesn't support anything! + + + + + Supports the MLST command (machine listings) + + + + + Supports the SIZE command (get file size) + + + + + Supports the MDTM command (get file date modified) + + + + + Supports download/upload stream resumes + + + + + Supports UTF8 + + + + + PRET Command used by DrFTPD + + + + + Server supports the MFMT command for setting the + modified date of an object on the server + + + + + Server supports the MFCT command for setting the + created date of an object on the server + + + + + Server supports the MFF command for setting certain facts + about file system objects. It typically allows you to modify + the last modification time, creation time, UNIX group/owner/mode of a file. + + + + + Server supports the STAT command + + + + + Support for the HASH command + + + + + Support for the MD5 command + + + + + Support for the XMD5 command + + + + + Support for the XCRC command + + + + + Support for the XSHA1 command + + + + + Support for the XSHA256 command + + + + + Support for the XSHA512 command + + + + + Support for the EPSV file-transfer command + + + + + Support for the CPSV command + + + + + Support for the NOOP command + + + + + Support for the CLNT command + + + + + Support for the SSCN command + + + + + Support for the SITE MKDIR (make directory) server-specific command for ProFTPd + + + + + Support for the SITE RMDIR (remove directory) server-specific command for ProFTPd + + + + + Support for the SITE UTIME server-specific command for ProFTPd + + + + + Support for the SITE SYMLINK server-specific command for ProFTPd + + + + + Support for the AVBL (get available space) server-specific command for Serv-U + + + + + Support for the THMB (get image thumbnail) server-specific command for Serv-U + + + + + Support for the RMDA (remove directory) server-specific command for Serv-U + + + + + Support for the DSIZ (get directory size) server-specific command for Serv-U + + + + + Support for the HOST (get host) server-specific command for Serv-U + + + + + Support for the CCC (Clear Command Channel) command, which makes a secure FTP channel revert back to plain text. + + + + + Support for the MODE Z (compression enabled) command, which says that the server supports ZLIB compression for all transfers + + + + + Support for the LANG (language negotiation) command. + + + + + Support for the MMD5 (multiple MD5 hash) command. + + + + + Flags that control how file comparison is performed. If you are unsure what to use, set it to Auto. + + + + + Compares the file size and the checksum of the file (using the first supported hash algorithm). + The local and remote file sizes and checksums should exactly match for the file to be considered equal. + + + + + Compares the file size. + Both file sizes should exactly match for the file to be considered equal. + + + + + Compares the date modified of the file. + Both dates should exactly match for the file to be considered equal. + + + + + Compares the checksum or hash of the file using the first supported hash algorithm. + Both checksums should exactly match for the file to be considered equal. + + + + + The result of a file comparison operation. + + + + + Success. Local and remote files are exactly equal. + + + + + Failure. Local and remote files do not match. + + + + + Failure. Either the local or remote file does not exist. + + + + + Failure. Checksum verification is enabled and your server does not support any hash algorithm. + + + + + Data connection type + + + + + This type of data connection attempts to use the EPSV command + and if the server does not support EPSV it falls back to the + PASV command before giving up unless you are connected via IPv6 + in which case the PASV command is not supported. + + + + + Passive data connection. EPSV is a better + option if it's supported. Passive connections + connect to the IP address dictated by the server + which may or may not be accessible by the client + for example a server behind a NAT device may + give an IP address on its local network that + is inaccessible to the client. Please note that IPv6 + does not support this type data connection. If you + ask for PASV and are connected via IPv6 EPSV will + automatically be used in its place. + + + + + Same as PASV except the host supplied by the server is ignored + and the data connection is made to the same address that the control + connection is connected to. This is useful in scenarios where the + server supplies a private/non-routable network address in the + PASV response. It's functionally identical to EPSV except some + servers may not implement the EPSV command. Please note that IPv6 + does not support this type data connection. If you + ask for PASV and are connected via IPv6 EPSV will + automatically be used in its place. + + + + + Extended passive data connection, recommended. Works + the same as a PASV connection except the server + does not dictate an IP address to connect to, instead + the passive connection goes to the same address used + in the control connection. This type of data connection + supports IPv4 and IPv6. + + + + + This type of data connection attempts to use the EPRT command + and if the server does not support EPRT it falls back to the + PORT command before giving up unless you are connected via IPv6 + in which case the PORT command is not supported. + + + + + Active data connection, not recommended unless + you have a specific reason for using this type. + Creates a listening socket on the client which + requires firewall exceptions on the client system + as well as client network when connecting to a + server outside of the client's network. In addition + the IP address of the interface used to connect to the + server is the address the server is told to connect to + which, if behind a NAT device, may be inaccessible to + the server. This type of data connection is not supported + by IPv6. If you specify PORT and are connected via IPv6 + EPRT will automatically be used instead. + + + + + Extended active data connection, not recommended + unless you have a specific reason for using this + type. Creates a listening socket on the client + which requires firewall exceptions on the client + as well as client network when connecting to a + server outside of the client's network. The server + connects to the IP address it sees the client coming + from. This type of data connection supports IPv4 and IPv6. + + + + + Type of data transfer to do + + + + + ASCII transfer + + + + + Binary transfer + + + + + Not known yet + + + + + Controls how timestamps returned by the server are converted. + + + + + Returns the server timestamps in Server Time. No timezone conversion is performed. + + + + + Returns the server timestamps in Local Time. + Ensure that the TimeZone property is correctly set to the server's timezone. + If you are on .NET Core/.NET Standard, you need to set the LocalTimeZone property for this to work. + + + + + Returns the server timestamps in UTC (Coordinated Universal Time). + Ensure that the TimeZone property is correctly set to the server's timezone. + + + + + Defines the type of encryption to use + + + + + Plain text. + + + + + FTPS encryption is used from the start of the connection, port 990. + + + + + Connection starts in plain text and FTPS encryption is enabled + with the AUTH command immediately after the server greeting. + + + + + FTPS encryption is used if supported by the server, otherwise it falls back to plaintext FTP communication. + + + + + Defines how multi-file processes should handle a processing error. + + & Cannot Be Combined + + + + No action is taken upon errors. The method absorbs the error and continues. + + + + + If any files have completed successfully (or failed after a partial download/upload) then should be deleted. + This will simulate an all-or-nothing transaction downloading or uploading multiple files. If this option is not + combined with or then the method will + continue to process all items whether if they are successful or not and then delete everything if a failure was + encountered at any point. + + + + + The method should stop processing any additional files and immediately return upon encountering an error. + Cannot be combined with + + + + + The method should stop processing any additional files and immediately throw the current error. + Cannot be combined with + + + + + Determines how we handle downloading and uploading folders + + + + + Dangerous but useful method! + Uploads/downloads all the missing files to update the server/local filesystem. + Deletes the extra files to ensure that the target is an exact mirror of the source. + + + + + Safe method! + Uploads/downloads all the missing files to update the server/local filesystem. + + + + + Different types of hashing algorithms for computing checksums. + + + + + Automatic algorithm, or hashing not supported. + + + + + SHA-1 algorithm + + + + + SHA-256 algorithm + + + + + SHA-512 algorithm + + + + + MD5 algorithm + + + + + CRC algorithm + + + + + IP Versions to allow when connecting + to a server. + + + + + Unknown protocol. + + + + + Internet Protocol Version 4 + + + + + Internet Protocol Version 6 + + + + + Allow any supported version + + + + + Flags that can control how a file listing is performed. If you are unsure what to use, set it to Auto. + + + + + Tries machine listings (MDTM command) if supported, + and if not then falls back to OS-specific listings (LIST command) + + + + + Load the modify date using MDTM when it could not + be parsed from the server listing. This only pertains + to servers that do not implement the MLSD command. + + + + + Load the file size using the SIZE command when it + could not be parsed from the server listing. This + only pertains to servers that do not support the + MLSD command. + + + + + Combines the Modify and Size flags + + + + + Show hidden/dot files. This only pertains to servers + that do not support the MLSD command. This option + makes use the non standard -a parameter to LIST to + tell the server to show hidden files. Since it's a + non-standard option it may not always work. MLSD listings + have no such option and whether or not a hidden file is + shown is at the discretion of the server. + + + + + Force the use of OS-specific listings (LIST command) even if + machine listings (MLSD command) are supported by the server + + + + + Use the NLST command instead of LIST for a reliable file listing + + + + + Force the use of the NLST command (the slowest mode) even if machine listings + and OS-specific listings are supported by the server + + + + + Sets the ForceList flag and uses `LS' instead of `LIST' as the + command for getting a directory listing. This option overrides + ForceNameList and ignores the AllFiles flag. + + + + + Gets files within subdirectories as well. Adds the -r option to the LIST command. + Some servers may not support this feature. + + + + + Do not retrieve path when no path is supplied to GetListing(), + instead just execute LIST with no path argument. + + + + + Include two extra items into the listing, for the current directory (".") + and the parent directory (".."). Meaningless unless you want these two + items for some reason. + + + + + Force the use of STAT command for getting file listings + + + + + Determines how we handle partially downloaded files + + + + + Restart the download of a file if it is partially downloaded. + Overwrites the file if it exists on disk. + + + + + Resume the download of a file if it is partially downloaded. + Appends to the file if it exists, by checking the length and adding the missing data. + If the file doesn't exist on disk, a new file is created. + + + + + Blindly skip downloading the file if it exists on disk, without any more checks. + This is only included to be compatible with legacy behaviour. + + + + + Append is now renamed to Resume. + + + + + Type of file system of object + + + + + The default subtype. + + + + + A sub directory within the listed directory. + (Only set when machine listing is available and type is 'dir') + + + + + The self directory. + (Only set when machine listing is available and type is 'cdir') + + + + + The parent directory. + (Only set when machine listing is available and type is 'pdir') + + + + + Type of file system of object + + + + + A file + + + + + A directory + + + + + A symbolic link + + + + + Defines the operating system of the FTP server. + + + + + Unknown operating system + + + + + Definitely Windows or Windows Server + + + + + Definitely Unix or AIX-based server + + + + + Definitely VMS or OpenVMS server + + + + + Definitely IBM OS/400 server + + + + + Definitely IBM z/OS server + + + + + Definitely SUN OS/Solaris server + + + + + For setting up rules + + + + + If the value is exactly equal to X + + + + + If the value is anything except for X + + + + + If the value is less than X + + + + + If the value is less than or equal to X + + + + + If the value is more than X + + + + + If the value is more than or equal to X + + + + + If the value is between the range of X and Y + + + + + If the value is outside the range of X and Y + + + + + The type of response the server responded with + + + + + Use the custom parser that you have set on the FtpClient object (ListingCustomParser property) + + + + + Automatically detect the file listing parser to use based on the FTP server (SYST command). + + + + + Machine listing parser, works on any FTP server supporting the MLST/MLSD commands. + + + + + File listing parser for Windows/IIS. + + + + + File listing parser for Unix. + + + + + Alternate parser for Unix. Use this if the default one does not work. + + + + + File listing parser for Vax/VMS/OpenVMS. + + + + + File listing parser for IBM z/OS + + + + + File listing parser for IBM OS/400. + + + + + File listing parser for Tandem/Nonstop Guardian OS. + + + + + Types of file permissions + + + + + No access + + + + + Executable + + + + + Writable + + + + + Readable + + + + + This enum is obsolete. Please use FtpRemoteExists instead. + + + + + Defines the behavior for uploading/downloading files that already exist + + + + + Do not check if the file exists. A bit faster than the other options. + Only use this if you are SURE that the file does not exist on the server. + Otherwise it can cause the UploadFile method to hang due to filesize mismatch. + + + + + Resume uploading by appending to the remote file, but don't check if it exists and add missing data. + This might be required if you don't have permissions on the server to list files in the folder. + Only use this if you are SURE that the file does not exist on the server otherwise it can cause the UploadFile method to hang due to filesize mismatch. + + + + + Append the local file to the end of the remote file, but don't check if it exists and add missing data. + This might be required if you don't have permissions on the server to list files in the folder. + Only use this if you are SURE that the file does not exist on the server otherwise it can cause the UploadFile method to hang due to filesize mismatch. + + + + + Skip the file if it exists, without any more checks. + + + + + Overwrite the file if it exists. + + + + + Resume uploading by appending to the remote file if it exists. + It works by checking the remote file length and adding the missing data. + + + + + Append the local file to the end of the remote file. + + + + + Append is now renamed to Resume. Alternatively you can use AddToEnd. + + + + + The type of response the server responded with + + + + + No response + + + + + Success + + + + + Success + + + + + Success + + + + + Temporary failure + + + + + Permanent failure + + + + + Determines how SSL Buffering is handled + + + + + Enables buffering in all cases except when using FTP proxies. + + + + + Always disables SSL Buffering to reduce FTPS connectivity issues. + + + + + Always enables SSL Buffering to massively speed up FTPS operations. + + + + + Defines the type of the FTP server software. + Add constants here as you add detection scripts for individual server types. + + + + + Unknown FTP server software + + + + + Definitely Apache FTP server + + + + + Definitely BFTPd server + + + + + Definitely Cerberus FTP server + + + + + Definitely CrushFTP server + + + + + Definitely D-Link FTP server + + + + + Definitely FileZilla server + + + + + Definitely FritzBox FTP server + + + + + Definitely FTP2S3 gateway server + + + + + Definitely glFTPd server + + + + + Definitely GlobalScape EFT server + + + + + Definitely Homegate FTP server + + + + + Definitely Huawei Technologies HG5xxx series FTP server + + + + + Definitely IBM z/OS FTP server + + + + + Definitely IBM OS/400 FTP server + + + + + Definitely ABB IDAL FTP server + + + + + Definitely MikroTik RouterOS FTP server + + + + + Definitely HP NonStop/Tandem server + + + + + Definitely OpenVMS server + + + + + Definitely ProFTPD server + + + + + Definitely PureFTPd server + + + + + Definitely PyFtpdLib server + + + + + Definitely Rumpus server + + + + + Definitely Serv-U server + + + + + Definitely Sun OS Solaris FTP server + + + + + Definitely Titan FTP server + + + + + Definitely TP-LINK FTP server + + + + + Definitely VsFTPd server + + + + + Definitely Windows CE FTP server + + + + + Definitely Windows Server/IIS FTP server + + + + + Definitely WS_FTP server + + + + + Definitely WuFTPd server + + + + + Definitely XLight FTP server + + + + + Types of special UNIX permissions + + + + + No special permissions are set + + + + + Sticky bit is set + + + + + SGID bit is set + + + + + SUID bit is set + + + + + The result of an upload or download operation + + + + + The upload or download failed with an error transferring, or the source file did not exist + + + + + The upload or download completed successfully + + + + + The upload or download was skipped because the file already existed on the target + + + + + Defines the level of the tracing message. Depending on the framework version this is translated + to an equivalent logging level in System.Diagnostices (if available) + + + + + Used for logging Debug or Verbose level messages + + + + + Used for logging Informational messages + + + + + Used for logging non-fatal or ignorable error messages + + + + + Used for logging Error messages that may need investigation + + + + + Defines if additional verification and actions upon failure that + should be performed when uploading/downloading files using the high-level APIs. Ignored if the + FTP server does not support any hashing algorithms. + + + + + No verification of the file is performed + + + + + The checksum of the file is verified, if supported by the server. + If the checksum comparison fails then we retry the download/upload + a specified amount of times before giving up. (See ) + + + + + The checksum of the file is verified, if supported by the server. + If the checksum comparison fails then the failed file will be deleted. + If combined with , then + the deletion will occur if it fails upon the final retry. + + + + + The checksum of the file is verified, if supported by the server. + If the checksum comparison fails then an exception will be thrown. + If combined with , then the throw will + occur upon the failure of the final retry, and/or if combined with + the method will throw after the deletion is processed. + + + + + The checksum of the file is verified, if supported by the server. + If the checksum comparison fails then the method returns false and no other action is taken. + + + + + Flags that can control how a file listing is performed. If you are unsure what to use, set it to Auto. + + + + + Not z/OS Server + + + + + HFS / USS + + + + + z/OS classic dataset + + + + + Partitioned dataset member, RECFM != U + + + + + Partitioned dataset member, RECFM = U + + + + + SITE FILETYPE=JES LIST + + + + + Event fired if a bad SSL certificate is encountered. This even is used internally; if you + don't have a specific reason for using it you are probably looking for FtpSslValidation. + + + + + + + Event is fired when a SSL certificate needs to be validated + + The control connection that triggered the event + Event args + + + + Event args for the FtpSslValidationError delegate + + + + + The certificate to be validated + + + + + The certificate chain + + + + + Validation errors, if any. + + + + + Gets or sets a value indicating if this certificate should be accepted. The default + value is false. If the certificate is not accepted, an AuthenticationException will + be thrown. + + + + + Exception triggered on FTP authentication failures + + + + + Initializes a new instance of a FtpAuthenticationException + + Status code + Associated message + + + + Initializes a new instance of a FtpAuthenticationException + + The FtpReply to build the exception from + + + + Exception triggered on FTP command failures + + + + + Gets the completion code associated with the response + + + + + The type of response received from the last command executed + + + + + Setup the error message string + + + + + Initializes a new instance of a FtpResponseException + + Status code + Associated message + + + + Initializes a new instance of a FtpResponseException + + The FtpReply to build the exception from + + + + FTP related error + + + + + Initializes a new instance of the class. + + The error message + + + + Initializes a new instance of the class with an inner exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Exception is thrown when the required hash algorithm is unsupported by the server. + + + + + Gets the unsupported hash algorithm + + + + + Default constructor + + + + + Algorithm-specific constructor + + + + + Exception is thrown when TLS/SSL encryption could not be negotiated by the FTP server. + + + + + AuthenticationException that caused this. + + + + + Default constructor + + + + + Custom error message + + Error message + + + + Exception thrown by FtpListParser when parsing of FTP directory listing fails. + + + + + Creates a new FtpListParseException. + + + + + Exception is thrown by FtpClient/AsyncFtpClient when the primary file or folder to be downloaded is missing. + + + + + Gets the type of file system object. + + + + + Gets the full path name to the file or folder. + + + + + Gets the name of the file or folder. Does not include the full path. + + + + + Creates a new FtpMissingObjectException. + + The original exception. + + + + Exception is thrown by FtpSocketStream when there is no FTP server socket to connect to. + + + + + Creates a new FtpMissingSocketException. + + The original exception. + + + + FtpProtocolUnsupportedException + + + + + FtpProtocolUnsupportedException + + Error message + + + + FtpProxyException + + + + + FtpProxyException + + + + + FtpProxyException + + + + + FtpProxyException + + + + + Exception is thrown when TLS/SSL encryption could not be negotiated by the FTP server. + + + + + Default constructor + + + + + Custom error message + + Error message + + + + Extension methods related to FTP tasks + + + + + Check if operation can resume after . + + Received exception. + Result of checking. + + + + Extension methods related to FTP tasks + + + + + Checks if the array is null or 0 length. + + + + + Checks if the array is null or 0 length. + + + + + Converts the arguments to an array of strings. + + + + + Ensures the given item is only added once. If it was not present true is returned, else false is returned. + + + + + Shallow clones the list by copying each item to a new list. + + + + + Extension methods related to FTP date time values + + + + + Converts the FTP date string into a DateTime object, without performing any timezone conversion. + + The date string + The client object this is done for + Date formats to try parsing the value from (eg "yyyyMMddHHmmss") + A object representing the date, or if there was a problem + + + + Generates an FTP date-string from the DateTime object, without performing any timezone conversion. + + The date value + A string representing the date + + + + Generates C# code to create this date. + + + + + Extension methods related to FTP tasks + + + + + Validates that the FtpError flags set are not in an invalid combination. + + The error handling options set + True if a valid combination, otherwise false + + + + Checks if the operation was successful or skipped (indicating success). + + + + + Checks if the operation has failed. + + + + + Extension methods related to FTP tasks + + + + + Checks if the given file exists in the given file listing. + Supports servers that return: 1) full paths, 2) only filenames, 3) full paths without slash prefixed, 4) full paths with invalid slashes + + The listing returned by GetNameListing + The full file path you want to check + + + + + Checks if the given file exists in the given file listing. + + The listing returned by GetListing + The full file path you want to check + + + + + Extension methods related to FTP tasks + + + + + Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB) + + + + + Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB) + + + + + Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB) + + + + + Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB) + + + + + Parses a line from a file listing using the first successful parser, or the specified parser. + Returns an FtpListItem object representing the parsed line, or null if the line was unable to be parsed. + + + + + the FTP connection that owns this parser + + + + + current parser, or parser set by user + + + + + parser calculated based on system type (SYST command) + + + + + if we have detected that the current parser is valid + + + + + Is the version number returned as part of the filename? + + Some VMS FTP servers do not permit a file to be deleted unless + the filename includes the version number. Note that directories are + never returned with the version number. + + + + + Initializes a new instance of the class. + + An existing object + + + + Try to auto-detect which parser is suitable given a system string. + + + + + Parse raw file from server into a file object, using the currently active parser. + + + + + Validate if the current parser is correct, or if another parser seems more appropriate. + + + + + Validate if the current parser is correct + + + + + Helper class to convert FtpHashAlgorithm + + + + + Get FtpHashAlgorithm from its string representation + + Name of the hash algorithm + The FtpHashAlgorithm + + + + Get string representation of FtpHashAlgorithm + + FtpHashAlgorithm to be converted into string + Name of the hash algorithm + + + + Get the first supported algorithm, in the standard order of preference. If no hashing algos found, returns NONE. + + + + + Parses the received FTP hash response into a new FtpHash object. + + + + + Extension methods related to FTP tasks + + + + + Returns true if the given path is a directory path. + + + + + Ensures the given directory exists. + + + + + Combine the given base path with the relative path + + + + + The local ports. + + + + + Get random local port for the given local IP address + + + + + Log a message to the given IFluentLogger class. + + + + + Get the log prefix for the given trace level type. + + + + + Checks if the given listing is a valid IBM OS/400 file listing + + + + + Parses IBM OS/400 format listings + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Parses the last modified date from IBM OS/400 format listings + + + + + Checks if the given listing is a valid IBM z/OS file listing + + + + + Parses IBM z/OS format listings + + The FTP client + A line from the listing + Current location + FtpListItem if the item is able to be parsed + + + + Parses the last modified date from IBM z/OS format listings + + + + + Checks if the given listing is a valid Machine Listing item + + + + + Parses MLSD/MLST format listings + + A line from the listing + Server capabilities + The FTP client + FtpListItem if the item is able to be parsed + + + + Parses the date modified field from MLSD/MLST format listings + + + + + Parses the file size field from MLSD/MLST format listings + + + + + Parses the permissions from MLSD/MLST format listings + + + + + Checks if the given listing is a valid NonStop file listing + + + + + Parses NonStop format listings + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Parses the directory type and file size from NonStop format listings + + + + + Parses the last modified date from NonStop format listings + + + + + Checks if the given listing is a valid Unix file listing + + + + + Parses Unix format listings + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Parses the permissions from Unix format listings + + + + + Parses the link count from Unix format listings + + + + + Parses the owner and group permissions from Unix format listings + + + + + Parses the file size from Unix format listings + + + + + Parses day-of-month from Unix format listings + + + + + Parses the file or folder name from Unix format listings + + + + + Parses the last modified date from Unix format listings + + + + + Parses the last modified year from Unix format listings + + + + + Parses the last modified date from Unix format listings + + + + + Parses Unix format listings with alternate parser + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Checks if the given listing is a valid VMS file listing + + + + + Parses Vax/VMS format listings + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Parses the file size from Vax/VMS format listings + + + + + Parses the owner and group permissions from Vax/VMS format listings + + + + + Parses the permissions from Vax/VMS format listings + + + + + Parses the last modified date from Vax/VMS format listings + + + + + Checks if the given listing is a valid IIS/DOS file listing + + + + + Parses IIS/DOS format listings + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Parses the file or folder name from IIS/DOS format listings + + + + + Parses the file size and checks if the item is a directory from IIS/DOS format listings + + + + + Parses the last modified date from IIS/DOS format listings + + + + + Extension methods related to FTP tasks + + + + + Calculates the CHMOD value from the permissions flags + + + + + Calculates the permissions flags from the CHMOD value + + + + + Calculate the CHMOD integer value given a set of permissions. + + + + + Checks if the permission value has the given flag + + + + + Extension methods related to FTP tasks + + + + + Checks if this FTP path is a top level path + + + + + Checks if the given path is a root directory or working directory path + + + + + + + Converts the specified path into a valid FTP file system path. + Replaces invalid back-slashes with valid forward-slashes. + Replaces multiple slashes with single slashes. + Removes the ending postfix slash if any. + + The file system path + A path formatted for FTP + + + + Creates a valid FTP path by appending the specified segments to this string + + This string + The path segments to append + A valid FTP path + + + + Gets the parent directory path (formatted for a FTP server) + + The path + The parent directory path + + + + Gets the file name and extension from the path. + Supports paths with backslashes and forwardslashes. + + The full path to the file + The file name + + + + Converts a Windows or Unix-style path into its segments for segment-wise processing + + + + + + Get the full path of a given FTP Listing entry + + + + + Extension methods related to FTP tasks + + + + + Checks if every character in the string is whitespace, or the string is null. + + + + + Checks if the string is null or 0 length. + + + + + Join the given strings by a delimiter. + + + + + Join the given strings by a delimiter. + + + + + Adds a prefix to the given strings, returns a new array. + + + + + Adds a prefix to the given strings, returns a new array. + + + + + Ensure a string has the given prefix + + + + + Ensure a string has the given postfix + + + + + Remove a prefix from a string, only if it has the given prefix + + + + + Remove a postfix from a string, only if it has the given postfix + + + + + Escape a string into a valid C# string literal. + Implementation from StackOverflow - https://stackoverflow.com/a/14087738 + + + + + Split into fields by splitting on tokens + + + + + Checks if all the characters in this string are digits or dots + + + + + Checks if the string contains any of the given values + + + + + Checks if RexEx Pattern is valid + + + + + Checks if the reply contains any of the known error strings, by checking in case-insensitive manner. + + + + + Checks if the string equals any of these values, by checking in case-sensitive manner. + + + + + Checks if the string contains the given substring in a case-insensitive manner. + + + + + Checks if the string starts with the given substring in a case-insensitive manner. + + + + + Checks if the string ends with the given substring in a case-insensitive manner. + + + + + Extension methods related to FTP time span values + + + + + Extension methods related to FTP tasks + + + + + Ensures that the URI points to a server, and not a directory or invalid path. + + + + + + The current "state" of the client + + + + + Used to improve performance of OpenPassiveDataStream. + Enhanced-passive mode is tried once, and if not supported, is not tried again. + + + + + Used to improve performance of GetFileSize. + SIZE command is tried, and if the server cannot send it in ASCII mode, we switch to binary each time you call GetFileSize. + However most servers will support ASCII, so we can get the file size without switching to binary, improving performance. + + + + + Used to improve performance of GetListing. + You can set this to true by setting the RecursiveList property. + + + + + Used to automatically dispose cloned connections after FXP transfer has ended. + + + + + Cached value of the last read working directory (absolute path). + + + + + Cached value of the last set hash algorithm. + + + + + Did the FTPS connection fail during the last Connect/ConnectAsync attempt? + + + + + Did the UTF8 encoding setting work during the last Connect/ConnectAsync attempt? + + + + + Store the current data type setting + + + + + Allow checking for stale data on socket? + + + + + We are in a sequence of commands that should not be interrupted + by an automatic reconnect + + + + + Count the reconnects + Reset this value when a non-reconnect takes place + + + + + These flags must be reset every time we connect, to allow for users to connect to + different FTP servers with the same client object. + + + + + These flags must be copied when we quickly clone the connection. + + + + + Avoid repeated DNS queries for the same host name + + + + + During and after a z/OS GetListing(), this value stores the + z/OS filesystem realm that was encountered. + The value is used internally to control the list parse mode + + + + + During and after a z/OS GetListing(), this value stores the + the LRECL that was encountered (for a realm = Member only). + The value is used internally to calculate member sizes + + + + + Holds all the configuration settings for a single FTP client. + One FtpConfig object can only be bound to one client at a time. + If you want to reuse it across multiple FTP clients, then clone it and then reuse it. + + + + + Which FtpClient are we bound to? + + + + + Should the function calls be logged in Verbose mode? + + + + + Should the FTP server host IP/domain be shown in the logs (true) or masked out (false)? + + + + + Should the FTP username be shown in the logs (true) or masked out (false)? + + + + + Should the FTP password be shown in the logs (true) or masked out (false)? + + + + + Should the command duration be shown after each log command? + + + + + Flags specifying which versions of the internet protocol (IPV4 or IPV6) to + support when making a connection. All addresses returned during + name resolution are tried until a successful connection is made. + You can fine tune which versions of the internet protocol to use + by adding or removing flags here. I.e., setting this property + to FtpIpVersion.IPv4 will cause the connection process to + ignore IPv6 addresses. The default value is ANY version. + + + + + Gets or sets the length of time in milliseconds + that must pass since the last socket activity + before calling + on the socket to test for connectivity. + Setting this interval too low will + have a negative impact on performance. Setting this + interval to 0 disables Polling all together. + The default value is 15 seconds. + + + + + Gets or sets a value indicating whether a test should be performed to + see if there is stale (unrequested data) sitting on the socket. In some + cases the control connection may time out but before the server closes + the connection it might send a 4xx response that was unexpected and + can cause synchronization errors with transactions. To avoid this + problem the method checks to see if there is any data + available on the socket before executing a command. On Azure hosting + platforms this check can cause an exception to be thrown. In order + to work around the exception you can set this property to false + which will skip the test entirely however doing so eliminates the + best effort attempt of detecting such scenarios. See this thread + for more details about the Azure problem: + https://netftp.codeplex.com/discussions/535879 + + + + + Gets or sets the length of time in milliseconds after last command + (NOOP or other) that a NOOP command is sent by /. + This is called during downloading/uploading. Setting this + interval to 0 disables / all together. + The default value is 0 (disabled). + + + + + When this value is set to true (default) the control connection + will set which features are available by executing the FEAT command + when the connect method is called. + + + + + Client certificates to be used in SSL authentication process + + + + + Delegate used for resolving local address, used for active data connections + This can be used in case you're behind a router, but port forwarding is configured to forward the + ports from your router to your internal IP. In that case, we need to send the router's IP instead of our internal IP. + + + + + Ports used for Active Data Connection. + Useful when your FTP server has certain ports that are blocked or used for other purposes. + + + + + Ports blocked for Passive Data Connection (PASV and EPSV). + Useful when your FTP server has certain ports that are blocked or used for other purposes. + + + + + Maximum number of passive connections made in order to find a working port for Passive Data Connection (PASV and EPSV). + Only used if PassiveBlockedPorts is non-null. + + + + + Data connection type, default is AutoPassive which tries + a connection with EPSV first and if it fails then tries + PASV before giving up. If you know exactly which kind of + connection you need you can slightly increase performance + by defining a specific type of passive or active data + connection here. + + + + + Disconnect from the server without sending QUIT. This helps + work around IOExceptions caused by buggy connection resets + when closing the control connection. + + + + + Gets or sets the length of time in milliseconds to wait for a connection + attempt to succeed before giving up. Default is 0 (Use OS default timeout) + See: https://github.com/robinrodricks/FluentFTP/wiki/FTP-Connection#connection-timeout-settings + and: https://github.com/robinrodricks/FluentFTP/wiki/FTP-Connection#faq_timeoutwindows + + + + + Gets or sets the length of time wait in milliseconds for data to be + read from the underlying stream. The default value is 15000 (15 seconds). + + + + + Gets or sets the length of time in milliseconds for a data connection + to be established before giving up. Default is 15000 (15 seconds). + + + + + Gets or sets the length of time in milliseconds the data channel + should wait for the server to send data. Default value is + 15000 (15 seconds). + + + + + Gets or sets a value indicating if should be set on + the underlying stream's socket. If the connection is alive, the option is + adjusted in real-time. The value is stored and the KeepAlive option is set + accordingly upon any new connections. The value set here is also applied to + all future data streams. It has no affect on cloned control connections or + data connections already in progress. The default value is false. + + + + + Type of SSL to use, or none. Default is none. Explicit is TLS, Implicit is SSL. + + + + + Indicates if data channel transfers should be encrypted. Only valid if + property is not equal to . + + + + + Encryption protocols to use. Only valid if EncryptionMode property is not equal to . + Default value is .NET Framework defaults from the class. + + + + + Whether to use SSL Buffering to speed up data transfer during FTP operations. + SSL Buffering is always disabled on .NET 5.0 and later due to platform issues (see issue 682 in FluentFTP issue tracker). + + + + + Gets or sets the max number of socket write/read transactions + before an automatic disconnect/reconnect is performed. + This is required to bypass an SSL issue that occurs after a specific number of transactions. + Set to zero to disable automatic reconnects. + + + + + Accept any SSL certificate received from the server and skip performing + the validation using the ValidateCertificate callback. + Useful for Powershell users. + + + + + Indicates if the certificate revocation list is checked during authentication. + Useful when you need to maintain the certificate chain validation, + but skip the certificate revocation check. + WARNING: Enabling this can cause memory leaks in some conditions (see issue #710 for details). + + + + + Controls if the file listings are downloaded in Binary or ASCII mode. + + + + + File listing parser to be used. + Automatically calculated based on the type of the server at the time of connection. + If you want to override this property, make sure to do it after calling Connect. + + + + + Culture used to parse file listings + + + + + Custom file listing parser to be used. + + + + + Callback format to implement your custom FTP listing line parser. + + The line from the listing + The server capabilities + The FTP client + Return an FtpListItem object if the line can be parsed, else return null + + + + The timezone of the FTP server. If the server is in Tokyo with UTC+9 then set this to 9. + If the server returns timestamps in UTC then keep this 0. + + + + + The timezone of your machine. If your machine is in Tokyo with UTC+9 then set this to 9. + If your machine is synchronized with UTC then keep this 0. + + + + + Server timestamps are converted into the given timezone. + ServerTime will return the original timestamp. + LocalTime will convert the timestamp into your local machine's timezone. + UTC will convert the timestamp into UTC format (GMT+0). + You need to set TimeZone and LocalTimeZone (.NET core only) for these to work. + + + + + If true, increases performance of GetListing by reading multiple lines + of the file listing at once. If false then GetListing will read file + listings line-by-line. If GetListing is having issues with your server, + set it to false. + + The number of bytes read is based upon . + + + + + Bytes to read during GetListing. Only honored if is true. + + + + + Gets or sets the number of bytes transferred in a single chunk (a single FTP command). + Used by / and / + to transfer large files in multiple chunks. + + + + + Gets or sets the size of the file buffer when reading and writing files on the local file system. + Used by / and / + and all the other file and directory transfer methods. + + + + + Gets or sets the retry attempts allowed when a verification failure occurs during download or upload. + This value must be set to 1 or more. + + + + + Rate limit for uploads in kbyte/s. Set this to 0 for unlimited speed. + Honored by high-level API such as Upload(), Download(), UploadFile(), DownloadFile().. + + + + + Rate limit for downloads in kbytes/s. Set this to 0 for unlimited speed. + Honored by high-level API such as Upload(), Download(), UploadFile(), DownloadFile().. + + + + + Controls if zero-byte files should be downloaded or skipped. + If false, then no file is created/overwritten into the filesystem. + + + + + Controls if the high-level API uploads files in Binary or ASCII mode. + + + + + Controls if the high-level API downloads files in Binary or ASCII mode. + + + + + Controls if the UploadDirectory API deletes the excluded files when uploading in Mirror mode. + If true, then any files that are excluded will be deleted from the FTP server if they are + excluded from the local system. This is done to keep the server in sync with the local system. + But if it is false, the excluded files are not touched on the server, and simply ignored. + + + + + Controls if the DownloadDirectory API deletes the excluded files when downloading in Mirror mode. + If true, then any files that are excluded will be deleted from the local filesystem if they are + excluded from the FTP server. This is done to keep the local filesystem in sync with the FTP server. + But if it is false, the excluded files are not touched on the local filesystem, and simply ignored. + + + + + Controls if the FXP server-to-server file transfer API uses Binary or ASCII mode. + + + + + Controls how often the progress reports are sent during an FXP file transfer. + The default value is 1000 (1 second). + + + + + Controls if the HOST command is sent immediately after the handshake. + Useful when you are using shared hosting and you need to inform the + FTP server which domain you want to connect to. + + + + + Controls which domain is sent with the HOST command. + If this is null, then the Host parameter of the FTP client is sent. + + + + + The local socket will be bound to the given local IP/interface. + This is useful if you have several usable public IP addresses and want to use a particular one. + + + + + Bind this FtpConfig object to the given FTP client. + + + + + + Return a deep clone of this FtpConfig object. + + + + + Copy settings from one config object to another. + + + + + Object that keeps track of an active FXP Connection between 2 FTP servers. + + + + + A connection to the FTP server where the file or folder is currently stored + + + + + A connection to the destination FTP server where you want to create the file or folder + + + + + A connection to the destination FTP server used to track progress while transfer is going on. + + + + + Gets a value indicating if this object has already been disposed. + + + + + Closes an FXP connection by disconnecting and disposing off the FTP clients that are + cloned for this FXP connection. Manually created FTP clients are untouched. + + + + + Object that keeps track of an active FXP Connection between 2 FTP servers. + + + + + A connection to the FTP server where the file or folder is currently stored + + + + + A connection to the destination FTP server where you want to create the file or folder + + + + + A connection to the destination FTP server used to track progress while transfer is going on. + + + + + Gets a value indicating if this object has already been disposed. + + + + + Closes an FXP connection by disconnecting and disposing off the FTP clients that are + cloned for this FXP connection. Manually created FTP clients are untouched. + + + + + Represents a computed hash of an object + on the FTP server. See the following link + for more information: + http://tools.ietf.org/html/draft-bryan-ftpext-hash-02 + + + + + Gets the algorithm that was used to compute the hash + + + + + Gets the computed hash returned by the server + + + + + Gets a value indicating if this object represents a + valid hash response from the server. + + + + + Computes the hash for the specified file and compares + it to the value in this object. CRC hashes are not supported + because there is no built-in support in the .net framework and + a CRC implementation exceeds the scope of this project. If you + attempt to call this on a CRC hash a will + be thrown. + + The file to compute the hash for + True if the computed hash matches what's stored in this object. + Thrown if called on a CRC Hash + + + + Computes the hash for the specified stream and compares + it to the value in this object. CRC hashes are not supported + because there is no built-in support in the .net framework and + a CRC implementation exceeds the scope of this project. If you + attempt to call this on a CRC hash a will + be thrown. + + The stream to compute the hash for + True if the computed hash matches what's stored in this object. + Thrown if called on a CRC Hash + + + + Creates an empty instance. + + + + + Represents a file system object on the server + + + + + Blank constructor, you will need to fill arguments manually. + + NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing(). + + + + + Constructor with mandatory arguments filled. + + NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing(). + + + + + Constructor with mandatory arguments filled. + + NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing(). + + + + + Gets the type of file system object. + + + + + Gets the sub type of file system object. + + + + + Gets the full path name to the file or folder. + + + + + Gets the name of the file or folder. Does not include the full path. + + + + + Gets the target a symbolic link points to. + + + + + Gets the number of links pointing to this file. Only supplied by Unix servers. + + + + + Gets the object that the LinkTarget points to. + + + + + Gets the last write time of the object after timezone conversion (if enabled). + + + + + Gets the created date of the object after timezone conversion (if enabled). + + + + + Gets the last write time of the object before any timezone conversion. + + + + + Gets the created date of the object before any timezone conversion. + + + + + Gets the size of the object. + + + + + Gets special UNIX permissions such as Sticky, SUID and SGID. + + + + + Gets the owner permissions. + + + + + Gets the group permissions. + + + + + Gets the others permissions. + + + + + Gets the raw string received for the file permissions. + Use this if the other properties are blank/invalid. + + + + + Gets the file permissions in the CHMOD format. + + + + + Gets the raw string received for the file's GROUP permissions. + Use this if the other properties are blank/invalid. + + + + + Gets the raw string received for the file's OWNER permissions. + Use this if the other properties are blank/invalid. + + + + + Gets the input string that was parsed to generate the + values in this object. + + + + + Returns a string representation of this object and its properties + + A string representing this object + + + + Returns a code representation of this object and its properties + + + + + Metadata of a single log message. + + + + + The current "profile" defining the client + + + + + The host IP address or URL of the FTP server + + + + + The FTP username and password used to login + + + + + A working Encryption Mode found for this profile + + + + + A working Ssl Protocol setting found for this profile + + + + + A working Data Connection Type found for this profile + + + + + A working Encoding setting found for this profile + + + + + A working Timeout setting found for this profile, or 0 if default value should be used + + + + + A working SocketPollInterval setting found for this profile, or 0 if default value should be used + + + + + A working RetryAttempts setting found for this profile, or 0 if default value should be used + + + + + If the server surely supports the given encoding. + + + + + Generates valid C# code for this connection profile. + + + + + + Class to report FTP file transfer progress during upload or download of files + + + + + A value between 0-100 indicating percentage complete, or -1 for indeterminate. + Used to track the progress of an individual file transfer. + + + + + A value indicating how many bytes have been transferred. + When unable to calculate percentage, having the partial byte count may help in providing some feedback. + + + + + A value representing the current Transfer Speed in Bytes per seconds. + Used to track the progress of an individual file transfer. + + + + + A value representing the calculated 'Estimated time of arrival'. + Used to track the progress of an individual file transfer. + + + + + Stores the absolute remote path of the current file being transferred. + + + + + Stores the absolute local path of the current file being transferred. + + + + + Stores the index of the file in the listing. + Only used when transferring multiple files or an entire directory. + + + + + Stores the total count of the files to be transferred. + Only used when transferring multiple files or an entire directory. + + + + + Create a new FtpProgress object for meta progress info. + + + + + Create a new FtpProgress object for individual file transfer progress. + + + + + Convert Transfer Speed (bytes per second) in human readable format + + + + + Create a new FtpProgress object for a file transfer and calculate the ETA, Percentage and Transfer Speed. + + + + + Connection profile for a proxy connection. + + + + + Proxy server host name. Mandatory. + + + + + Proxy server port. Mandatory. + + + + + Proxy server login credentials. Mandatory if your proxy needs authentication, leave it blank otherwise. + + + + + FTP server host name. Optional. You can either set it here or set `ftpClient.Host` later on. + + + + + FTP server port. Optional. You can either set it here or set `ftpClient.Port` later on. + + + + + FTP server login credentials. Optional. You can either set it here or set `ftpClient.Credentials` later on. + + + + + Represents a reply to an event on the server + + + + + The type of response received from the last command executed + + + + + The status code of the response + + + + + The message, if any, that the server sent with the response + + + + + Informational messages sent from the server + + + + + General success or failure of the last command executed, by checking the FTP status code. + 1xx, 2xx, 3xx indicate success and 4xx, 5xx are failures. + + + + + Gets the error message including any informational output + that was sent by the server. Sometimes the final response + line doesn't contain anything informative as to what was going + on with the server. Instead it may send information messages so + in an effort to give as meaningful as a response as possible + the informational messages will be included in the error. + + + + + Stores the command that produced this reply (if any) + + + + + Stores the result of a file transfer when UploadDirectory or DownloadDirectory is used. + + + + + Returns true if the file was downloaded, false if it was uploaded. + + + + + Gets the type of file system object. + + + + + Gets the size of the file, or 0 if unknown. + + + + + Gets the name and extension of the file. + + + + + Stores the absolute remote path of the current file being transferred. + + + + + Stores the absolute local path of the current file being transferred. + + + + + Gets the error that occurring during transferring this file, if any. + + + + + Returns true if the file was downloaded/uploaded, or the file was already existing with the same file size. + + + + + Was the file skipped? + + + + + Was the file skipped due to failing the rule condition? + + + + + Was there an error during transfer? You can read the Exception property for more details. + + + + + Convert this result to a FTP list item. + + + + + Human readable results + + + + + Reply from a SIZE command + + + + + The returned file size + + + + + The reply we got + + + + + A FTP client with a user@host proxy identification, that works with Blue Coat FTP Service servers. + + The 'blue coat variant' forces the client to wait for a 220 FTP response code in + the handshake phase. + + + + A FTP client with a user@host proxy identification. + Proxy information + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + Redefine the first dialog: auth with proxy information + + + A FTP client with a HTTP 1.1 proxy implementation. + + + A FTP client with a HTTP 1.1 proxy implementation + Proxy information + + + Redefine the first dialog: HTTP Frame for the HTTP 1.1 Proxy + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Connects to the server using an existing + + The existing socket stream + The token that can be used to cancel the entire process + + + + Connects to the server using an existing + + The existing socket stream + Host name + Port number + IP version to use + IP version to use + + + + Abstraction of an FtpClient with a proxy + + + + The proxy connection info. + + + A FTP client with a HTTP 1.1 proxy implementation + Proxy information + + + Redefine connect for FtpClient : authentication on the Proxy + The socket stream. + Cancellation token. + + + + A FTP client with a SOCKS4a proxy implementation. + + + + + Setup a SOCKS4a proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Called during . Typically extended by FTP proxies. + + + + + Connect + + + + + A FTP client with a SOCKS4 proxy implementation. + + + + + Setup a SOCKS4 proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Called during . Typically extended by FTP proxies. + + + + + Connect + + + + + A FTP client with a SOCKS5 proxy implementation. + + + + + Setup a SOCKS5 proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Connect + + + + A FTP client with a user@host proxy identification. + + + A FTP client with a user@host proxy identification. + Proxy information + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + Redefine the first dialog: auth with proxy information + + + + This class is not reusable. + You have to create a new instance for each connection / attempt. + + + + + This class is not reusable. + You have to create a new instance for each connection / attempt. + + + + + Translate the host name or IP address to a byte array. + + Host name or IP address. + Byte array representing IP address in bytes. + + + + Translate the destination port value to a byte array. + + Destination port. + Byte array representing an 16 bit port number as two bytes. + + + + This class is not reusable. + You have to create a new instance for each connection / attempt. + + + + + A FTP client with a user@host proxy identification, that works with Blue Coat FTP Service servers. + + The 'blue coat variant' forces the client to wait for a 220 FTP response code in + the handshake phase. + + + + A FTP client with a user@host proxy identification. + Proxy information + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + Redefine the first dialog: auth with proxy information + + + A FTP client with a HTTP 1.1 proxy implementation. + + + A FTP client with a HTTP 1.1 proxy implementation + Proxy information + + + Redefine the first dialog: HTTP Frame for the HTTP 1.1 Proxy + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Connects to the server using an existing + + The existing socket stream + + + + Connects to the server using an existing + + The existing socket stream + Host name + Port number + IP version to use + + + + Abstraction of an FtpClient with a proxy + + + + The proxy connection info. + + + A FTP client with a HTTP 1.1 proxy implementation + Proxy information + + + Redefine connect for FtpClient : authentication on the Proxy + The socket stream. + + + + A FTP client with a SOCKS4a proxy implementation. + + + + + Setup a SOCKS4a proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Called during Connect(). Typically extended by FTP proxies. + + + + + Connect + + + + + + Connect + + + + + + + + + A FTP client with a SOCKS4 proxy implementation. + + + + + Setup a SOCKS4 proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Called during Connect(). Typically extended by FTP proxies. + + + + + Connect + + + + + Connect + + + + + A FTP client with a SOCKS5 proxy implementation. + + + + + Setup a SOCKS5 proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Connect + + + + + Connect + + + + A FTP client with a user@host proxy identification. + + + A FTP client with a user@host proxy identification. + Proxy information + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + Redefine the first dialog: auth with proxy information + + + + Only accept files that have the given extension, or exclude files of a given extension. + + + + + If true, only files of the given extension are uploaded or downloaded. If false, files of the given extension are excluded. + + + + + The extensions to match + + + + + Only accept files that have the given extension, or exclude files of a given extension. + + If true, only files of the given extension are uploaded or downloaded. If false, files of the given extension are excluded. + The extensions to match + + + + Checks if the files has the given extension, or exclude files of the given extension. + + + + + Only accept files whose names match the given regular expression(s), or exclude files that match. + + + + + If true, only items where one of the supplied regex pattern matches are uploaded or downloaded. + If false, items where one of the supplied regex pattern matches are excluded. + + + + + The files names to match + + + + + Only accept items that match one of the supplied regex patterns. + + If true, only items where one of the supplied regex pattern matches are uploaded or downloaded. If false, items where one of the supplied regex pattern matches are excluded. + The list of regex patterns to match. Only valid patterns are accepted and stored. If none of the patterns are valid, this rule is disabled and passes all objects. + + + + Checks if the FtpListItem Name does match any RegexPattern + + + + + Only accept files that have the given name, or exclude files of a given name. + + + + + If true, only files of the given name are uploaded or downloaded. If false, files of the given name are excluded. + + + + + The files names to match + + + + + Only accept files that have the given name, or exclude files of a given name. + + If true, only files of the given name are downloaded. If false, files of the given name are excluded. + The files names to match + + + + Checks if the files has the given name, or exclude files of the given name. + + + + + Only accept folders whose names match the given regular expression(s), or exclude folders that match. + + + + + If true, only folders where one of the supplied regex pattern matches are uploaded or downloaded. + If false, folders where one of the supplied regex pattern matches are excluded. + + + + + The files names to match + + + + + Which path segment to start checking from + + + + + Only accept items that one of the supplied regex pattern. + + If true, only folders where one of the supplied regex pattern matches are uploaded or downloaded. If false, folders where one of the supplied regex pattern matches are excluded. + The list of regex patterns to match. Only valid patterns are accepted and stored. If none of the patterns are valid, this rule is disabled and passes all objects. + Which path segment to start checking from. 0 checks root folder onwards. 1 skips root folder. + + + + Checks if the FtpListItem Name does match any RegexPattern + + + + + Only accept folders that have the given name, or exclude folders of a given name. + + + + + Common folders to blacklist + + + + + If true, only folders of the given name are uploaded or downloaded. + If false, folders of the given name are excluded. + + + + + The folder names to match + + + + + Which path segment to start checking from + + + + + Only accept folders that have the given name, or exclude folders of a given name. + + If true, only folders of the given name are downloaded. If false, folders of the given name are excluded. + The folder names to match + Which path segment to start checking from. 0 checks root folder onwards. 1 skips root folder. + + + + Checks if the folders has the given name, or exclude folders of the given name. + + + + + Base class used for all FTP Rules. Extend this class to create custom rules. + You only need to provide an implementation for IsAllowed, and add any custom arguments that you require. + + + + + Rule object + + + + + Returns true if the object has passed this rules. + + + + + Returns true if the object has passed all the rules. + + + + + Only accept files that are of the given size, or within the given range of sizes. + + + + + Which operator to use + + + + + The first value, required for all operators + + + + + The second value, only required for BetweenRange and OutsideRange operators + + + + + Only accept files that are of the given size, or within the given range of sizes. + + Which operator to use + The first value, required for all operators + The second value, only required for BetweenRange and OutsideRange operators. + + + + Checks if the file is of the given size, or within the given range of sizes. + + + + + The base class used for all FTP server specific support. + You may extend this class to implement support for custom FTP servers. + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return true if your server is detected by the given SYST response message. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Return your FTP server's default capabilities. + Used if your server does not broadcast its capabilities using the FEAT command. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Perform server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Perform async server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Perform server-specific create directory commands here. + Return true if you executed a server-specific command. + + + + + Perform async server-specific create directory commands here. + Return true if you executed a server-specific command. + + + + + Perform server-specific post-connection commands here. + Return true if you executed a server-specific command. + + + + + Perform server-specific post-connection commands here. + Return true if you executed a server-specific command. + + + + + Return true if your server requires custom handling of file size. + + + + + Perform server-specific file size fetching commands here. + Return the file size in bytes. + + + + + Perform server-specific file size fetching commands here. + Return the file size in bytes. + + + + + Check if the given path is a root directory on your FTP server. + If you are unsure, return false. + + + + + Skip reporting a parser error + + + + + Always read to end of stream on a download + If you are unsure, return false. + + + + + Return true if the path is an absolute path according to your server's convention. + + + + + Return true if your server requires custom handling of absolute paths. + + + + + Perform server-specific path modification here. + Return the absolute path. + + + + + Perform server-specific path modification here. + Return the absolute path. + + + + + Return true if your server requires custom handling of absolute dir. + + + + + Perform server-specific path modification here. + Return the absolute dir. + + + + + Perform server-specific path modification here. + Return the absolute path. + + + + + Return true if your server requires custom handling of path and filename concatenation. + + + + + Perform server-specific path modification here. + Return concatenation of path and filename + + + + + Perform server-specific path modification here. + Return concatenation of path and filename + + + + + Return true if your server requires custom handling to handle listing analysis. + + + + + Get the full path of a given FTP Listing entry + Return null indicates custom code decided not to handle this + + + + + Disable SIZE command even if server says it is supported + + + + + Disable MDTM command even if server says it is supported + + + + + Return true if your server requires custom handling to check file existence. + + + + + Check for existence of a file + Return null indicates custom code decided not to handle this + + + + + Check for existence of a file + Return null indicates custom code decided not to handle this + + + + + Server-specific handling for Apache (MINA) FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given SYST response message. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Server-specific handling for BFTPd FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for Cerberus FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for CrushFTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for D-Link FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for FileZilla FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Server-specific handling for FritzBox FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for FTP2S3Gateway FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for glFTPd FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for GlobalScapeEFT FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for HomegateFTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for Huawei FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for IBMOS400FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Server-specific handling for IBMzOSFTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Perform server-specific post-connection commands here. + Return true if you executed a server-specific command. + + + + + Perform server-specific post-connection commands here. + Return true if you executed a server-specific command. + + + + + Get z/OS file size + + The client object this is being done for + The full path of the file whose size you want to retrieve + + Make sure you are in the right realm (z/OS or HFS) before doing this + + The size of the file + + + + Get z/OS file size + + The client object this is being done for + The full path of the file whose size you want to retrieve + The token that can be used to cancel the entire process + + Make sure you are in the right realm (z/OS or HFS) before doing this + + The size of the file + + + + Check if the given path is a root directory on your FTP server. + If you are unsure, return false. + + + + + Skip reporting a parser error + + + + + Always read to End of stream on a download + + + + + Return true if your server requires custom handling of absolute path. + + + + + Perform server-specific path modification here. + Return the absolute path. + + + + + Perform server-specific path modification here. + Return the absolute path. + + + + + Return true if your server requires custom handling of absolute dir. + + + + + Perform server-specific path modification here. + Return null indicates custom code decided not to handle this + Return the absolute dir. + + + + + Perform server-specific path modification here. + Return null indicates custom code decided not to handle this + Return the absolute dir. + + + + + Return true if your server requires custom handling of path and filename concatenation. + + + + + Perform server-specific path modification here. + Return null indicates custom code decided not to handle this + Return concatenation of path and filename + + + + + Perform server-specific path modification here. + Return null indicates custom code decided not to handle this + Return concatenation of path and filename + + + + + Return true if your server requires custom handling to handle listing analysis. + + + + + Get the full path of a given FTP Listing entry + Return null indicates custom code decided not to handle this + + + + + Disable SIZE command even if server says it is supported + + + + + Disable MDTM command even if server says it is supported + + + + + Return true if your server requires custom handling to check file existence. + + + + + Check for existence of a file + Return null indicates custom code decided not to handle this + + + + + Check for existence of a file + Return null indicates custom code decided not to handle this + + + + + Server-specific handling for ABB IDAL FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for MikroTik RouterOS FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for NonStop/Tandem FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Server-specific handling for OpenVMS FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return true if your server is detected by the given SYST response message. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Return your FTP server's default capabilities. + Used if your server does not broadcast its capabilities using the FEAT command. + + + + + Return true if the path is an absolute path according to your server's convention. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Get the full path of a given FTP Listing entry + Return null indicates custom code decided not to handle this + + + + + Server-specific handling for ProFTPD FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Perform server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Perform async server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Perform server-specific create directory commands here. + Return true if you executed a server-specific command. + + + + + Perform async server-specific create directory commands here. + Return true if you executed a server-specific command. + + + + + Server-specific handling for PureFTPd FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Server-specific handling for PyFtpdLib FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for Rumpus FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for ServU FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Perform server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Perform async server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Server-specific handling for SolarisFTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given SYST response message. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Server-specific handling for Titan FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for TP-LINK FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for VsFTPd FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Server-specific handling for WindowsCE FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given SYST response message. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Server-specific handling for WindowsServer/IIS FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Server-specific handling for WS_FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for WuFTPd FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Return your FTP server's default capabilities. + Used if your server does not broadcast its capabilities using the FEAT command. + + + + + Server-specific handling for XLight FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Base class for data stream connections + + + + + Gets the status of the command that was used to open + this data channel + + + + + Gets or sets the control connection for this data stream. Setting + the control connection causes the object to be cloned and a new + connection is made to the server to carry out the task. This ensures + that multiple streams can be opened simultaneously. + + + + + Gets or sets the length of the stream. Only valid for file transfers + and only valid on servers that support the Size command. + + + + + Gets or sets the position of the stream + + + + + Reads data off the stream + + The buffer to read into + Where to start in the buffer + Number of bytes to read + The number of bytes read + + + + Reads data off the stream asynchronously + + The buffer to read into + Where to start in the buffer + Number of bytes to read + The cancellation token for this task + The number of bytes read + + + + Writes data to the stream + + The buffer to write to the stream + Where to start in the buffer + The number of bytes to write to the buffer + + + + Writes data to the stream asynchronously + + The buffer to write to the stream + Where to start in the buffer + The number of bytes to write to the buffer + The for this task + + + + Sets the length of this stream + + Value to apply to the Length property + + + + Sets the position of the stream. Intended to be used + internally by FtpControlConnection. + + The position + + + + Closes the connection and reads the server's reply + + + + + Creates a new data stream object + + The control connection to be used for carrying out this operation + + + + Finalizer + + + + + Stream object for the local files + + + + + Returns the file size using synchronous file I/O. + + + + + Returns the file size using async file I/O. + + + + + Returns the file size using synchronous file I/O. + + + + + Returns the file size using synchronous file I/O. + + + + + Returns a new stream to upload a file from disk. + If the file fits within the fileSizeLimit, then it is read in a single disk call and stored in memory, and a MemoryStream is returned. + If it is larger than that, then a regular read-only FileStream is returned. + + + + + Returns a new stream to download a file to disk. + If the file fits within the fileSizeLimit, then a new MemoryStream is returned. + If it is larger than that, then a regular writable FileStream is returned. + + + + + Stream class used for talking. Used by FtpClient, extended by FtpDataStream + + + + + The client this stream is associated with + + + + + This stream connection to be associated with this client + + + + + Used for tracking read/write activity on the socket + to determine if Poll() should be used to test for + socket connectivity. The socket in this class will + not know it has been disconnected if the remote host + closes the connection first. Using Poll() avoids + the exception that would be thrown when trying to + read or write to the disconnected socket. + + + + + The socket used for talking + + + + + Keep a count of command/response transactions on the + control connection + + + + + Gets or sets the length of time in milliseconds + that must pass since the last socket activity + before calling Poll() on the socket to test for + connectivity. Setting this interval too low will + have a negative impact on performance. Setting this + interval to 0 disables Poll()'ing all together. + The default value is 15 seconds. + + + + + Gets the number of available bytes on the socket, 0 if the + socket has not been initialized. This property is used internally + by FtpClient in an effort to detect disconnections and gracefully + reconnect the control connection. + + + + + Gets a value indicating if this socket stream is connected + + + + + Gets a value indicating if encryption is being used + + + + + Is this stream the control connection? + + + + + The negotiated SSL/TLS protocol version. Will have a valid value after connection is complete. + + + + + The non-encrypted stream + + + + + Gets the underlying stream, could be a NetworkStream or SslStream + + + + + Gets a value indicating if this stream can be read + + + + + Gets a value indicating if this stream if seekable + + + + + Gets a value indicating if this stream can be written to + + + + + Gets the length of the stream + + + + + Gets the current position of the stream. Trying to + set this property throws an InvalidOperationException() + + + + + Event is fired when a SSL certificate needs to be validated + + + + + Gets or sets the amount of time to wait for a read operation to complete. Default + value is Timeout.Infinite. + + + + + Gets or sets the length of time milliseconds to wait + for a connection succeed before giving up. The default + is 0 = disable, use system default timeout. + + + + + Gets the local end point of the socket + + + + + Gets the remote end point of the socket + + + + + Fires the SSL certificate validation event + + Certificate being validated + Certificate chain + Policy errors if any + True if it was accepted, false otherwise + + + + Throws an InvalidOperationException + + Ignored + Ignored + + + + + Throws an InvalidOperationException + + Ignored + + + + Flushes the stream + + + + + Flushes the stream asynchronously + + The for this task + + + + Bypass the stream and read directly off the socket. + + The buffer to read into + The number of bytes read + + + + Bypass the stream and read directly off the socket. + + The buffer to read into + The token that can be used to cancel the entire process + The number of bytes read + + + + Reads data from the stream + + Buffer to read into + Where in the buffer to start + Number of bytes to be read + The amount of bytes read from the stream + + + + Reads data from the stream + + Buffer to read into + Where in the buffer to start + Number of bytes to be read + The for this task + The amount of bytes read from the stream + + + + Reads a line from the socket + + The type of encoding used to convert from byte[] to string + A line from the stream, null if there is nothing to read + + + + Reads all lines from the socket + + The type of encoding used to convert from byte[] to string + The size of the buffer + A list of lines from the stream + + + + Reads a line from the socket asynchronously + + The type of encoding used to convert from byte[] to string + The for this task + A line from the stream, null if there is nothing to read + + + + Reads all lines from the socket + + The type of encoding used to convert from byte[] to string + The size of the buffer + The token that can be used to cancel the entire process + A list of lines from the stream + + + + Writes data to the stream + + Buffer to write to stream + Where in the buffer to start + Number of bytes to be written + + + + Writes data to the stream asynchronously + + Buffer to write to stream + Where in the buffer to start + Number of bytes to be written + The for this task + + + + Writes a line to the stream using the specified encoding + + Encoding used for writing the line + The data to write + + + + Writes a line to the stream using the specified encoding asynchronously + + Encoding used for writing the line + The data to write + The for this task + + + + Disconnects from server + + + + + Disconnects from server + + + + + Safely close the socket if its open + + + + + Sets socket options on the underlying socket + + SocketOptionLevel + SocketOptionName + SocketOptionValue + + + + Check if the specified IP Address is allowed + + The ip address to connect to + The enum value of allowed IP Versions + Textual representation of the address family + + + + Get the IP Address(es) associated with this host + + The host to query + + + + Set the connected IP Address associated with this host + + The host to query + The IP address to store in the cache + + + + Connect to the specified host + + The host to connect to + The port to connect to + Internet Protocol versions to support during the connection phase + + + + Connect to the specified host + Detects timeout and throws that explicitly + + The ip address to connect to + The port to connect to + + + + Get the IP Address(es) associated with this host + + The host to query + The token that can be used to cancel the entire process + + + + Connect to the specified host + + The host to connect to + The port to connect to + Internet Protocol versions to support during the connection phase + The token that can be used to cancel the entire process + + + + Connect to the specified host + Detects timeout and throws that explicitly + + The ip address to connect to + The port to connect to + The token that can be used to cancel the entire process + + + + Activates SSL on this stream using the specified protocols. Fires the ValidateCertificate event. + If this event is not handled and there are SslPolicyErrors present, the certificate will + not be accepted. + + The host to authenticate the certificate against + A collection of client certificates to use when authenticating the SSL stream + A bitwise parameter for supported encryption protocols. + Thrown when authentication fails + + + + Activates SSL on this stream using the specified protocols. Fires the ValidateCertificate event. + If this event is not handled and there are SslPolicyErrors present, the certificate will + not be accepted. + + The host to authenticate the certificate against + A collection of client certificates to use when authenticating the SSL stream + A bitwise parameter for supported encryption protocols. + The token that can be used to cancel the entire process + Thrown when authentication fails + + + + Conditionally create a SSL BufferStream based on the configuration in FtpClient.SslBuffering. + + + + + If SSL Buffering is enabled it returns the BufferStream, else returns the internal NetworkStream. + + + + + + Instructs this stream to listen for connections on the specified address and port + + The address to listen on + The port to listen on + + + + Accepts a connection from a listening socket + + + + + Accepts a connection from a listening socket + + + + + FtpSslStream is an SslStream that properly sends a close_notify message when closing + the connection. This is required per RFC 5246 to avoid truncation attacks. + For more information, see https://tools.ietf.org/html/rfc5246#section-7.2.1 + + Inspired by: https://stackoverflow.com/questions/237807/net-sslstream-doesnt-close-tls-connection-properly/22626756#22626756 + + See: https://learn.microsoft.com/en-us/windows/win32/secauthn/shutting-down-an-schannel-connection + See: https://learn.microsoft.com/en-us/windows/win32/secauthn/using-sspi-with-a-windows-sockets-client?source=recommendations + + Note: + Microsoft says we should not override close(): + "Place all cleanup logic for your stream object in Dispose(Boolean). Do not override Close()." + See: https://learn.microsoft.com/en-us/dotnet/api/system.io.stream.dispose?view=net-7.0 + But: We recently changed the below logic due to issue #1107, which solved the problem in part + + + + + + Create an SslStream object + + + + + Close + + + + + For representing this SslStream in the log + + +
          +
          diff --git a/Source/packages/FluentFTP.44.0.1/lib/netstandard2.0/FluentFTP.dll b/Source/packages/FluentFTP.44.0.1/lib/netstandard2.0/FluentFTP.dll new file mode 100644 index 0000000..9325cfb Binary files /dev/null and b/Source/packages/FluentFTP.44.0.1/lib/netstandard2.0/FluentFTP.dll differ diff --git a/Source/packages/FluentFTP.44.0.1/lib/netstandard2.0/FluentFTP.xml b/Source/packages/FluentFTP.44.0.1/lib/netstandard2.0/FluentFTP.xml new file mode 100644 index 0000000..22d158a --- /dev/null +++ b/Source/packages/FluentFTP.44.0.1/lib/netstandard2.0/FluentFTP.xml @@ -0,0 +1,8351 @@ + + + + FluentFTP + + + + + An FTP client that manages a connection to a single FTP server. + Interacts with any FTP/FTPS server and provides a high-level and low-level API to work with files and folders. + Uses asynchronous operations only. For the sync version use `FtpClient`. + + Debugging problems with FTP is much easier when you enable logging. Visit our Github Wiki for more info. + + + + + Performs a login on the server. This method is overridable so + that the login procedure can be changed to support, for example, + a FTP proxy. + + + + + Performs a login on the server. This method is overridable so + that the login procedure can be changed to support, for example, + a FTP proxy. + + On authentication failures + + To handle authentication failures without retries, catch FtpAuthenticationException. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and connects to the first successful profile. + Returns the FtpProfile if the connection succeeded, or null if it failed. + It will throw exceptions for permanent failures like invalid host or invalid credentials. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and returns the list of successful connection profiles. + You can configure it to stop after finding the first successful profile, or to collect all successful profiles. + You can then generate code for the profile using the FtpProfile.ToCode method. + If no successful profiles are found, a blank list is returned. + + Find all successful profiles (false) or stop after finding the first successful profile (true) + Use a new cloned AsyncFtpClient for testing connection profiles (true) or use the source AsyncFtpClient (false) + The token that can be used to cancel the entire process + + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The owner permissions + The group permissions + The other permissions + The token that can be used to cancel the entire process + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The permissions in CHMOD format + The token that can be used to cancel the entire process + + + + Compare the specified local file with the remote file on the FTP server using various kinds of quick equality checks. + In Auto mode, the file size and checksum are compared. + Comparing the checksum of a file is a quick way to check if the contents of the files are exactly equal without downloading a copy of the file. + You can use the option flags to compare any combination of: file size, checksum, date modified. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + Types of equality checks to perform. Use Auto to compare file size and checksum. + The token that can be used to cancel the entire process + + + + + Connect to the given server profile. + + + + + Connect to the given server profile. + + + + + Connect to the server + + true indicates that we want a + reconnect to take place. + The token that can be used to cancel the entire process + Thrown if this object has been disposed. + + + + Connect to the FTP server. Overridden in proxy classes. + + + + + + + Connect to the FTP server. Overridden in proxy classes. + + + + + Creates a remote directory asynchronously + + The full or relative path to the new remote directory + Try to create the whole path if the preceding directories do not exist + The token that can be used to cancel the entire process + True if directory was created, false if it was skipped + + + + Creates a remote directory asynchronously. If the preceding + directories do not exist, then they are created. + + The full or relative path to the new remote directory + The token that can be used to cancel the entire process + + + + Asynchronously removes a directory and all its contents. + + The full or relative path of the directory to delete + The token that can be used to cancel the entire process + + + + Asynchronously removes a directory and all its contents. + + The full or relative path of the directory to delete + Useful to delete hidden files or dot-files. + The token that can be used to cancel the entire process + + + + Asynchronously removes a directory. Used by and + . + + The full or relative path of the directory to delete + Delete the contents before deleting the folder + Useful to delete hidden files or dot-files. + Delete the top level dir too + Internally used to determine top level + The token that can be used to cancel the entire process + + + + + Deletes a file from the server asynchronously + + The full or relative path to the file + The token that can be used to cancel the entire process + + + + Tests if the specified directory exists on the server asynchronously. This + method works by trying to change the working directory to + the path specified. If it succeeds, the directory is changed + back to the old working directory and true is returned. False + is returned otherwise and since the CWD failed it is assumed + the working directory is still the same. + + The full or relative path of the directory to check for + The token that can be used to cancel the entire process + True if the directory exists. False otherwise. + + + + Disables UTF8 support and changes the Encoding property + back to ASCII. If the server returns an error when trying + to turn UTF8 off a FtpCommandException will be thrown. + + + + + Disconnects from the server asynchronously + + + + + Downloads the specified file and return the raw byte array. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The full or relative path to the file on the server + The size of the existing file in bytes, or 0 if unknown. The download restarts from this byte index. + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track download progress. + A byte array containing the contents of the downloaded file if successful, otherwise null. + + + + Downloads the specified file and return the raw byte array asynchronously. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The full or relative path to the file on the server + The token that can be used to cancel the entire process + A byte array containing the contents of the downloaded file if successful, otherwise null. + + + + Downloads the specified directory onto the local file system. + In Mirror mode, we will download missing files, and delete any extra files from disk that are not present on the server. This is very useful when creating an exact local backup of an FTP directory. + In Update mode, we will only download missing files and preserve any extra files on disk. This is useful when you want to simply download missing files from an FTP directory. + Only downloads the files and folders matching all the rules provided, if any. + All exceptions during downloading are caught, and the exception is stored in the related FtpResult object. + + The full path of the local folder on disk to download into. It is created if it does not exist. + The full path of the remote FTP folder that you want to download. If it does not exist, an empty result list is returned. + Mirror or Update mode, as explained above + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide an implementation of IProgress to track upload progress. + The token that can be used to cancel the entire process + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Download all the listed files and folders from the main directory + + + + + Downloads the specified file onto the local file system asynchronously. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + Overwrite if you want the local file to be overwritten if it already exists. Append will also create a new file if it doesn't exists + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Provide an implementation of IProgress to track download progress. + The token that can be used to cancel the entire process + FtpStatus flag indicating if the file was downloaded, skipped or failed to transfer. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts. + + + + + Download a remote file to a local file + + + + + Download a file from the server and write the data into the given stream asynchronously. + Reads data in chunks. Retries if server disconnects midway. + + + + + Setup a resume on failure of download + + + + + Downloads the specified files into a local single directory. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + Same speed as . + + The full or relative path to the directory that files will be downloaded into. + The full or relative paths to the files on the server + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are downloaded, and the files that don't pass are skipped. + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Remove successfully downloaded files. + + + + + Downloads the specified file into the specified stream asynchronously . + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory. + The full or relative path to the file on the server + The size of the existing file in bytes, or 0 if unknown. The download restarts from this byte index. + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track download progress. + If true then the file was downloaded, false otherwise. + + + + Deletes the contents of the specified directory, without deleting the directory itself. + + The full or relative path of the directorys contents to delete + The token that can be used to cancel the entire process + + + + Deletes the contents of the specified directory, without deleting the directory itself. + + The full or relative path of the directorys contents to delete + Useful to delete hidden files or dot-files. + The token that can be used to cancel the entire process + + + + Performs an asynchronous execution of the specified command + + The command to execute + The token that can be used to cancel the entire process + The servers reply to the command + + + + Things to do after executing a command + + + + + + Checks if a file exists on the server asynchronously. + + The full or relative path to the file + The token that can be used to cancel the entire process + True if the file exists, false otherwise + + + + Ensure a relative dir is absolute by prepending the working dir + + + + + Concat a path and a filename + + + + + Ensure a relative path is absolute by prepending the working dir + + + + + Retrieves a checksum of the given file using the specified checksum algorithm, or using the first available algorithm that the server supports. + + + The algorithm used goes in this order: + 1. HASH command using the first supported algorithm. + 2. MD5 / XMD5 / MMD5 commands + 3. XSHA1 command + 4. XSHA256 command + 5. XSHA512 command + 6. XCRC command + + Full or relative path of the file to checksum + The token that can be used to cancel the entire process + Specify an algorithm that you prefer, or NONE to use the first available algorithm. If the preferred algorithm is not supported, a blank hash is returned. + object containing the value and algorithm. Use the property to + determine if this command was successful. s can be thrown from + the underlying calls. + The command fails + + + + Gets the hash of the specified file using the given command. + + + + + Sets the hash algorithm on the server to be used with the HASH command asynchronously. + + + + + Gets the hash of an object on the server using the currently selected hash algorithm. + + + + + Retrieve the permissions of the given file/folder as an integer in the CHMOD format. + Throws FtpCommandException if there is an issue. + Returns 0 if the server did not specify a permission value. + Use `GetFilePermissions` if you required the permissions in the FtpPermission format. + + The full or relative path to the item + The token that can be used to cancel the entire process + + + + Retrieve the permissions of the given file/folder as an FtpListItem object with all "Permission" properties set. + Throws FtpCommandException if there is an issue. + Returns null if the server did not specify a permission value. + Use `GetChmod` if you required the integer value instead. + + The full or relative path to the item + The token that can be used to cancel the entire process + + + + Asynchronously gets the size of a remote file, in bytes. + + The full or relative path of the file + Value to return if there was an error obtaining the file size, or if the file does not exist + The token that can be used to cancel the entire process + The size of the file, or defaultValue if there was a problem. + + + + Gets the file size of an object, without locking + + + + + Gets a file listing from the server asynchronously. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + The path to list + Options that dictate how the list operation is performed + The token that can be used to cancel the entire process + An array of items retrieved in the listing + + + + Process the output of the listing command + + + + + Get the records of a file listing and retry if temporary failure. + + + + + Gets a file listing from the server asynchronously. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + The path to list + The token that can be used to cancel the entire process + An array of items retrieved in the listing + + + + Gets a file listing from the server asynchronously. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + An array of items retrieved in the listing + + + + Recursive method of GetListingAsync, to recurse through directories on servers that do not natively support recursion. + Automatically called by GetListingAsync where required. + Uses flat recursion instead of head recursion. + + The path of the directory to list + Options that dictate how a list is performed and what information is gathered. + + An array of FtpListItem objects + + + + Gets the modified time of a remote file asynchronously + + The full path to the file + The token that can be used to cancel the entire process + The modified time, or if there was a problem + + + + Returns a file/directory listing using the NLST command asynchronously + + The path of the directory to list + The token that can be used to cancel the entire process + An array of file and directory names if any were returned. + + + + Returns a file/directory listing using the NLST command asynchronously + + An array of file and directory names if any were returned. + + + + Return information about a remote file system object asynchronously. + + + You should check the property for the + flag before calling this method. Failing to do so will result in an InvalidOperationException + being thrown when the server does not support machine listings. Returns null if the server response can't + be parsed or the server returns a failure completion code. The error for a failure + is logged with FtpTrace. No exception is thrown on error because that would negate + the usefulness of this method for checking for the existence of an object. + Path of the item to retrieve information about + Get the accurate modified date using another MDTM command + The token that can be used to cancel the entire process + Thrown if the server does not support this Capability + A if the command succeeded, or null if there was a problem. + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + The token that can be used to cancel the entire process. + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + The token that can be used to cancel the entire process. + We are waiting for the response to which command? + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + The token that can be used to cancel the entire process. + We are waiting for the response to which command? + Set to true to select the NOOP devouring mode + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + The token that can be used to cancel the entire process. + We are waiting for the response to which command? + Set to true to select the NOOP devouring mode + -1 non-blocking, no timeout, >0 exhaustNoop mode, timeOut in seconds + FtpReply representing the response from the server + + + + Gets the current working directory asynchronously + + The current working directory, ./ if the response couldn't be parsed. + + + + Get the reply from the PWD command + + The current working directory reply. + + + + If an FTP Server has "different realms", in which realm is the + current working directory. + + The realm + + + + Called during . Typically extended by FTP proxies. + + + + + Is the current working directory the root? + + true if root. + + + + Moves a directory asynchronously on the remote file system from one directory to another. + Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter. + Only throws exceptions for critical errors. + + The full or relative path to the object + The new full or relative path including the new name of the object + Should we check if the dest directory exists? And if it does should we overwrite/skip the operation? + The token that can be used to cancel the entire process + Whether the directory was moved + + + + Moves a file asynchronously on the remote file system from one directory to another. + Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter. + Only throws exceptions for critical errors. + + The full or relative path to the object + The new full or relative path including the new name of the object + Should we check if the dest file exists? And if it does should we overwrite/skip the operation? + The token that can be used to cancel the entire process + Whether the file was moved + + + + Sends the NOOP command according to (effectively a no-op if 0). + Please call as needed to read the "OK" command sent by the server and prevent stale data on the socket. + Note that response is not guaranteed by all FTP servers when sent during file transfers. + + + true if NOOP command was sent + + + + Opens the specified type of active data stream + + Type of passive data stream to open + The command to execute that requires a data stream + Restart location in bytes for file transfer + The token that can be used to cancel the entire process + A data stream ready to be used + + + + Opens the specified file to be appended asynchronously + + Full or relative path of the file + ASCII/Binary + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + The token that can be used to cancel the entire process + A stream for writing to the file on the server + + + + Opens the specified file to be appended asynchronously + + Full or relative path of the file + ASCII/Binary + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + The token that can be used to cancel the entire process + A stream for writing to the file on the server +
          + + + Opens a data stream. + + The command to execute that requires a data stream + Restart location in bytes for file transfer + The token that can be used to cancel the entire process + The data stream. + + + + Opens a FXP PASV connection between the source FTP Server and the destination FTP Server + + Valid FTP connection to the destination FTP Server + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track download progress. + A data stream ready to be used + + + + Opens the specified type of passive data stream + + Type of passive data stream to open + The command to execute that requires a data stream + Restart location in bytes for file transfer + The token that can be used to cancel the entire process + A data stream ready to be used + + + + Opens the specified file for reading asynchronously + + The full or relative path of the file + ASCII/Binary + Resume location + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + The token that can be used to cancel the entire process + A stream for reading the file on the server + + + + Opens the specified file for reading asynchronously + + The full or relative path of the file + ASCII/Binary + Resume location + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + The token that can be used to cancel the entire process + A stream for reading the file on the server +
          + + + Opens the specified file for writing. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + Full or relative path of the file + ASCII/Binary + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + The token that can be used to cancel the entire process + A stream for writing to the file on the server + + + + Opens the specified file for writing. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + Full or relative path of the file + ASCII/Binary + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + The token that can be used to cancel the entire process + A stream for writing to the file on the server +
          + + + Renames an object on the remote file system asynchronously. + Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory(). + Throws exceptions if the file does not exist, or if the destination file already exists. + + The full or relative path to the object + The new full or relative path including the new name of the object + The token that can be used to cancel the entire process + + + + Sets the data type of information sent over the data stream asynchronously + + ASCII/Binary + The token that can be used to cancel the entire process + + + + Sets the data type of information sent over the data stream asynchronously + + ASCII/Binary + The token that can be used to cancel the entire process + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The owner permissions + The group permissions + The other permissions + The token that can be used to cancel the entire process + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The permissions in CHMOD format + The token that can be used to cancel the entire process + + + + Gets the modified time of a remote file asynchronously + + The full path to the file + The new modified date/time value + The token that can be used to cancel the entire process + + + + Sets the working directory on the server asynchronously + + The directory to change to + The token that can be used to cancel the entire process + + + + Transfer the specified directory from the source FTP Server onto the remote FTP Server asynchronously using the FXP protocol. + You will need to create a valid connection to your remote FTP Server before calling this method. + In Update mode, we will only transfer missing files and preserve any extra files on the remote FTP Server. This is useful when you want to simply transfer missing files from an FTP directory. + Currently Mirror mode is not implemented. + Only transfers the files and folders matching all the rules provided, if any. + All exceptions during transfer are caught, and the exception is stored in the related FtpResult object. + + The full or relative path to the folder on the source FTP Server. If it does not exist, an empty result list is returned. + Valid FTP connection to the destination FTP Server + The full or relative path to destination folder on the remote FTP Server + Only Update mode is currently implemented + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide a callback to track download progress. + The token that can be used to cancel the entire process + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Make a list of files to transfer + + + + + Transfer the files + + + + + Transfer the specified file from the source FTP Server to the destination FTP Server asynchronously using the FXP protocol. + High-level API that takes care of various edge cases internally. + + The full or relative path to the file on the source FTP Server + Valid FTP connection to the destination FTP Server + The full or relative path to destination file on the remote FTP Server + Indicates if the folder should be created on the remote FTP Server + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Provide a callback to track download progress. + + The token that can be used to cancel the entire process + Returns a FtpStatus indicating if the file was transferred. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts. + + + + + Transfers a file from the source FTP Server to the destination FTP Server via the FXP protocol asynchronously. + + + + + Uploads the specified byte array as a file onto the server asynchronously. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full data of the file, as a byte array + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + The token that can be used to cancel the entire process. + Provide an implementation of IProgress to track upload progress. + FtpStatus flag indicating if the file was uploaded, skipped or failed to transfer. + + + + Uploads the specified directory onto the server. + In Mirror mode, we will upload missing files, and delete any extra files from the server that are not present on disk. This is very useful when publishing an exact copy of a local folder onto an FTP server. + In Update mode, we will only upload missing files and preserve any extra files on the server. This is useful when you want to simply upload missing files to a server. + Only uploads the files and folders matching all the rules provided, if any. + All exceptions during uploading are caught, and the exception is stored in the related FtpResult object. + + The full path of the local folder on disk that you want to upload. If it does not exist, an empty result list is returned. + The full path of the remote FTP folder to upload into. It is created if it does not exist. + Mirror or Update mode, as explained above + If the file exists on disk, should we skip it, resume the upload or restart the upload? + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are uploaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide an implementation of IProgress to track upload progress. + The token that can be used to cancel the entire process + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Create all the sub directories within the main directory + + + + + Upload all the files within the main directory + + + + + Delete the extra remote files if in mirror mode and the directory was pre-existing + + + + + Uploads the specified file directly onto the server asynchronously. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + The token that can be used to cancel the entire process. + Provide an implementation of IProgress to track upload progress. + FtpStatus flag indicating if the file was uploaded, skipped or failed to transfer. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + + + + + Upload from a local file to a remote file + + + + + Upload the given stream to the server as a new file asynchronously. Overwrites the file if it exists. + Writes data in chunks. Retries if server disconnects midway. + + + + + Setup a resume on failure of upload + + + + + Uploads the given file paths to a single folder on the server asynchronously. + All files are placed directly into the given folder regardless of their path on the local filesystem. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + Faster than uploading single files with since it performs a single "file exists" check rather than one check per file. + + The full or relative paths to the files on the local file system. Files can be from multiple folders. + The full or relative path to the directory that files will be uploaded on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are uploaded, and the files that don't pass are skipped. + + Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Remove successfully uploaded files. + + + + + Uploads the given file paths to a single folder on the server asynchronously. + All files are placed directly into the given folder regardless of their path on the local filesystem. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + Faster than uploading single files with since it performs a single "file exists" check rather than one check per file. + + The full or relative paths to the files on the local file system. Files can be from multiple folders. + The full or relative path to the directory that files will be uploaded on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are uploaded, and the files that don't pass are skipped. + + Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Get a list of all the files that need to be uploaded + + + + + Uploads the specified stream as a file onto the server asynchronously. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full data of the file, as a stream + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + The token that can be used to cancel the entire process. + Provide an implementation of IProgress to track upload progress. + FtpStatus flag indicating if the file was uploaded, skipped or failed to transfer. + + + + Verify an FXP transfer + + + + + + + + + + + + Verify a file transfer + + + + + + + + + + Creates a new instance of an async FTP Client. You will have to setup the FTP host and credentials before connecting. + + + + + Creates a new instance of an async FTP Client, with the given host and credentials. + + + + + Creates a new instance of an async FTP Client, with the given host and credentials. + + + + + Creates a new instance of an async FTP Client, with the given host and credentials. + + + + + The base object for FtpClient, AsyncFtpClient + + + + + Calculate the position from which to append + + + + + + + + + Calculate transfer chunk size taking rate control into account + + + + + Check if the file is cleared to be uploaded, taking its existence/filesize and existsMode options into account. + + + + + Try using the SIZE command to check if file exists + + + + + + + Does the server support checksums? + + + + + + Is the checksum algorithm valid? + + + + + + + Cleanup the hash result + + + + + Get the first checksum algorithm mutually supported by both servers. + + + + + Disconnects a data stream + + The data stream to close + + + + If reverse is false, converts the date provided by the FTP server into the timezone required locally. + If reverse is true, converts the local timezone date into the date required by the FTP server. + + Affected by properties: TimeConversion, TimeZone, LocalTimeZone. + + + + + Delete the extra local files if in mirror mode + + + + + Check if the local file can be deleted, based on the DownloadDirectoryDeleteExcluded property + + + + + Executes a command + + The command to execute + The servers reply to the command + + + + Things to do after executing a command + + + + + + Populates the capabilities flags based on capabilities + supported by this server. This method is overridable + so that new features can be supported + + The reply object from the FEAT command. The InfoMessages property will + contain a list of the features the server supported delimited by a new line '\n' character. + + + + Forcibly set the capabilities of your FTP server. + By default capabilities are loaded automatically after calling Connect and you don't need to use this method. + This is only for advanced use-cases. + + + + + Performs a bitwise and to check if the specified + flag is set on the property. + + The to check for + True if the feature was found, false otherwise + + + + Returns true if the file passes all the rules + + + + + Get a list of all the files and folders that need to be downloaded + + + + + Get a list of all the files and folders that need to be downloaded + + + + + Create an FtpResult object for the given file to be downloaded, and check if the file passes the rules. + + + + + Get a list of all the files that need to be uploaded within the main directory + + + + + Create an FtpResult object for the given file to be uploaded, and check if the file passes the rules. + + + + + Parse the host and port number from an EPSV response + Handles (|||nnnn|) and (!!!nnnn!) + + + + + Parse the host and port number from an PASV or PASVEX response + + + + + Returns the IP address to be sent to the server for the active connection. + + + + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + We are waiting for the response to which command? + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + We are waiting for the response to which command? + Set to true to select the NOOP devouring mode + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + We are waiting for the response to which command? + Set to true to select the NOOP devouring mode + -1 non-blocking, no timeout, >0 exhaustNoop mode, timeOut in seconds + FtpReply representing the response from the server + + + + Process the returned data after command was executed + + + + + + + + Decodes the given FTP response string into a FtpReply, separating the FTP return code and message. + Returns true if the string was decoded correctly or false if it is not a standard format FTP response. + + + + + Make a list of subdirectories to transfer + + + + + + + + + + + Get a list of all the sub directories that need to be created within the main directory + + + + + Check if the remote file can be deleted, based on the UploadDirectoryDeleteExcluded property + + + + + Gets the current working directory + + The current working directory, ./ if the response couldn't be parsed. + + + + Get the reply to the PWD command + + + + + Parse the string returned from a PWD command + + + + + + + Checks if this FTP/FTPS connection is made through a proxy. + + + + + Checks whether will be called recursively or not. + + + + + + + Get a listing + + + + + + + + + + + + + + + + + + + + + Determine which command to use for getting a listing + + + + + Can the server do recursion for us? + + + + + Load the given connection profile and configure the FTP client instance accordingly. + + Connection profile. Not modified. + + + + Log the version of the running assembly + + + + + Log a function call with relevant arguments + + The name of the API function + The args passed to the function + + + + Log a message + + The type of tracing event + The message to write + + + + Log a message, adding an automatic prefix to the message based on the `eventType` + + The type of tracing event + The message to write + An optional exeption + Write an optional exeption on a new line + + + + Log a message to the debug output and console. + + + + + To allow for external connected classes to use the attached logger. + + + + + To allow for external connected classes to use the attached logger. + + + + + Should the function calls be logged in Verbose mode? + + + + + Add a custom listener here to get events every time a message is logged. + This is the older system, prefer using the ILogger based `Logger` property. + This system will never be removed, you can safely use it in your applications. + + + + + All the configuration settings for this FTP client. + + + + + Gets the type of the FTP server handler. + This is automatically set based on the detected FTP server, if it is detected. + You can manually set this property to implement handling for a custom FTP server. + + + + + Gets or sets the text encoding being used when talking with the server. The default + value is however upon connection, the client checks + for UTF8 support and if it's there this property is switched over to + . Manually setting this value overrides automatic detection + based on the FEAT list; if you change this value it's always used + regardless of what the server advertises, if anything. + + + + + When last command was sent (NOOP or other), for having /. + Respects the . + + + + + Current FTP client status flags used for improving performance and caching data. + + + + + Returns the current FTP client status flags. For advanced use only. + + + + + Used for internally synchronizing access to this + object from multiple threads + + + + + For usage by FTP proxies only + + + + + Control connection socket stream + + + + + Gets the base stream for talking to the server via + the control connection. + + + + + Gets a value indicating if this object has already been disposed. + + + + + Gets the current internet protocol (IPV4 or IPV6) used by the socket connection. + Returns FtpIpVersion.Unknown before connection. + + + + + Returns true if the connection to the FTP server is open. + WARNING: Returns true even if our credentials are incorrect but connection to the server is open. + See the IsAuthenticated property if you want to check if we are correctly logged in. + + + + + Returns true if the connection to the FTP server is open and if the FTP server accepted our credentials. + + + + + Gets a value indicating if this control connection is a clone. This property + is used with data streams to determine if the connection should be closed + when the stream is closed. Servers typically only allow 1 data connection + per control connection. If you try to open multiple data connections this + object will be cloned for 2 or more resulting in N new connections to the + server. + + + + + The server to connect to + + + + + The port to connect to. If this value is set to 0 (Default) the port used + will be determined by the type of SSL used or if no SSL is to be used it + will automatically connect to port 21. + + + + + Credentials used for authentication + + + + + Gets the server capabilities represented by an array of capability flags + + + + + Get the hash types supported by the server for use with the HASH Command. + This is a recent extension to the protocol that is not fully + standardized and is not guaranteed to work. See here for + more details: + http://tools.ietf.org/html/draft-bryan-ftpext-hash-02 + + + + + The negotiated SSL/TLS protocol version. + Will return a valid value after connection is complete. + Before connection it will return `SslProtocols.None`. + + + + + Checks if FTPS/SSL encryption is currently active. + Useful to see if your server supports FTPS, when using FtpEncryptionMode.Auto. + + + + + Easiest way to check if a handler has been attached. + + + + + Event is fired to validate SSL certificates. If this event is + not handled and there are errors validating the certificate + the connection will be aborted. + Not fired if ValidateAnyCertificate is set to true. + + + + + Gets the type of system/server that we're connected to. Typically begins with "WINDOWS" or "UNIX". + + + + + Gets the type of the FTP server software that we're connected to. + + + + + Gets the operating system of the FTP server that we're connected to. + + + + Gets the connection type + + + Gets the last reply received from the server + + + Gets the last replies received from the server + + + + Callback format to implement your custom FTP listing line parser. + + The line from the listing + The server capabilities + The FTP client + Return an FtpListItem object if the line can be parsed, else return null + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Returns the local end point of the FTP socket, if it is available. + + + + + Returns the remote end point of the FTP socket, if it is available. + + + + + Data shouldn't be on the socket, if it is it probably means we've been disconnected. + Read and discard whatever is there. + Returns the stale data as text, if any, or null if none was found. + + copy stale data information to logs? + for the log information + + + + Data shouldn't be on the socket, if it is it probably means we've been disconnected. + Read and discard whatever is there. + Returns the stale data as text, if any, or null if none was found. + + copy stale data information to logs? + called from where (text) + The token that can be used to cancel the entire process + + + + Sends progress to the user, either a value between 0-100 indicating percentage complete, or -1 for indeterminate. + + + + + Sends progress to the user, either a value between 0-100 indicating percentage complete, or -1 for indeterminate. + + + + + Open a local port on the given ActivePort or a random port. + + + + + + Validate the client before the auto detect process + + + + + + + Catches the socket stream ssl validation event and fires the event handlers + attached to this object for validating SSL certificates + + The stream that fired the event + The event args used to validate the certificate + + + + Fires the SSL validation event + + Event Args + + + + Verify that the client is usable + + + + + + + + + + + + Clones the FTP client control connection. Used for opening multiple data streams. + You will need to manually connect after cloning. + + A new FTP client connection with the same property settings as this one. + + + + Disposes and disconnects this FTP client if it was auto-created for an internal operation. + + + + + Check if the host parameter is valid + + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Disconnects from the server, releases resources held by this + object. + + + + + Finalizer + + + + + Class responsible for automatically detecting working FTP settings to connect to a target FTP server. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and returns the list of successful connection profiles. + You can configure it to stop after finding the first successful profile, or to collect all successful profiles. + You can then generate code for the profile using the FtpProfile.ToCode method. + If no successful profiles are found, a blank list is returned. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and returns the list of successful connection profiles. + You can configure it to stop after finding the first successful profile, or to collect all successful profiles. + You can then generate code for the profile using the FtpProfile.ToCode method. + If no successful profiles are found, a blank list is returned. + + + + + Check if the server refused to support one type of FTPS encryption, and if so blacklist that type of encryption. + + + + + Check if its an auth failure or something permanent, + so that we don't need to retry all the connection config combinations and can hard-abort the AutoConnect. + Return the exception if it is a hard failure, or null if no issue is found. + + + + + Load the given connection profile and configure the FTP client instance accordingly. + + + + + Create a default ValidateCertificate handler that accepts valid certificates. + + + + + Return a known working connection profile from the host/port combination. + + + + + Modify the `Status.InCriticalSequence` flag based on the FTP command sent, by checking against a list of known critical commands. + A critical sequence will not be interrupted by an automatic reconnect. + + + + + Class responsible for masking out sensitive data from FTP logs. + + + + + Populates the capabilities flags based on capabilities given in the list of strings. + + + + + Assume the FTP Server's capabilities if it does not support the FEAT command. + + + + + All servers with server-specific handling and support are listed here. + Its possible you can connect to other FTP servers too. + + To add support for another standard FTP server: + 1) Add a new enum in the `FtpServer` enum + 2) Add a new class extending `FtpBaseServer` under the `Servers.Handlers` NS + 3) Create a new instance of your class in `FtpHandlerIndex.AllServers` + + To support a custom FTP server you only need to extend `FtpBaseServer` + and set it on your client.ServerHandler before calling Connect. + + + + + Detect the FTP Server based on the welcome message sent by the server after getting the 220 connection command. + Its the primary method. + + + + + Get a default FTP Server handler based on the enum value. + + + + + Detect the FTP Server based on the response to the SYST connection command. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Detect the FTP Server based on the response to the SYST connection command. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Error messages returned by various servers when a file does not exist. + Instead of throwing an error, we use these to detect and handle the file detection properly. + MUST BE LOWER CASE! + + + + + Error messages returned by various servers when a file size is not supported in ASCII mode. + MUST BE LOWER CASE! + + + + + Error messages returned by various servers when a file transfer temporarily failed. + MUST BE LOWER CASE! + + + + + Error messages returned by various servers when a folder already exists. + Instead of throwing an error, we use these to detect and handle the folder creation properly. + MUST BE LOWER CASE! + + + + + Error messages returned by various servers when the connection failed due to wrong TLS version used. + MUST BE LOWER CASE! + + + + + An FTP client that manages a connection to a single FTP server. + Interacts with any FTP/FTPS server and provides a high-level and low-level API to work with files and folders. + Uses synchronous operations only. For the async version use `AsyncFtpClient`. + + Debugging problems with FTP is much easier when you enable logging. Visit our Github Wiki for more info. + + + + + Creates a new instance of a synchronous FTP Client. You will have to setup the FTP host and credentials before connecting. + + + + + Creates a new instance of a synchronous FTP Client, with the given host and credentials. + + + + + Creates a new instance of a synchronous FTP Client, with the given host and credentials. + + + + + Creates a new instance of a synchronous FTP Client, with the given host and credentials. + + + + + Performs a login on the server. This method is overridable so + that the login procedure can be changed to support, for example, + a FTP proxy. + + + + + Performs a login on the server. This method is overridable so + that the login procedure can be changed to support, for example, + a FTP proxy. + + On authentication failures + + To handle authentication failures without retries, catch FtpAuthenticationException. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and connects to the first successful profile. + Returns the FtpProfile if the connection succeeded, or null if it failed. + It will throw exceptions for permanent failures like invalid host or invalid credentials. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and returns the list of successful connection profiles. + You can configure it to stop after finding the first successful profile, or to collect all successful profiles. + You can then generate code for the profile using the FtpProfile.ToCode method. + If no successful profiles are found, a blank list is returned. + + Find all successful profiles (false) or stop after finding the first successful profile (true) + Use a new cloned FtpClient for testing connection profiles (true) or use the source FtpClient (false) + + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The owner permissions + The group permissions + The other permissions + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The permissions in CHMOD format + + + + Compare the specified local file with the remote file on the FTP server using various kinds of quick equality checks. + In Auto mode, the file size and checksum are compared. + Comparing the checksum of a file is a quick way to check if the contents of the files are exactly equal without downloading a copy of the file. + You can use the option flags to compare any combination of: file size, checksum, date modified. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + Types of equality checks to perform. Use Auto to compare file size and checksum. + + + + + Connect + + + + + Connect to the given server profile. + + + + + Connect to the server + + true indicates that we want a + reconnect to take place. + Thrown if this object has been disposed. + + + + Connect to the FTP server. Overridden in proxy classes. + + + + + + Connect to the FTP server. Overridden in proxy classes. + + + + + Creates a directory on the server. If the preceding + directories do not exist, then they are created. + + The full or relative path to the new remote directory + + + + Creates a directory on the server + + The full or relative path to the new remote directory + Try to force all non-existent pieces of the path to be created + True if directory was created, false if it was skipped + + + + Deletes the specified directory and all its contents. + + The full or relative path of the directory to delete + + + + Deletes the specified directory and all its contents. + + The full or relative path of the directory to delete + Useful to delete hidden files or dot-files. + + + + Deletes the specified directory and all its contents. + + The full or relative path of the directory to delete + If the directory is not empty, remove its contents + Useful to delete hidden files or dot-files. + Delete completely or leave the top level dir + Internally used to determine top level + + + + Deletes a file on the server + + The full or relative path to the file + + + + Tests if the specified directory exists on the server. This + method works by trying to change the working directory to + the path specified. If it succeeds, the directory is changed + back to the old working directory and true is returned. False + is returned otherwise and since the CWD failed it is assumed + the working directory is still the same. + + The path of the directory + True if it exists, false otherwise. + + + + Disables UTF8 support and changes the Encoding property + back to ASCII. If the server returns an error when trying + to turn UTF8 off a FtpCommandException will be thrown. + + + + + Disconnects from the server + + + + + Downloads the specified file and return the raw byte array. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The variable that will receive the bytes. + The full or relative path to the file on the server + The size of the existing file in bytes, or 0 if unknown. The download restarts from this byte index. + Provide a callback to track download progress. + If true then the file was downloaded, false otherwise. + + + + Downloads the specified directory onto the local file system. + In Mirror mode, we will download missing files, and delete any extra files from disk that are not present on the server. This is very useful when creating an exact local backup of an FTP directory. + In Update mode, we will only download missing files and preserve any extra files on disk. This is useful when you want to simply download missing files from an FTP directory. + Only downloads the files and folders matching all the rules provided, if any. + All exceptions during downloading are caught, and the exception is stored in the related FtpResult object. + + The full path of the local folder on disk to download into. It is created if it does not exist. + The full path of the remote FTP folder that you want to download. If it does not exist, an empty result list is returned. + Mirror or Update mode, as explained above + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide a callback to track download progress. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Download all the listed files and folders from the main directory + + + + + Downloads the specified file onto the local file system. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Provide a callback to track download progress. + FtpStatus flag indicating if the file was downloaded, skipped or failed to transfer. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts. + + + + + Download from a remote file to a local file + + + + + + + + + + + + + + Download a file from the server and write the data into the given stream. + Reads data in chunks. Retries if server disconnects midway. + + + + + Setup a resume on failure of download + + + + + Downloads the specified files into a local single directory. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + Same speed as . + + The full or relative path to the directory that files will be downloaded into. + The full or relative paths to the files on the server + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are downloaded, and the files that don't pass are skipped. + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Remove successfully downloaded files. + + + + + Downloads the specified file into the specified stream. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory. + The full or relative path to the file on the server + The size of the existing file in bytes, or 0 if unknown. The download restarts from this byte index. + Provide a callback to track download progress. + If true then the file was downloaded, false otherwise. + + + + Deletes the contents of the specified directory, without deleting the directory itself. + + The full or relative path of the directorys contents to delete + + + + Deletes the contents of the specified directory, without deleting the directory itself. + + The full or relative path of the directorys contents to delete + Useful to delete hidden files or dot-files. + + + + Executes a command + + The command to execute + The servers reply to the command + + + + Checks if a file exists on the server. + + The full or relative path to the file + True if the file exists + + + + Ensure a relative dir is absolute by prepending the working dir + + + + + Concat a path and a filename + + + + + Ensure a relative path is absolute by prepending the working dir + + + + + Retrieves a checksum of the given file using the specified checksum algorithm, or using the first available algorithm that the server supports. + + + The algorithm used goes in this order: + 1. HASH command using the first supported algorithm. + 2. MD5 / XMD5 / MMD5 commands + 3. XSHA1 command + 4. XSHA256 command + 5. XSHA512 command + 6. XCRC command + + Full or relative path of the file to checksum + Specify an algorithm that you prefer, or NONE to use the first available algorithm. If the preferred algorithm is not supported, a blank hash is returned. + object containing the value and algorithm. Use the property to + determine if this command was successful. s can be thrown from + the underlying calls. + The command fails + + + + Gets the hash of the specified file using the given command. + + + + + Sets the hash algorithm on the server to use for the HASH command. + + + + + Gets the hash of an object on the server using the currently selected hash algorithm. + + + + + Retrieve the permissions of the given file/folder as an integer in the CHMOD format. + Throws FtpCommandException if there is an issue. + Returns 0 if the server did not specify a permission value. + Use `GetFilePermissions` if you required the permissions in the FtpPermission format. + + The full or relative path to the item + + + + Retrieve the permissions of the given file/folder as an FtpListItem object with all "Permission" properties set. + Throws FtpCommandException if there is an issue. + Returns null if the server did not specify a permission value. + Use `GetChmod` if you required the integer value instead. + + The full or relative path to the item + + + + Gets the size of a remote file, in bytes. + + The full or relative path of the file + Value to return if there was an error obtaining the file size, or if the file does not exist + The size of the file, or defaultValue if there was a problem. + + + + Gets the file size of an object, without locking + + + + + Gets a file listing from the server from the current working directory. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + An array of FtpListItem objects + + + + Gets a file listing from the server. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + The path of the directory to list + An array of FtpListItem objects + + + + Gets a file listing from the server. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + The path of the directory to list + Options that dictate how a list is performed and what information is gathered. + An array of FtpListItem objects + + + + Get the records of a file listing and retry if temporary failure. + + + + + Recursive method of GetListing, to recurse through directories on servers that do not natively support recursion. + Automatically called by GetListing where required. + Uses flat recursion instead of head recursion. + + The path of the directory to list + Options that dictate how a list is performed and what information is gathered. + An array of FtpListItem objects + + + + Gets the modified time of a remote file. + + The full path to the file + The modified time, or if there was a problem + + + + Returns a file/directory listing using the NLST command. + + A string array of file and directory names if any were returned. + + + + Returns a file/directory listing using the NLST command. + + The path of the directory to list + A string array of file and directory names if any were returned. + + + + Returns information about a file system object. Returns null if the server response can't + be parsed or the server returns a failure completion code. The error for a failure + is logged with FtpTrace. No exception is thrown on error because that would negate + the usefulness of this method for checking for the existence of an object. + + The path of the file or folder + Get the accurate modified date using another MDTM command + A FtpListItem object + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + FtpReply representing the response from the server + + + + Gets the current working directory + + The current working directory, ./ if the response couldn't be parsed. + + + + If an FTP Server has "different realms", in which realm is the + current working directory. + + The realm + + + + Called during Connect(). Typically extended by FTP proxies. + + + + + Is the current working directory the root? + + true if root. + + + + Moves a directory on the remote file system from one directory to another. + Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter. + Only throws exceptions for critical errors. + + The full or relative path to the object + The new full or relative path including the new name of the object + Should we check if the dest directory exists? And if it does should we overwrite/skip the operation? + Whether the directory was moved + + + + Moves a file on the remote file system from one directory to another. + Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter. + Only throws exceptions for critical errors. + + The full or relative path to the object + The new full or relative path including the new name of the object + Should we check if the dest file exists? And if it does should we overwrite/skip the operation? + Whether the file was moved + + + + Sends the NOOP command according to (effectively a no-op if 0). + Please call as needed to read the "OK" command sent by the server and prevent stale data on the socket. + Note that response is not guaranteed by all FTP servers when sent during file transfers. + + true if NOOP command was sent + + + + Opens the specified type of active data stream + + Type of passive data stream to open + The command to execute that requires a data stream + Restart location in bytes for file transfer + A data stream ready to be used + + + + Opens the specified file for appending. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + The full or relative path to the file to be opened + ASCII/Binary + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + A stream for writing to the file on the server + + + + Opens the specified file for appending. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + The full or relative path to the file to be opened + ASCII/Binary + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + A stream for writing to the file on the server +
          + + + Opens a data stream. + + The command to execute that requires a data stream + Restart location in bytes for file transfer + The data stream. + + + + Opens a FXP PASV connection between the source FTP Server and the destination FTP Server + + FtpClient instance of the destination FTP Server + Provide an implementation of IProgress to track download progress. + A data stream ready to be used + + + + Opens the specified type of passive data stream + + Type of passive data stream to open + The command to execute that requires a data stream + Restart location in bytes for file transfer + A data stream ready to be used + + + + Opens the specified file for reading + + The full or relative path of the file + ASCII/Binary + Resume location + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + A stream for reading the file on the server + + + + Opens the specified file for reading + + The full or relative path of the file + ASCII/Binary + Resume location + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + A stream for reading the file on the server +
          + + + Opens the specified file for writing. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + Full or relative path of the file + ASCII/Binary + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + A stream for writing to the file on the server + + + + Opens the specified file for writing. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + Full or relative path of the file + ASCII/Binary + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + A stream for writing to the file on the server +
          + + + Renames an object on the remote file system. + Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory(). + Throws exceptions if the file does not exist, or if the destination file already exists. + + The full or relative path to the object + The new full or relative path including the new name of the object + + + + Sets the data type of information sent over the data stream + + ASCII/Binary + + + Internal method that handles actually setting the data type. + Thrown when a FTP Command error condition occurs. + Thrown when a FTP error condition occurs. + ASCII/Binary. + This method doesn't do any locking to prevent recursive lock scenarios. Callers must do their own locking. + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The owner permissions + The group permissions + The other permissions + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The permissions in CHMOD format + + + + Changes the modified time of a remote file + + The full path to the file + The new modified date/time value + + + + Sets the work directory on the server + + The path of the directory to change to + + + + Transfer the specified directory from the source FTP Server onto the remote FTP Server using the FXP protocol. + You will need to create a valid connection to your remote FTP Server before calling this method. + In Update mode, we will only transfer missing files and preserve any extra files on the remote FTP Server. This is useful when you want to simply transfer missing files from an FTP directory. + Currently Mirror mode is not implemented. + Only transfers the files and folders matching all the rules provided, if any. + All exceptions during transfer are caught, and the exception is stored in the related FtpResult object. + + The full or relative path to the folder on the source FTP Server. If it does not exist, an empty result list is returned. + Valid FTP connection to the destination FTP Server + The full or relative path to destination folder on the remote FTP Server + Only Update mode is currently implemented + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide a callback to track download progress. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Make a list of files to transfer + + + + + Transfer each file + + + + + + + + + + + Transfer the specified file from the source FTP Server to the destination FTP Server using the FXP protocol. + High-level API that takes care of various edge cases internally. + + The full or relative path to the file on the source FTP Server + Valid FTP connection to the destination FTP Server + The full or relative path to destination file on the remote FTP Server + Indicates if the folder should be created on the remote FTP Server + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Provide a callback to track download progress. + + Returns a FtpStatus indicating if the file was transferred. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts. + + + + + Transfers a file from the source FTP Server to the destination FTP Server via the FXP protocol + + + + + Uploads the specified byte array as a file onto the server. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full data of the file, as a byte array + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + Provide a callback to track upload progress. + + + + Uploads the specified directory onto the server. + In Mirror mode, we will upload missing files, and delete any extra files from the server that are not present on disk. This is very useful when publishing an exact copy of a local folder onto an FTP server. + In Update mode, we will only upload missing files and preserve any extra files on the server. This is useful when you want to simply upload missing files to a server. + Only uploads the files and folders matching all the rules provided, if any. + All exceptions during uploading are caught, and the exception is stored in the related FtpResult object. + + The full path of the local folder on disk that you want to upload. If it does not exist, an empty result list is returned. + The full path of the remote FTP folder to upload into. It is created if it does not exist. + Mirror or Update mode, as explained above + If the file exists on disk, should we skip it, resume the upload or restart the upload? + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide a callback to track upload progress. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Create all the sub directories within the main directory + + + + + Upload all the files within the main directory + + + + + Delete the extra remote files if in mirror mode and the directory was pre-existing + + + + + Uploads the specified file directly onto the server. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Provide a callback to track download progress. + FtpStatus flag indicating if the file was uploaded, skipped or failed to transfer. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + + + + + Upload a local file to a remote file + + + + + + + + + + + + + + + + Upload the given stream to the server as a new file. Overwrites the file if it exists. + Writes data in chunks. Retries if server disconnects midway. + + + + + Setup a resume on an upload failure + + + + + Uploads the given file paths to a single folder on the server. + All files are placed directly into the given folder regardless of their path on the local filesystem. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + Faster than uploading single files with since it performs a single "file exists" check rather than one check per file. + + The full or relative paths to the files on the local file system. Files can be from multiple folders. + The full or relative path to the directory that files will be uploaded on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are uploaded, and the files that don't pass are skipped. + + Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Remove successfully uploaded files. + + + + + Uploads the given file paths to a single folder on the server. + All files are placed directly into the given folder regardless of their path on the local filesystem. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + Faster than uploading single files with since it performs a single "file exists" check rather than one check per file. + + The full or relative paths to the files on the local file system. Files can be from multiple folders. + The full or relative path to the directory that files will be uploaded on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are uploaded, and the files that don't pass are skipped. + + Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Get a list of all the files that need to be uploaded + + + + + Uploads the specified stream as a file onto the server. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full data of the file, as a stream + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + Provide a callback to track upload progress. + + + + Verify an FXP file transfer + + + + + + + + + + + Verify a file transfer + + + + + + + + + Interface for the AsyncFtpClient class. + For detailed documentation of the methods, please see the FtpClient class or check the Wiki on the FluentFTP Github project. + + + + + Base object for FtpClient, AsyncFtpClient and the internal client + + + + + Interface for the FtpClient class. + For detailed documentation of the methods, please see the FtpClient class or check the Wiki on the FluentFTP Github project. + + + + + Server features + + + + + This server said it doesn't support anything! + + + + + Supports the MLST command (machine listings) + + + + + Supports the SIZE command (get file size) + + + + + Supports the MDTM command (get file date modified) + + + + + Supports download/upload stream resumes + + + + + Supports UTF8 + + + + + PRET Command used by DrFTPD + + + + + Server supports the MFMT command for setting the + modified date of an object on the server + + + + + Server supports the MFCT command for setting the + created date of an object on the server + + + + + Server supports the MFF command for setting certain facts + about file system objects. It typically allows you to modify + the last modification time, creation time, UNIX group/owner/mode of a file. + + + + + Server supports the STAT command + + + + + Support for the HASH command + + + + + Support for the MD5 command + + + + + Support for the XMD5 command + + + + + Support for the XCRC command + + + + + Support for the XSHA1 command + + + + + Support for the XSHA256 command + + + + + Support for the XSHA512 command + + + + + Support for the EPSV file-transfer command + + + + + Support for the CPSV command + + + + + Support for the NOOP command + + + + + Support for the CLNT command + + + + + Support for the SSCN command + + + + + Support for the SITE MKDIR (make directory) server-specific command for ProFTPd + + + + + Support for the SITE RMDIR (remove directory) server-specific command for ProFTPd + + + + + Support for the SITE UTIME server-specific command for ProFTPd + + + + + Support for the SITE SYMLINK server-specific command for ProFTPd + + + + + Support for the AVBL (get available space) server-specific command for Serv-U + + + + + Support for the THMB (get image thumbnail) server-specific command for Serv-U + + + + + Support for the RMDA (remove directory) server-specific command for Serv-U + + + + + Support for the DSIZ (get directory size) server-specific command for Serv-U + + + + + Support for the HOST (get host) server-specific command for Serv-U + + + + + Support for the CCC (Clear Command Channel) command, which makes a secure FTP channel revert back to plain text. + + + + + Support for the MODE Z (compression enabled) command, which says that the server supports ZLIB compression for all transfers + + + + + Support for the LANG (language negotiation) command. + + + + + Support for the MMD5 (multiple MD5 hash) command. + + + + + Flags that control how file comparison is performed. If you are unsure what to use, set it to Auto. + + + + + Compares the file size and the checksum of the file (using the first supported hash algorithm). + The local and remote file sizes and checksums should exactly match for the file to be considered equal. + + + + + Compares the file size. + Both file sizes should exactly match for the file to be considered equal. + + + + + Compares the date modified of the file. + Both dates should exactly match for the file to be considered equal. + + + + + Compares the checksum or hash of the file using the first supported hash algorithm. + Both checksums should exactly match for the file to be considered equal. + + + + + The result of a file comparison operation. + + + + + Success. Local and remote files are exactly equal. + + + + + Failure. Local and remote files do not match. + + + + + Failure. Either the local or remote file does not exist. + + + + + Failure. Checksum verification is enabled and your server does not support any hash algorithm. + + + + + Data connection type + + + + + This type of data connection attempts to use the EPSV command + and if the server does not support EPSV it falls back to the + PASV command before giving up unless you are connected via IPv6 + in which case the PASV command is not supported. + + + + + Passive data connection. EPSV is a better + option if it's supported. Passive connections + connect to the IP address dictated by the server + which may or may not be accessible by the client + for example a server behind a NAT device may + give an IP address on its local network that + is inaccessible to the client. Please note that IPv6 + does not support this type data connection. If you + ask for PASV and are connected via IPv6 EPSV will + automatically be used in its place. + + + + + Same as PASV except the host supplied by the server is ignored + and the data connection is made to the same address that the control + connection is connected to. This is useful in scenarios where the + server supplies a private/non-routable network address in the + PASV response. It's functionally identical to EPSV except some + servers may not implement the EPSV command. Please note that IPv6 + does not support this type data connection. If you + ask for PASV and are connected via IPv6 EPSV will + automatically be used in its place. + + + + + Extended passive data connection, recommended. Works + the same as a PASV connection except the server + does not dictate an IP address to connect to, instead + the passive connection goes to the same address used + in the control connection. This type of data connection + supports IPv4 and IPv6. + + + + + This type of data connection attempts to use the EPRT command + and if the server does not support EPRT it falls back to the + PORT command before giving up unless you are connected via IPv6 + in which case the PORT command is not supported. + + + + + Active data connection, not recommended unless + you have a specific reason for using this type. + Creates a listening socket on the client which + requires firewall exceptions on the client system + as well as client network when connecting to a + server outside of the client's network. In addition + the IP address of the interface used to connect to the + server is the address the server is told to connect to + which, if behind a NAT device, may be inaccessible to + the server. This type of data connection is not supported + by IPv6. If you specify PORT and are connected via IPv6 + EPRT will automatically be used instead. + + + + + Extended active data connection, not recommended + unless you have a specific reason for using this + type. Creates a listening socket on the client + which requires firewall exceptions on the client + as well as client network when connecting to a + server outside of the client's network. The server + connects to the IP address it sees the client coming + from. This type of data connection supports IPv4 and IPv6. + + + + + Type of data transfer to do + + + + + ASCII transfer + + + + + Binary transfer + + + + + Not known yet + + + + + Controls how timestamps returned by the server are converted. + + + + + Returns the server timestamps in Server Time. No timezone conversion is performed. + + + + + Returns the server timestamps in Local Time. + Ensure that the TimeZone property is correctly set to the server's timezone. + If you are on .NET Core/.NET Standard, you need to set the LocalTimeZone property for this to work. + + + + + Returns the server timestamps in UTC (Coordinated Universal Time). + Ensure that the TimeZone property is correctly set to the server's timezone. + + + + + Defines the type of encryption to use + + + + + Plain text. + + + + + FTPS encryption is used from the start of the connection, port 990. + + + + + Connection starts in plain text and FTPS encryption is enabled + with the AUTH command immediately after the server greeting. + + + + + FTPS encryption is used if supported by the server, otherwise it falls back to plaintext FTP communication. + + + + + Defines how multi-file processes should handle a processing error. + + & Cannot Be Combined + + + + No action is taken upon errors. The method absorbs the error and continues. + + + + + If any files have completed successfully (or failed after a partial download/upload) then should be deleted. + This will simulate an all-or-nothing transaction downloading or uploading multiple files. If this option is not + combined with or then the method will + continue to process all items whether if they are successful or not and then delete everything if a failure was + encountered at any point. + + + + + The method should stop processing any additional files and immediately return upon encountering an error. + Cannot be combined with + + + + + The method should stop processing any additional files and immediately throw the current error. + Cannot be combined with + + + + + Determines how we handle downloading and uploading folders + + + + + Dangerous but useful method! + Uploads/downloads all the missing files to update the server/local filesystem. + Deletes the extra files to ensure that the target is an exact mirror of the source. + + + + + Safe method! + Uploads/downloads all the missing files to update the server/local filesystem. + + + + + Different types of hashing algorithms for computing checksums. + + + + + Automatic algorithm, or hashing not supported. + + + + + SHA-1 algorithm + + + + + SHA-256 algorithm + + + + + SHA-512 algorithm + + + + + MD5 algorithm + + + + + CRC algorithm + + + + + IP Versions to allow when connecting + to a server. + + + + + Unknown protocol. + + + + + Internet Protocol Version 4 + + + + + Internet Protocol Version 6 + + + + + Allow any supported version + + + + + Flags that can control how a file listing is performed. If you are unsure what to use, set it to Auto. + + + + + Tries machine listings (MDTM command) if supported, + and if not then falls back to OS-specific listings (LIST command) + + + + + Load the modify date using MDTM when it could not + be parsed from the server listing. This only pertains + to servers that do not implement the MLSD command. + + + + + Load the file size using the SIZE command when it + could not be parsed from the server listing. This + only pertains to servers that do not support the + MLSD command. + + + + + Combines the Modify and Size flags + + + + + Show hidden/dot files. This only pertains to servers + that do not support the MLSD command. This option + makes use the non standard -a parameter to LIST to + tell the server to show hidden files. Since it's a + non-standard option it may not always work. MLSD listings + have no such option and whether or not a hidden file is + shown is at the discretion of the server. + + + + + Force the use of OS-specific listings (LIST command) even if + machine listings (MLSD command) are supported by the server + + + + + Use the NLST command instead of LIST for a reliable file listing + + + + + Force the use of the NLST command (the slowest mode) even if machine listings + and OS-specific listings are supported by the server + + + + + Sets the ForceList flag and uses `LS' instead of `LIST' as the + command for getting a directory listing. This option overrides + ForceNameList and ignores the AllFiles flag. + + + + + Gets files within subdirectories as well. Adds the -r option to the LIST command. + Some servers may not support this feature. + + + + + Do not retrieve path when no path is supplied to GetListing(), + instead just execute LIST with no path argument. + + + + + Include two extra items into the listing, for the current directory (".") + and the parent directory (".."). Meaningless unless you want these two + items for some reason. + + + + + Force the use of STAT command for getting file listings + + + + + Determines how we handle partially downloaded files + + + + + Restart the download of a file if it is partially downloaded. + Overwrites the file if it exists on disk. + + + + + Resume the download of a file if it is partially downloaded. + Appends to the file if it exists, by checking the length and adding the missing data. + If the file doesn't exist on disk, a new file is created. + + + + + Blindly skip downloading the file if it exists on disk, without any more checks. + This is only included to be compatible with legacy behaviour. + + + + + Append is now renamed to Resume. + + + + + Type of file system of object + + + + + The default subtype. + + + + + A sub directory within the listed directory. + (Only set when machine listing is available and type is 'dir') + + + + + The self directory. + (Only set when machine listing is available and type is 'cdir') + + + + + The parent directory. + (Only set when machine listing is available and type is 'pdir') + + + + + Type of file system of object + + + + + A file + + + + + A directory + + + + + A symbolic link + + + + + Defines the operating system of the FTP server. + + + + + Unknown operating system + + + + + Definitely Windows or Windows Server + + + + + Definitely Unix or AIX-based server + + + + + Definitely VMS or OpenVMS server + + + + + Definitely IBM OS/400 server + + + + + Definitely IBM z/OS server + + + + + Definitely SUN OS/Solaris server + + + + + For setting up rules + + + + + If the value is exactly equal to X + + + + + If the value is anything except for X + + + + + If the value is less than X + + + + + If the value is less than or equal to X + + + + + If the value is more than X + + + + + If the value is more than or equal to X + + + + + If the value is between the range of X and Y + + + + + If the value is outside the range of X and Y + + + + + The type of response the server responded with + + + + + Use the custom parser that you have set on the FtpClient object (ListingCustomParser property) + + + + + Automatically detect the file listing parser to use based on the FTP server (SYST command). + + + + + Machine listing parser, works on any FTP server supporting the MLST/MLSD commands. + + + + + File listing parser for Windows/IIS. + + + + + File listing parser for Unix. + + + + + Alternate parser for Unix. Use this if the default one does not work. + + + + + File listing parser for Vax/VMS/OpenVMS. + + + + + File listing parser for IBM z/OS + + + + + File listing parser for IBM OS/400. + + + + + File listing parser for Tandem/Nonstop Guardian OS. + + + + + Types of file permissions + + + + + No access + + + + + Executable + + + + + Writable + + + + + Readable + + + + + This enum is obsolete. Please use FtpRemoteExists instead. + + + + + Defines the behavior for uploading/downloading files that already exist + + + + + Do not check if the file exists. A bit faster than the other options. + Only use this if you are SURE that the file does not exist on the server. + Otherwise it can cause the UploadFile method to hang due to filesize mismatch. + + + + + Resume uploading by appending to the remote file, but don't check if it exists and add missing data. + This might be required if you don't have permissions on the server to list files in the folder. + Only use this if you are SURE that the file does not exist on the server otherwise it can cause the UploadFile method to hang due to filesize mismatch. + + + + + Append the local file to the end of the remote file, but don't check if it exists and add missing data. + This might be required if you don't have permissions on the server to list files in the folder. + Only use this if you are SURE that the file does not exist on the server otherwise it can cause the UploadFile method to hang due to filesize mismatch. + + + + + Skip the file if it exists, without any more checks. + + + + + Overwrite the file if it exists. + + + + + Resume uploading by appending to the remote file if it exists. + It works by checking the remote file length and adding the missing data. + + + + + Append the local file to the end of the remote file. + + + + + Append is now renamed to Resume. Alternatively you can use AddToEnd. + + + + + The type of response the server responded with + + + + + No response + + + + + Success + + + + + Success + + + + + Success + + + + + Temporary failure + + + + + Permanent failure + + + + + Determines how SSL Buffering is handled + + + + + Enables buffering in all cases except when using FTP proxies. + + + + + Always disables SSL Buffering to reduce FTPS connectivity issues. + + + + + Always enables SSL Buffering to massively speed up FTPS operations. + + + + + Defines the type of the FTP server software. + Add constants here as you add detection scripts for individual server types. + + + + + Unknown FTP server software + + + + + Definitely Apache FTP server + + + + + Definitely BFTPd server + + + + + Definitely Cerberus FTP server + + + + + Definitely CrushFTP server + + + + + Definitely D-Link FTP server + + + + + Definitely FileZilla server + + + + + Definitely FritzBox FTP server + + + + + Definitely FTP2S3 gateway server + + + + + Definitely glFTPd server + + + + + Definitely GlobalScape EFT server + + + + + Definitely Homegate FTP server + + + + + Definitely Huawei Technologies HG5xxx series FTP server + + + + + Definitely IBM z/OS FTP server + + + + + Definitely IBM OS/400 FTP server + + + + + Definitely ABB IDAL FTP server + + + + + Definitely MikroTik RouterOS FTP server + + + + + Definitely HP NonStop/Tandem server + + + + + Definitely OpenVMS server + + + + + Definitely ProFTPD server + + + + + Definitely PureFTPd server + + + + + Definitely PyFtpdLib server + + + + + Definitely Rumpus server + + + + + Definitely Serv-U server + + + + + Definitely Sun OS Solaris FTP server + + + + + Definitely Titan FTP server + + + + + Definitely TP-LINK FTP server + + + + + Definitely VsFTPd server + + + + + Definitely Windows CE FTP server + + + + + Definitely Windows Server/IIS FTP server + + + + + Definitely WS_FTP server + + + + + Definitely WuFTPd server + + + + + Definitely XLight FTP server + + + + + Types of special UNIX permissions + + + + + No special permissions are set + + + + + Sticky bit is set + + + + + SGID bit is set + + + + + SUID bit is set + + + + + The result of an upload or download operation + + + + + The upload or download failed with an error transferring, or the source file did not exist + + + + + The upload or download completed successfully + + + + + The upload or download was skipped because the file already existed on the target + + + + + Defines the level of the tracing message. Depending on the framework version this is translated + to an equivalent logging level in System.Diagnostices (if available) + + + + + Used for logging Debug or Verbose level messages + + + + + Used for logging Informational messages + + + + + Used for logging non-fatal or ignorable error messages + + + + + Used for logging Error messages that may need investigation + + + + + Defines if additional verification and actions upon failure that + should be performed when uploading/downloading files using the high-level APIs. Ignored if the + FTP server does not support any hashing algorithms. + + + + + No verification of the file is performed + + + + + The checksum of the file is verified, if supported by the server. + If the checksum comparison fails then we retry the download/upload + a specified amount of times before giving up. (See ) + + + + + The checksum of the file is verified, if supported by the server. + If the checksum comparison fails then the failed file will be deleted. + If combined with , then + the deletion will occur if it fails upon the final retry. + + + + + The checksum of the file is verified, if supported by the server. + If the checksum comparison fails then an exception will be thrown. + If combined with , then the throw will + occur upon the failure of the final retry, and/or if combined with + the method will throw after the deletion is processed. + + + + + The checksum of the file is verified, if supported by the server. + If the checksum comparison fails then the method returns false and no other action is taken. + + + + + Flags that can control how a file listing is performed. If you are unsure what to use, set it to Auto. + + + + + Not z/OS Server + + + + + HFS / USS + + + + + z/OS classic dataset + + + + + Partitioned dataset member, RECFM != U + + + + + Partitioned dataset member, RECFM = U + + + + + SITE FILETYPE=JES LIST + + + + + Event fired if a bad SSL certificate is encountered. This even is used internally; if you + don't have a specific reason for using it you are probably looking for FtpSslValidation. + + + + + + + Event is fired when a SSL certificate needs to be validated + + The control connection that triggered the event + Event args + + + + Event args for the FtpSslValidationError delegate + + + + + The certificate to be validated + + + + + The certificate chain + + + + + Validation errors, if any. + + + + + Gets or sets a value indicating if this certificate should be accepted. The default + value is false. If the certificate is not accepted, an AuthenticationException will + be thrown. + + + + + Exception triggered on FTP authentication failures + + + + + Initializes a new instance of a FtpAuthenticationException + + Status code + Associated message + + + + Initializes a new instance of a FtpAuthenticationException + + The FtpReply to build the exception from + + + + Exception triggered on FTP command failures + + + + + Gets the completion code associated with the response + + + + + The type of response received from the last command executed + + + + + Setup the error message string + + + + + Initializes a new instance of a FtpResponseException + + Status code + Associated message + + + + Initializes a new instance of a FtpResponseException + + The FtpReply to build the exception from + + + + FTP related error + + + + + Initializes a new instance of the class. + + The error message + + + + Initializes a new instance of the class with an inner exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Exception is thrown when the required hash algorithm is unsupported by the server. + + + + + Gets the unsupported hash algorithm + + + + + Default constructor + + + + + Algorithm-specific constructor + + + + + Exception is thrown when TLS/SSL encryption could not be negotiated by the FTP server. + + + + + AuthenticationException that caused this. + + + + + Default constructor + + + + + Custom error message + + Error message + + + + Exception thrown by FtpListParser when parsing of FTP directory listing fails. + + + + + Creates a new FtpListParseException. + + + + + Exception is thrown by FtpClient/AsyncFtpClient when the primary file or folder to be downloaded is missing. + + + + + Gets the type of file system object. + + + + + Gets the full path name to the file or folder. + + + + + Gets the name of the file or folder. Does not include the full path. + + + + + Creates a new FtpMissingObjectException. + + The original exception. + + + + Exception is thrown by FtpSocketStream when there is no FTP server socket to connect to. + + + + + Creates a new FtpMissingSocketException. + + The original exception. + + + + FtpProtocolUnsupportedException + + + + + FtpProtocolUnsupportedException + + Error message + + + + FtpProxyException + + + + + FtpProxyException + + + + + FtpProxyException + + + + + FtpProxyException + + + + + Exception is thrown when TLS/SSL encryption could not be negotiated by the FTP server. + + + + + Default constructor + + + + + Custom error message + + Error message + + + + Extension methods related to FTP tasks + + + + + Check if operation can resume after . + + Received exception. + Result of checking. + + + + Extension methods related to FTP tasks + + + + + Checks if the array is null or 0 length. + + + + + Checks if the array is null or 0 length. + + + + + Converts the arguments to an array of strings. + + + + + Ensures the given item is only added once. If it was not present true is returned, else false is returned. + + + + + Shallow clones the list by copying each item to a new list. + + + + + Extension methods related to FTP date time values + + + + + Converts the FTP date string into a DateTime object, without performing any timezone conversion. + + The date string + The client object this is done for + Date formats to try parsing the value from (eg "yyyyMMddHHmmss") + A object representing the date, or if there was a problem + + + + Generates an FTP date-string from the DateTime object, without performing any timezone conversion. + + The date value + A string representing the date + + + + Generates C# code to create this date. + + + + + Extension methods related to FTP tasks + + + + + Validates that the FtpError flags set are not in an invalid combination. + + The error handling options set + True if a valid combination, otherwise false + + + + Checks if the operation was successful or skipped (indicating success). + + + + + Checks if the operation has failed. + + + + + Extension methods related to FTP tasks + + + + + Checks if the given file exists in the given file listing. + Supports servers that return: 1) full paths, 2) only filenames, 3) full paths without slash prefixed, 4) full paths with invalid slashes + + The listing returned by GetNameListing + The full file path you want to check + + + + + Checks if the given file exists in the given file listing. + + The listing returned by GetListing + The full file path you want to check + + + + + Extension methods related to FTP tasks + + + + + Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB) + + + + + Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB) + + + + + Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB) + + + + + Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB) + + + + + Parses a line from a file listing using the first successful parser, or the specified parser. + Returns an FtpListItem object representing the parsed line, or null if the line was unable to be parsed. + + + + + the FTP connection that owns this parser + + + + + current parser, or parser set by user + + + + + parser calculated based on system type (SYST command) + + + + + if we have detected that the current parser is valid + + + + + Is the version number returned as part of the filename? + + Some VMS FTP servers do not permit a file to be deleted unless + the filename includes the version number. Note that directories are + never returned with the version number. + + + + + Initializes a new instance of the class. + + An existing object + + + + Try to auto-detect which parser is suitable given a system string. + + + + + Parse raw file from server into a file object, using the currently active parser. + + + + + Validate if the current parser is correct, or if another parser seems more appropriate. + + + + + Validate if the current parser is correct + + + + + Helper class to convert FtpHashAlgorithm + + + + + Get FtpHashAlgorithm from its string representation + + Name of the hash algorithm + The FtpHashAlgorithm + + + + Get string representation of FtpHashAlgorithm + + FtpHashAlgorithm to be converted into string + Name of the hash algorithm + + + + Get the first supported algorithm, in the standard order of preference. If no hashing algos found, returns NONE. + + + + + Parses the received FTP hash response into a new FtpHash object. + + + + + Extension methods related to FTP tasks + + + + + Returns true if the given path is a directory path. + + + + + Ensures the given directory exists. + + + + + Combine the given base path with the relative path + + + + + The local ports. + + + + + Get random local port for the given local IP address + + + + + Log a message to the given IFluentLogger class. + + + + + Get the log prefix for the given trace level type. + + + + + Checks if the given listing is a valid IBM OS/400 file listing + + + + + Parses IBM OS/400 format listings + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Parses the last modified date from IBM OS/400 format listings + + + + + Checks if the given listing is a valid IBM z/OS file listing + + + + + Parses IBM z/OS format listings + + The FTP client + A line from the listing + Current location + FtpListItem if the item is able to be parsed + + + + Parses the last modified date from IBM z/OS format listings + + + + + Checks if the given listing is a valid Machine Listing item + + + + + Parses MLSD/MLST format listings + + A line from the listing + Server capabilities + The FTP client + FtpListItem if the item is able to be parsed + + + + Parses the date modified field from MLSD/MLST format listings + + + + + Parses the file size field from MLSD/MLST format listings + + + + + Parses the permissions from MLSD/MLST format listings + + + + + Checks if the given listing is a valid NonStop file listing + + + + + Parses NonStop format listings + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Parses the directory type and file size from NonStop format listings + + + + + Parses the last modified date from NonStop format listings + + + + + Checks if the given listing is a valid Unix file listing + + + + + Parses Unix format listings + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Parses the permissions from Unix format listings + + + + + Parses the link count from Unix format listings + + + + + Parses the owner and group permissions from Unix format listings + + + + + Parses the file size from Unix format listings + + + + + Parses day-of-month from Unix format listings + + + + + Parses the file or folder name from Unix format listings + + + + + Parses the last modified date from Unix format listings + + + + + Parses the last modified year from Unix format listings + + + + + Parses the last modified date from Unix format listings + + + + + Parses Unix format listings with alternate parser + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Checks if the given listing is a valid VMS file listing + + + + + Parses Vax/VMS format listings + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Parses the file size from Vax/VMS format listings + + + + + Parses the owner and group permissions from Vax/VMS format listings + + + + + Parses the permissions from Vax/VMS format listings + + + + + Parses the last modified date from Vax/VMS format listings + + + + + Checks if the given listing is a valid IIS/DOS file listing + + + + + Parses IIS/DOS format listings + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Parses the file or folder name from IIS/DOS format listings + + + + + Parses the file size and checks if the item is a directory from IIS/DOS format listings + + + + + Parses the last modified date from IIS/DOS format listings + + + + + Extension methods related to FTP tasks + + + + + Calculates the CHMOD value from the permissions flags + + + + + Calculates the permissions flags from the CHMOD value + + + + + Calculate the CHMOD integer value given a set of permissions. + + + + + Checks if the permission value has the given flag + + + + + Extension methods related to FTP tasks + + + + + Checks if this FTP path is a top level path + + + + + Checks if the given path is a root directory or working directory path + + + + + + + Converts the specified path into a valid FTP file system path. + Replaces invalid back-slashes with valid forward-slashes. + Replaces multiple slashes with single slashes. + Removes the ending postfix slash if any. + + The file system path + A path formatted for FTP + + + + Creates a valid FTP path by appending the specified segments to this string + + This string + The path segments to append + A valid FTP path + + + + Gets the parent directory path (formatted for a FTP server) + + The path + The parent directory path + + + + Gets the file name and extension from the path. + Supports paths with backslashes and forwardslashes. + + The full path to the file + The file name + + + + Converts a Windows or Unix-style path into its segments for segment-wise processing + + + + + + Get the full path of a given FTP Listing entry + + + + + Extension methods related to FTP tasks + + + + + Checks if every character in the string is whitespace, or the string is null. + + + + + Checks if the string is null or 0 length. + + + + + Join the given strings by a delimiter. + + + + + Join the given strings by a delimiter. + + + + + Adds a prefix to the given strings, returns a new array. + + + + + Adds a prefix to the given strings, returns a new array. + + + + + Ensure a string has the given prefix + + + + + Ensure a string has the given postfix + + + + + Remove a prefix from a string, only if it has the given prefix + + + + + Remove a postfix from a string, only if it has the given postfix + + + + + Escape a string into a valid C# string literal. + Implementation from StackOverflow - https://stackoverflow.com/a/14087738 + + + + + Split into fields by splitting on tokens + + + + + Checks if all the characters in this string are digits or dots + + + + + Checks if the string contains any of the given values + + + + + Checks if RexEx Pattern is valid + + + + + Checks if the reply contains any of the known error strings, by checking in case-insensitive manner. + + + + + Checks if the string equals any of these values, by checking in case-sensitive manner. + + + + + Checks if the string contains the given substring in a case-insensitive manner. + + + + + Checks if the string starts with the given substring in a case-insensitive manner. + + + + + Checks if the string ends with the given substring in a case-insensitive manner. + + + + + Extension methods related to FTP time span values + + + + + Extension methods related to FTP tasks + + + + + Ensures that the URI points to a server, and not a directory or invalid path. + + + + + + The current "state" of the client + + + + + Used to improve performance of OpenPassiveDataStream. + Enhanced-passive mode is tried once, and if not supported, is not tried again. + + + + + Used to improve performance of GetFileSize. + SIZE command is tried, and if the server cannot send it in ASCII mode, we switch to binary each time you call GetFileSize. + However most servers will support ASCII, so we can get the file size without switching to binary, improving performance. + + + + + Used to improve performance of GetListing. + You can set this to true by setting the RecursiveList property. + + + + + Used to automatically dispose cloned connections after FXP transfer has ended. + + + + + Cached value of the last read working directory (absolute path). + + + + + Cached value of the last set hash algorithm. + + + + + Did the FTPS connection fail during the last Connect/ConnectAsync attempt? + + + + + Did the UTF8 encoding setting work during the last Connect/ConnectAsync attempt? + + + + + Store the current data type setting + + + + + Allow checking for stale data on socket? + + + + + We are in a sequence of commands that should not be interrupted + by an automatic reconnect + + + + + Count the reconnects + Reset this value when a non-reconnect takes place + + + + + These flags must be reset every time we connect, to allow for users to connect to + different FTP servers with the same client object. + + + + + These flags must be copied when we quickly clone the connection. + + + + + Avoid repeated DNS queries for the same host name + + + + + During and after a z/OS GetListing(), this value stores the + z/OS filesystem realm that was encountered. + The value is used internally to control the list parse mode + + + + + During and after a z/OS GetListing(), this value stores the + the LRECL that was encountered (for a realm = Member only). + The value is used internally to calculate member sizes + + + + + Holds all the configuration settings for a single FTP client. + One FtpConfig object can only be bound to one client at a time. + If you want to reuse it across multiple FTP clients, then clone it and then reuse it. + + + + + Which FtpClient are we bound to? + + + + + Should the function calls be logged in Verbose mode? + + + + + Should the FTP server host IP/domain be shown in the logs (true) or masked out (false)? + + + + + Should the FTP username be shown in the logs (true) or masked out (false)? + + + + + Should the FTP password be shown in the logs (true) or masked out (false)? + + + + + Should the command duration be shown after each log command? + + + + + Flags specifying which versions of the internet protocol (IPV4 or IPV6) to + support when making a connection. All addresses returned during + name resolution are tried until a successful connection is made. + You can fine tune which versions of the internet protocol to use + by adding or removing flags here. I.e., setting this property + to FtpIpVersion.IPv4 will cause the connection process to + ignore IPv6 addresses. The default value is ANY version. + + + + + Gets or sets the length of time in milliseconds + that must pass since the last socket activity + before calling + on the socket to test for connectivity. + Setting this interval too low will + have a negative impact on performance. Setting this + interval to 0 disables Polling all together. + The default value is 15 seconds. + + + + + Gets or sets a value indicating whether a test should be performed to + see if there is stale (unrequested data) sitting on the socket. In some + cases the control connection may time out but before the server closes + the connection it might send a 4xx response that was unexpected and + can cause synchronization errors with transactions. To avoid this + problem the method checks to see if there is any data + available on the socket before executing a command. On Azure hosting + platforms this check can cause an exception to be thrown. In order + to work around the exception you can set this property to false + which will skip the test entirely however doing so eliminates the + best effort attempt of detecting such scenarios. See this thread + for more details about the Azure problem: + https://netftp.codeplex.com/discussions/535879 + + + + + Gets or sets the length of time in milliseconds after last command + (NOOP or other) that a NOOP command is sent by /. + This is called during downloading/uploading. Setting this + interval to 0 disables / all together. + The default value is 0 (disabled). + + + + + When this value is set to true (default) the control connection + will set which features are available by executing the FEAT command + when the connect method is called. + + + + + Client certificates to be used in SSL authentication process + + + + + Delegate used for resolving local address, used for active data connections + This can be used in case you're behind a router, but port forwarding is configured to forward the + ports from your router to your internal IP. In that case, we need to send the router's IP instead of our internal IP. + + + + + Ports used for Active Data Connection. + Useful when your FTP server has certain ports that are blocked or used for other purposes. + + + + + Ports blocked for Passive Data Connection (PASV and EPSV). + Useful when your FTP server has certain ports that are blocked or used for other purposes. + + + + + Maximum number of passive connections made in order to find a working port for Passive Data Connection (PASV and EPSV). + Only used if PassiveBlockedPorts is non-null. + + + + + Data connection type, default is AutoPassive which tries + a connection with EPSV first and if it fails then tries + PASV before giving up. If you know exactly which kind of + connection you need you can slightly increase performance + by defining a specific type of passive or active data + connection here. + + + + + Disconnect from the server without sending QUIT. This helps + work around IOExceptions caused by buggy connection resets + when closing the control connection. + + + + + Gets or sets the length of time in milliseconds to wait for a connection + attempt to succeed before giving up. Default is 0 (Use OS default timeout) + See: https://github.com/robinrodricks/FluentFTP/wiki/FTP-Connection#connection-timeout-settings + and: https://github.com/robinrodricks/FluentFTP/wiki/FTP-Connection#faq_timeoutwindows + + + + + Gets or sets the length of time wait in milliseconds for data to be + read from the underlying stream. The default value is 15000 (15 seconds). + + + + + Gets or sets the length of time in milliseconds for a data connection + to be established before giving up. Default is 15000 (15 seconds). + + + + + Gets or sets the length of time in milliseconds the data channel + should wait for the server to send data. Default value is + 15000 (15 seconds). + + + + + Gets or sets a value indicating if should be set on + the underlying stream's socket. If the connection is alive, the option is + adjusted in real-time. The value is stored and the KeepAlive option is set + accordingly upon any new connections. The value set here is also applied to + all future data streams. It has no affect on cloned control connections or + data connections already in progress. The default value is false. + + + + + Type of SSL to use, or none. Default is none. Explicit is TLS, Implicit is SSL. + + + + + Indicates if data channel transfers should be encrypted. Only valid if + property is not equal to . + + + + + Encryption protocols to use. Only valid if EncryptionMode property is not equal to . + Default value is .NET Framework defaults from the class. + + + + + Whether to use SSL Buffering to speed up data transfer during FTP operations. + SSL Buffering is always disabled on .NET 5.0 and later due to platform issues (see issue 682 in FluentFTP issue tracker). + + + + + Gets or sets the max number of socket write/read transactions + before an automatic disconnect/reconnect is performed. + This is required to bypass an SSL issue that occurs after a specific number of transactions. + Set to zero to disable automatic reconnects. + + + + + Accept any SSL certificate received from the server and skip performing + the validation using the ValidateCertificate callback. + Useful for Powershell users. + + + + + Indicates if the certificate revocation list is checked during authentication. + Useful when you need to maintain the certificate chain validation, + but skip the certificate revocation check. + WARNING: Enabling this can cause memory leaks in some conditions (see issue #710 for details). + + + + + Controls if the file listings are downloaded in Binary or ASCII mode. + + + + + File listing parser to be used. + Automatically calculated based on the type of the server at the time of connection. + If you want to override this property, make sure to do it after calling Connect. + + + + + Culture used to parse file listings + + + + + Custom file listing parser to be used. + + + + + Callback format to implement your custom FTP listing line parser. + + The line from the listing + The server capabilities + The FTP client + Return an FtpListItem object if the line can be parsed, else return null + + + + The timezone of the FTP server. If the server is in Tokyo with UTC+9 then set this to 9. + If the server returns timestamps in UTC then keep this 0. + + + + + The timezone of your machine. If your machine is in Tokyo with UTC+9 then set this to 9. + If your machine is synchronized with UTC then keep this 0. + + + + + Server timestamps are converted into the given timezone. + ServerTime will return the original timestamp. + LocalTime will convert the timestamp into your local machine's timezone. + UTC will convert the timestamp into UTC format (GMT+0). + You need to set TimeZone and LocalTimeZone (.NET core only) for these to work. + + + + + If true, increases performance of GetListing by reading multiple lines + of the file listing at once. If false then GetListing will read file + listings line-by-line. If GetListing is having issues with your server, + set it to false. + + The number of bytes read is based upon . + + + + + Bytes to read during GetListing. Only honored if is true. + + + + + Gets or sets the number of bytes transferred in a single chunk (a single FTP command). + Used by / and / + to transfer large files in multiple chunks. + + + + + Gets or sets the size of the file buffer when reading and writing files on the local file system. + Used by / and / + and all the other file and directory transfer methods. + + + + + Gets or sets the retry attempts allowed when a verification failure occurs during download or upload. + This value must be set to 1 or more. + + + + + Rate limit for uploads in kbyte/s. Set this to 0 for unlimited speed. + Honored by high-level API such as Upload(), Download(), UploadFile(), DownloadFile().. + + + + + Rate limit for downloads in kbytes/s. Set this to 0 for unlimited speed. + Honored by high-level API such as Upload(), Download(), UploadFile(), DownloadFile().. + + + + + Controls if zero-byte files should be downloaded or skipped. + If false, then no file is created/overwritten into the filesystem. + + + + + Controls if the high-level API uploads files in Binary or ASCII mode. + + + + + Controls if the high-level API downloads files in Binary or ASCII mode. + + + + + Controls if the UploadDirectory API deletes the excluded files when uploading in Mirror mode. + If true, then any files that are excluded will be deleted from the FTP server if they are + excluded from the local system. This is done to keep the server in sync with the local system. + But if it is false, the excluded files are not touched on the server, and simply ignored. + + + + + Controls if the DownloadDirectory API deletes the excluded files when downloading in Mirror mode. + If true, then any files that are excluded will be deleted from the local filesystem if they are + excluded from the FTP server. This is done to keep the local filesystem in sync with the FTP server. + But if it is false, the excluded files are not touched on the local filesystem, and simply ignored. + + + + + Controls if the FXP server-to-server file transfer API uses Binary or ASCII mode. + + + + + Controls how often the progress reports are sent during an FXP file transfer. + The default value is 1000 (1 second). + + + + + Controls if the HOST command is sent immediately after the handshake. + Useful when you are using shared hosting and you need to inform the + FTP server which domain you want to connect to. + + + + + Controls which domain is sent with the HOST command. + If this is null, then the Host parameter of the FTP client is sent. + + + + + The local socket will be bound to the given local IP/interface. + This is useful if you have several usable public IP addresses and want to use a particular one. + + + + + Bind this FtpConfig object to the given FTP client. + + + + + + Return a deep clone of this FtpConfig object. + + + + + Copy settings from one config object to another. + + + + + Object that keeps track of an active FXP Connection between 2 FTP servers. + + + + + A connection to the FTP server where the file or folder is currently stored + + + + + A connection to the destination FTP server where you want to create the file or folder + + + + + A connection to the destination FTP server used to track progress while transfer is going on. + + + + + Gets a value indicating if this object has already been disposed. + + + + + Closes an FXP connection by disconnecting and disposing off the FTP clients that are + cloned for this FXP connection. Manually created FTP clients are untouched. + + + + + Object that keeps track of an active FXP Connection between 2 FTP servers. + + + + + A connection to the FTP server where the file or folder is currently stored + + + + + A connection to the destination FTP server where you want to create the file or folder + + + + + A connection to the destination FTP server used to track progress while transfer is going on. + + + + + Gets a value indicating if this object has already been disposed. + + + + + Closes an FXP connection by disconnecting and disposing off the FTP clients that are + cloned for this FXP connection. Manually created FTP clients are untouched. + + + + + Represents a computed hash of an object + on the FTP server. See the following link + for more information: + http://tools.ietf.org/html/draft-bryan-ftpext-hash-02 + + + + + Gets the algorithm that was used to compute the hash + + + + + Gets the computed hash returned by the server + + + + + Gets a value indicating if this object represents a + valid hash response from the server. + + + + + Computes the hash for the specified file and compares + it to the value in this object. CRC hashes are not supported + because there is no built-in support in the .net framework and + a CRC implementation exceeds the scope of this project. If you + attempt to call this on a CRC hash a will + be thrown. + + The file to compute the hash for + True if the computed hash matches what's stored in this object. + Thrown if called on a CRC Hash + + + + Computes the hash for the specified stream and compares + it to the value in this object. CRC hashes are not supported + because there is no built-in support in the .net framework and + a CRC implementation exceeds the scope of this project. If you + attempt to call this on a CRC hash a will + be thrown. + + The stream to compute the hash for + True if the computed hash matches what's stored in this object. + Thrown if called on a CRC Hash + + + + Creates an empty instance. + + + + + Represents a file system object on the server + + + + + Blank constructor, you will need to fill arguments manually. + + NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing(). + + + + + Constructor with mandatory arguments filled. + + NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing(). + + + + + Constructor with mandatory arguments filled. + + NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing(). + + + + + Gets the type of file system object. + + + + + Gets the sub type of file system object. + + + + + Gets the full path name to the file or folder. + + + + + Gets the name of the file or folder. Does not include the full path. + + + + + Gets the target a symbolic link points to. + + + + + Gets the number of links pointing to this file. Only supplied by Unix servers. + + + + + Gets the object that the LinkTarget points to. + + + + + Gets the last write time of the object after timezone conversion (if enabled). + + + + + Gets the created date of the object after timezone conversion (if enabled). + + + + + Gets the last write time of the object before any timezone conversion. + + + + + Gets the created date of the object before any timezone conversion. + + + + + Gets the size of the object. + + + + + Gets special UNIX permissions such as Sticky, SUID and SGID. + + + + + Gets the owner permissions. + + + + + Gets the group permissions. + + + + + Gets the others permissions. + + + + + Gets the raw string received for the file permissions. + Use this if the other properties are blank/invalid. + + + + + Gets the file permissions in the CHMOD format. + + + + + Gets the raw string received for the file's GROUP permissions. + Use this if the other properties are blank/invalid. + + + + + Gets the raw string received for the file's OWNER permissions. + Use this if the other properties are blank/invalid. + + + + + Gets the input string that was parsed to generate the + values in this object. + + + + + Returns a string representation of this object and its properties + + A string representing this object + + + + Returns a code representation of this object and its properties + + + + + Metadata of a single log message. + + + + + The current "profile" defining the client + + + + + The host IP address or URL of the FTP server + + + + + The FTP username and password used to login + + + + + A working Encryption Mode found for this profile + + + + + A working Ssl Protocol setting found for this profile + + + + + A working Data Connection Type found for this profile + + + + + A working Encoding setting found for this profile + + + + + A working Timeout setting found for this profile, or 0 if default value should be used + + + + + A working SocketPollInterval setting found for this profile, or 0 if default value should be used + + + + + A working RetryAttempts setting found for this profile, or 0 if default value should be used + + + + + If the server surely supports the given encoding. + + + + + Generates valid C# code for this connection profile. + + + + + + Class to report FTP file transfer progress during upload or download of files + + + + + A value between 0-100 indicating percentage complete, or -1 for indeterminate. + Used to track the progress of an individual file transfer. + + + + + A value indicating how many bytes have been transferred. + When unable to calculate percentage, having the partial byte count may help in providing some feedback. + + + + + A value representing the current Transfer Speed in Bytes per seconds. + Used to track the progress of an individual file transfer. + + + + + A value representing the calculated 'Estimated time of arrival'. + Used to track the progress of an individual file transfer. + + + + + Stores the absolute remote path of the current file being transferred. + + + + + Stores the absolute local path of the current file being transferred. + + + + + Stores the index of the file in the listing. + Only used when transferring multiple files or an entire directory. + + + + + Stores the total count of the files to be transferred. + Only used when transferring multiple files or an entire directory. + + + + + Create a new FtpProgress object for meta progress info. + + + + + Create a new FtpProgress object for individual file transfer progress. + + + + + Convert Transfer Speed (bytes per second) in human readable format + + + + + Create a new FtpProgress object for a file transfer and calculate the ETA, Percentage and Transfer Speed. + + + + + Connection profile for a proxy connection. + + + + + Proxy server host name. Mandatory. + + + + + Proxy server port. Mandatory. + + + + + Proxy server login credentials. Mandatory if your proxy needs authentication, leave it blank otherwise. + + + + + FTP server host name. Optional. You can either set it here or set `ftpClient.Host` later on. + + + + + FTP server port. Optional. You can either set it here or set `ftpClient.Port` later on. + + + + + FTP server login credentials. Optional. You can either set it here or set `ftpClient.Credentials` later on. + + + + + Represents a reply to an event on the server + + + + + The type of response received from the last command executed + + + + + The status code of the response + + + + + The message, if any, that the server sent with the response + + + + + Informational messages sent from the server + + + + + General success or failure of the last command executed, by checking the FTP status code. + 1xx, 2xx, 3xx indicate success and 4xx, 5xx are failures. + + + + + Gets the error message including any informational output + that was sent by the server. Sometimes the final response + line doesn't contain anything informative as to what was going + on with the server. Instead it may send information messages so + in an effort to give as meaningful as a response as possible + the informational messages will be included in the error. + + + + + Stores the command that produced this reply (if any) + + + + + Stores the result of a file transfer when UploadDirectory or DownloadDirectory is used. + + + + + Returns true if the file was downloaded, false if it was uploaded. + + + + + Gets the type of file system object. + + + + + Gets the size of the file, or 0 if unknown. + + + + + Gets the name and extension of the file. + + + + + Stores the absolute remote path of the current file being transferred. + + + + + Stores the absolute local path of the current file being transferred. + + + + + Gets the error that occurring during transferring this file, if any. + + + + + Returns true if the file was downloaded/uploaded, or the file was already existing with the same file size. + + + + + Was the file skipped? + + + + + Was the file skipped due to failing the rule condition? + + + + + Was there an error during transfer? You can read the Exception property for more details. + + + + + Convert this result to a FTP list item. + + + + + Human readable results + + + + + Reply from a SIZE command + + + + + The returned file size + + + + + The reply we got + + + + + A FTP client with a user@host proxy identification, that works with Blue Coat FTP Service servers. + + The 'blue coat variant' forces the client to wait for a 220 FTP response code in + the handshake phase. + + + + A FTP client with a user@host proxy identification. + Proxy information + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + Redefine the first dialog: auth with proxy information + + + A FTP client with a HTTP 1.1 proxy implementation. + + + A FTP client with a HTTP 1.1 proxy implementation + Proxy information + + + Redefine the first dialog: HTTP Frame for the HTTP 1.1 Proxy + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Connects to the server using an existing + + The existing socket stream + The token that can be used to cancel the entire process + + + + Connects to the server using an existing + + The existing socket stream + Host name + Port number + IP version to use + IP version to use + + + + Abstraction of an FtpClient with a proxy + + + + The proxy connection info. + + + A FTP client with a HTTP 1.1 proxy implementation + Proxy information + + + Redefine connect for FtpClient : authentication on the Proxy + The socket stream. + Cancellation token. + + + + A FTP client with a SOCKS4a proxy implementation. + + + + + Setup a SOCKS4a proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Called during . Typically extended by FTP proxies. + + + + + Connect + + + + + A FTP client with a SOCKS4 proxy implementation. + + + + + Setup a SOCKS4 proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Called during . Typically extended by FTP proxies. + + + + + Connect + + + + + A FTP client with a SOCKS5 proxy implementation. + + + + + Setup a SOCKS5 proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Connect + + + + A FTP client with a user@host proxy identification. + + + A FTP client with a user@host proxy identification. + Proxy information + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + Redefine the first dialog: auth with proxy information + + + + This class is not reusable. + You have to create a new instance for each connection / attempt. + + + + + This class is not reusable. + You have to create a new instance for each connection / attempt. + + + + + Translate the host name or IP address to a byte array. + + Host name or IP address. + Byte array representing IP address in bytes. + + + + Translate the destination port value to a byte array. + + Destination port. + Byte array representing an 16 bit port number as two bytes. + + + + This class is not reusable. + You have to create a new instance for each connection / attempt. + + + + + A FTP client with a user@host proxy identification, that works with Blue Coat FTP Service servers. + + The 'blue coat variant' forces the client to wait for a 220 FTP response code in + the handshake phase. + + + + A FTP client with a user@host proxy identification. + Proxy information + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + Redefine the first dialog: auth with proxy information + + + A FTP client with a HTTP 1.1 proxy implementation. + + + A FTP client with a HTTP 1.1 proxy implementation + Proxy information + + + Redefine the first dialog: HTTP Frame for the HTTP 1.1 Proxy + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Connects to the server using an existing + + The existing socket stream + + + + Connects to the server using an existing + + The existing socket stream + Host name + Port number + IP version to use + + + + Abstraction of an FtpClient with a proxy + + + + The proxy connection info. + + + A FTP client with a HTTP 1.1 proxy implementation + Proxy information + + + Redefine connect for FtpClient : authentication on the Proxy + The socket stream. + + + + A FTP client with a SOCKS4a proxy implementation. + + + + + Setup a SOCKS4a proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Called during Connect(). Typically extended by FTP proxies. + + + + + Connect + + + + + + Connect + + + + + + + + + A FTP client with a SOCKS4 proxy implementation. + + + + + Setup a SOCKS4 proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Called during Connect(). Typically extended by FTP proxies. + + + + + Connect + + + + + Connect + + + + + A FTP client with a SOCKS5 proxy implementation. + + + + + Setup a SOCKS5 proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Connect + + + + + Connect + + + + A FTP client with a user@host proxy identification. + + + A FTP client with a user@host proxy identification. + Proxy information + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + Redefine the first dialog: auth with proxy information + + + + Only accept files that have the given extension, or exclude files of a given extension. + + + + + If true, only files of the given extension are uploaded or downloaded. If false, files of the given extension are excluded. + + + + + The extensions to match + + + + + Only accept files that have the given extension, or exclude files of a given extension. + + If true, only files of the given extension are uploaded or downloaded. If false, files of the given extension are excluded. + The extensions to match + + + + Checks if the files has the given extension, or exclude files of the given extension. + + + + + Only accept files whose names match the given regular expression(s), or exclude files that match. + + + + + If true, only items where one of the supplied regex pattern matches are uploaded or downloaded. + If false, items where one of the supplied regex pattern matches are excluded. + + + + + The files names to match + + + + + Only accept items that match one of the supplied regex patterns. + + If true, only items where one of the supplied regex pattern matches are uploaded or downloaded. If false, items where one of the supplied regex pattern matches are excluded. + The list of regex patterns to match. Only valid patterns are accepted and stored. If none of the patterns are valid, this rule is disabled and passes all objects. + + + + Checks if the FtpListItem Name does match any RegexPattern + + + + + Only accept files that have the given name, or exclude files of a given name. + + + + + If true, only files of the given name are uploaded or downloaded. If false, files of the given name are excluded. + + + + + The files names to match + + + + + Only accept files that have the given name, or exclude files of a given name. + + If true, only files of the given name are downloaded. If false, files of the given name are excluded. + The files names to match + + + + Checks if the files has the given name, or exclude files of the given name. + + + + + Only accept folders whose names match the given regular expression(s), or exclude folders that match. + + + + + If true, only folders where one of the supplied regex pattern matches are uploaded or downloaded. + If false, folders where one of the supplied regex pattern matches are excluded. + + + + + The files names to match + + + + + Which path segment to start checking from + + + + + Only accept items that one of the supplied regex pattern. + + If true, only folders where one of the supplied regex pattern matches are uploaded or downloaded. If false, folders where one of the supplied regex pattern matches are excluded. + The list of regex patterns to match. Only valid patterns are accepted and stored. If none of the patterns are valid, this rule is disabled and passes all objects. + Which path segment to start checking from. 0 checks root folder onwards. 1 skips root folder. + + + + Checks if the FtpListItem Name does match any RegexPattern + + + + + Only accept folders that have the given name, or exclude folders of a given name. + + + + + Common folders to blacklist + + + + + If true, only folders of the given name are uploaded or downloaded. + If false, folders of the given name are excluded. + + + + + The folder names to match + + + + + Which path segment to start checking from + + + + + Only accept folders that have the given name, or exclude folders of a given name. + + If true, only folders of the given name are downloaded. If false, folders of the given name are excluded. + The folder names to match + Which path segment to start checking from. 0 checks root folder onwards. 1 skips root folder. + + + + Checks if the folders has the given name, or exclude folders of the given name. + + + + + Base class used for all FTP Rules. Extend this class to create custom rules. + You only need to provide an implementation for IsAllowed, and add any custom arguments that you require. + + + + + Rule object + + + + + Returns true if the object has passed this rules. + + + + + Returns true if the object has passed all the rules. + + + + + Only accept files that are of the given size, or within the given range of sizes. + + + + + Which operator to use + + + + + The first value, required for all operators + + + + + The second value, only required for BetweenRange and OutsideRange operators + + + + + Only accept files that are of the given size, or within the given range of sizes. + + Which operator to use + The first value, required for all operators + The second value, only required for BetweenRange and OutsideRange operators. + + + + Checks if the file is of the given size, or within the given range of sizes. + + + + + The base class used for all FTP server specific support. + You may extend this class to implement support for custom FTP servers. + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return true if your server is detected by the given SYST response message. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Return your FTP server's default capabilities. + Used if your server does not broadcast its capabilities using the FEAT command. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Perform server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Perform async server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Perform server-specific create directory commands here. + Return true if you executed a server-specific command. + + + + + Perform async server-specific create directory commands here. + Return true if you executed a server-specific command. + + + + + Perform server-specific post-connection commands here. + Return true if you executed a server-specific command. + + + + + Perform server-specific post-connection commands here. + Return true if you executed a server-specific command. + + + + + Return true if your server requires custom handling of file size. + + + + + Perform server-specific file size fetching commands here. + Return the file size in bytes. + + + + + Perform server-specific file size fetching commands here. + Return the file size in bytes. + + + + + Check if the given path is a root directory on your FTP server. + If you are unsure, return false. + + + + + Skip reporting a parser error + + + + + Always read to end of stream on a download + If you are unsure, return false. + + + + + Return true if the path is an absolute path according to your server's convention. + + + + + Return true if your server requires custom handling of absolute paths. + + + + + Perform server-specific path modification here. + Return the absolute path. + + + + + Perform server-specific path modification here. + Return the absolute path. + + + + + Return true if your server requires custom handling of absolute dir. + + + + + Perform server-specific path modification here. + Return the absolute dir. + + + + + Perform server-specific path modification here. + Return the absolute path. + + + + + Return true if your server requires custom handling of path and filename concatenation. + + + + + Perform server-specific path modification here. + Return concatenation of path and filename + + + + + Perform server-specific path modification here. + Return concatenation of path and filename + + + + + Return true if your server requires custom handling to handle listing analysis. + + + + + Get the full path of a given FTP Listing entry + Return null indicates custom code decided not to handle this + + + + + Disable SIZE command even if server says it is supported + + + + + Disable MDTM command even if server says it is supported + + + + + Return true if your server requires custom handling to check file existence. + + + + + Check for existence of a file + Return null indicates custom code decided not to handle this + + + + + Check for existence of a file + Return null indicates custom code decided not to handle this + + + + + Server-specific handling for Apache (MINA) FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given SYST response message. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Server-specific handling for BFTPd FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for Cerberus FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for CrushFTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for D-Link FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for FileZilla FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Server-specific handling for FritzBox FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for FTP2S3Gateway FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for glFTPd FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for GlobalScapeEFT FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for HomegateFTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for Huawei FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for IBMOS400FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Server-specific handling for IBMzOSFTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Perform server-specific post-connection commands here. + Return true if you executed a server-specific command. + + + + + Perform server-specific post-connection commands here. + Return true if you executed a server-specific command. + + + + + Get z/OS file size + + The client object this is being done for + The full path of the file whose size you want to retrieve + + Make sure you are in the right realm (z/OS or HFS) before doing this + + The size of the file + + + + Get z/OS file size + + The client object this is being done for + The full path of the file whose size you want to retrieve + The token that can be used to cancel the entire process + + Make sure you are in the right realm (z/OS or HFS) before doing this + + The size of the file + + + + Check if the given path is a root directory on your FTP server. + If you are unsure, return false. + + + + + Skip reporting a parser error + + + + + Always read to End of stream on a download + + + + + Return true if your server requires custom handling of absolute path. + + + + + Perform server-specific path modification here. + Return the absolute path. + + + + + Perform server-specific path modification here. + Return the absolute path. + + + + + Return true if your server requires custom handling of absolute dir. + + + + + Perform server-specific path modification here. + Return null indicates custom code decided not to handle this + Return the absolute dir. + + + + + Perform server-specific path modification here. + Return null indicates custom code decided not to handle this + Return the absolute dir. + + + + + Return true if your server requires custom handling of path and filename concatenation. + + + + + Perform server-specific path modification here. + Return null indicates custom code decided not to handle this + Return concatenation of path and filename + + + + + Perform server-specific path modification here. + Return null indicates custom code decided not to handle this + Return concatenation of path and filename + + + + + Return true if your server requires custom handling to handle listing analysis. + + + + + Get the full path of a given FTP Listing entry + Return null indicates custom code decided not to handle this + + + + + Disable SIZE command even if server says it is supported + + + + + Disable MDTM command even if server says it is supported + + + + + Return true if your server requires custom handling to check file existence. + + + + + Check for existence of a file + Return null indicates custom code decided not to handle this + + + + + Check for existence of a file + Return null indicates custom code decided not to handle this + + + + + Server-specific handling for ABB IDAL FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for MikroTik RouterOS FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for NonStop/Tandem FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Server-specific handling for OpenVMS FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return true if your server is detected by the given SYST response message. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Return your FTP server's default capabilities. + Used if your server does not broadcast its capabilities using the FEAT command. + + + + + Return true if the path is an absolute path according to your server's convention. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Get the full path of a given FTP Listing entry + Return null indicates custom code decided not to handle this + + + + + Server-specific handling for ProFTPD FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Perform server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Perform async server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Perform server-specific create directory commands here. + Return true if you executed a server-specific command. + + + + + Perform async server-specific create directory commands here. + Return true if you executed a server-specific command. + + + + + Server-specific handling for PureFTPd FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Server-specific handling for PyFtpdLib FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for Rumpus FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for ServU FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Perform server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Perform async server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Server-specific handling for SolarisFTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given SYST response message. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Server-specific handling for Titan FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for TP-LINK FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for VsFTPd FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Server-specific handling for WindowsCE FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given SYST response message. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Server-specific handling for WindowsServer/IIS FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Server-specific handling for WS_FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for WuFTPd FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Return your FTP server's default capabilities. + Used if your server does not broadcast its capabilities using the FEAT command. + + + + + Server-specific handling for XLight FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Base class for data stream connections + + + + + Gets the status of the command that was used to open + this data channel + + + + + Gets or sets the control connection for this data stream. Setting + the control connection causes the object to be cloned and a new + connection is made to the server to carry out the task. This ensures + that multiple streams can be opened simultaneously. + + + + + Gets or sets the length of the stream. Only valid for file transfers + and only valid on servers that support the Size command. + + + + + Gets or sets the position of the stream + + + + + Reads data off the stream + + The buffer to read into + Where to start in the buffer + Number of bytes to read + The number of bytes read + + + + Reads data off the stream asynchronously + + The buffer to read into + Where to start in the buffer + Number of bytes to read + The cancellation token for this task + The number of bytes read + + + + Writes data to the stream + + The buffer to write to the stream + Where to start in the buffer + The number of bytes to write to the buffer + + + + Writes data to the stream asynchronously + + The buffer to write to the stream + Where to start in the buffer + The number of bytes to write to the buffer + The for this task + + + + Sets the length of this stream + + Value to apply to the Length property + + + + Sets the position of the stream. Intended to be used + internally by FtpControlConnection. + + The position + + + + Closes the connection and reads the server's reply + + + + + Creates a new data stream object + + The control connection to be used for carrying out this operation + + + + Finalizer + + + + + Stream object for the local files + + + + + Returns the file size using synchronous file I/O. + + + + + Returns the file size using async file I/O. + + + + + Returns the file size using synchronous file I/O. + + + + + Returns the file size using synchronous file I/O. + + + + + Returns a new stream to upload a file from disk. + If the file fits within the fileSizeLimit, then it is read in a single disk call and stored in memory, and a MemoryStream is returned. + If it is larger than that, then a regular read-only FileStream is returned. + + + + + Returns a new stream to download a file to disk. + If the file fits within the fileSizeLimit, then a new MemoryStream is returned. + If it is larger than that, then a regular writable FileStream is returned. + + + + + Stream class used for talking. Used by FtpClient, extended by FtpDataStream + + + + + The client this stream is associated with + + + + + This stream connection to be associated with this client + + + + + Used for tracking read/write activity on the socket + to determine if Poll() should be used to test for + socket connectivity. The socket in this class will + not know it has been disconnected if the remote host + closes the connection first. Using Poll() avoids + the exception that would be thrown when trying to + read or write to the disconnected socket. + + + + + The socket used for talking + + + + + Keep a count of command/response transactions on the + control connection + + + + + Gets or sets the length of time in milliseconds + that must pass since the last socket activity + before calling Poll() on the socket to test for + connectivity. Setting this interval too low will + have a negative impact on performance. Setting this + interval to 0 disables Poll()'ing all together. + The default value is 15 seconds. + + + + + Gets the number of available bytes on the socket, 0 if the + socket has not been initialized. This property is used internally + by FtpClient in an effort to detect disconnections and gracefully + reconnect the control connection. + + + + + Gets a value indicating if this socket stream is connected + + + + + Gets a value indicating if encryption is being used + + + + + Is this stream the control connection? + + + + + The negotiated SSL/TLS protocol version. Will have a valid value after connection is complete. + + + + + The non-encrypted stream + + + + + Gets the underlying stream, could be a NetworkStream or SslStream + + + + + Gets a value indicating if this stream can be read + + + + + Gets a value indicating if this stream if seekable + + + + + Gets a value indicating if this stream can be written to + + + + + Gets the length of the stream + + + + + Gets the current position of the stream. Trying to + set this property throws an InvalidOperationException() + + + + + Event is fired when a SSL certificate needs to be validated + + + + + Gets or sets the amount of time to wait for a read operation to complete. Default + value is Timeout.Infinite. + + + + + Gets or sets the length of time milliseconds to wait + for a connection succeed before giving up. The default + is 0 = disable, use system default timeout. + + + + + Gets the local end point of the socket + + + + + Gets the remote end point of the socket + + + + + Fires the SSL certificate validation event + + Certificate being validated + Certificate chain + Policy errors if any + True if it was accepted, false otherwise + + + + Throws an InvalidOperationException + + Ignored + Ignored + + + + + Throws an InvalidOperationException + + Ignored + + + + Flushes the stream + + + + + Flushes the stream asynchronously + + The for this task + + + + Bypass the stream and read directly off the socket. + + The buffer to read into + The number of bytes read + + + + Bypass the stream and read directly off the socket. + + The buffer to read into + The token that can be used to cancel the entire process + The number of bytes read + + + + Reads data from the stream + + Buffer to read into + Where in the buffer to start + Number of bytes to be read + The amount of bytes read from the stream + + + + Reads data from the stream + + Buffer to read into + Where in the buffer to start + Number of bytes to be read + The for this task + The amount of bytes read from the stream + + + + Reads a line from the socket + + The type of encoding used to convert from byte[] to string + A line from the stream, null if there is nothing to read + + + + Reads all lines from the socket + + The type of encoding used to convert from byte[] to string + The size of the buffer + A list of lines from the stream + + + + Reads a line from the socket asynchronously + + The type of encoding used to convert from byte[] to string + The for this task + A line from the stream, null if there is nothing to read + + + + Reads all lines from the socket + + The type of encoding used to convert from byte[] to string + The size of the buffer + The token that can be used to cancel the entire process + A list of lines from the stream + + + + Writes data to the stream + + Buffer to write to stream + Where in the buffer to start + Number of bytes to be written + + + + Writes data to the stream asynchronously + + Buffer to write to stream + Where in the buffer to start + Number of bytes to be written + The for this task + + + + Writes a line to the stream using the specified encoding + + Encoding used for writing the line + The data to write + + + + Writes a line to the stream using the specified encoding asynchronously + + Encoding used for writing the line + The data to write + The for this task + + + + Disconnects from server + + + + + Disconnects from server + + + + + Safely close the socket if its open + + + + + Sets socket options on the underlying socket + + SocketOptionLevel + SocketOptionName + SocketOptionValue + + + + Check if the specified IP Address is allowed + + The ip address to connect to + The enum value of allowed IP Versions + Textual representation of the address family + + + + Get the IP Address(es) associated with this host + + The host to query + + + + Set the connected IP Address associated with this host + + The host to query + The IP address to store in the cache + + + + Connect to the specified host + + The host to connect to + The port to connect to + Internet Protocol versions to support during the connection phase + + + + Connect to the specified host + Detects timeout and throws that explicitly + + The ip address to connect to + The port to connect to + + + + Get the IP Address(es) associated with this host + + The host to query + The token that can be used to cancel the entire process + + + + Connect to the specified host + + The host to connect to + The port to connect to + Internet Protocol versions to support during the connection phase + The token that can be used to cancel the entire process + + + + Connect to the specified host + Detects timeout and throws that explicitly + + The ip address to connect to + The port to connect to + The token that can be used to cancel the entire process + + + + Activates SSL on this stream using the specified protocols. Fires the ValidateCertificate event. + If this event is not handled and there are SslPolicyErrors present, the certificate will + not be accepted. + + The host to authenticate the certificate against + A collection of client certificates to use when authenticating the SSL stream + A bitwise parameter for supported encryption protocols. + Thrown when authentication fails + + + + Activates SSL on this stream using the specified protocols. Fires the ValidateCertificate event. + If this event is not handled and there are SslPolicyErrors present, the certificate will + not be accepted. + + The host to authenticate the certificate against + A collection of client certificates to use when authenticating the SSL stream + A bitwise parameter for supported encryption protocols. + The token that can be used to cancel the entire process + Thrown when authentication fails + + + + Conditionally create a SSL BufferStream based on the configuration in FtpClient.SslBuffering. + + + + + If SSL Buffering is enabled it returns the BufferStream, else returns the internal NetworkStream. + + + + + + Instructs this stream to listen for connections on the specified address and port + + The address to listen on + The port to listen on + + + + Accepts a connection from a listening socket + + + + + Accepts a connection from a listening socket + + + + + FtpSslStream is an SslStream that properly sends a close_notify message when closing + the connection. This is required per RFC 5246 to avoid truncation attacks. + For more information, see https://tools.ietf.org/html/rfc5246#section-7.2.1 + + Inspired by: https://stackoverflow.com/questions/237807/net-sslstream-doesnt-close-tls-connection-properly/22626756#22626756 + + See: https://learn.microsoft.com/en-us/windows/win32/secauthn/shutting-down-an-schannel-connection + See: https://learn.microsoft.com/en-us/windows/win32/secauthn/using-sspi-with-a-windows-sockets-client?source=recommendations + + Note: + Microsoft says we should not override close(): + "Place all cleanup logic for your stream object in Dispose(Boolean). Do not override Close()." + See: https://learn.microsoft.com/en-us/dotnet/api/system.io.stream.dispose?view=net-7.0 + But: We recently changed the below logic due to issue #1107, which solved the problem in part + + + + + + Create an SslStream object + + + + + Close + + + + + For representing this SslStream in the log + + +
          +
          diff --git a/Source/packages/FluentFTP.44.0.1/lib/netstandard2.1/FluentFTP.dll b/Source/packages/FluentFTP.44.0.1/lib/netstandard2.1/FluentFTP.dll new file mode 100644 index 0000000..9fe531a Binary files /dev/null and b/Source/packages/FluentFTP.44.0.1/lib/netstandard2.1/FluentFTP.dll differ diff --git a/Source/packages/FluentFTP.44.0.1/lib/netstandard2.1/FluentFTP.xml b/Source/packages/FluentFTP.44.0.1/lib/netstandard2.1/FluentFTP.xml new file mode 100644 index 0000000..22d158a --- /dev/null +++ b/Source/packages/FluentFTP.44.0.1/lib/netstandard2.1/FluentFTP.xml @@ -0,0 +1,8351 @@ + + + + FluentFTP + + + + + An FTP client that manages a connection to a single FTP server. + Interacts with any FTP/FTPS server and provides a high-level and low-level API to work with files and folders. + Uses asynchronous operations only. For the sync version use `FtpClient`. + + Debugging problems with FTP is much easier when you enable logging. Visit our Github Wiki for more info. + + + + + Performs a login on the server. This method is overridable so + that the login procedure can be changed to support, for example, + a FTP proxy. + + + + + Performs a login on the server. This method is overridable so + that the login procedure can be changed to support, for example, + a FTP proxy. + + On authentication failures + + To handle authentication failures without retries, catch FtpAuthenticationException. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and connects to the first successful profile. + Returns the FtpProfile if the connection succeeded, or null if it failed. + It will throw exceptions for permanent failures like invalid host or invalid credentials. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and returns the list of successful connection profiles. + You can configure it to stop after finding the first successful profile, or to collect all successful profiles. + You can then generate code for the profile using the FtpProfile.ToCode method. + If no successful profiles are found, a blank list is returned. + + Find all successful profiles (false) or stop after finding the first successful profile (true) + Use a new cloned AsyncFtpClient for testing connection profiles (true) or use the source AsyncFtpClient (false) + The token that can be used to cancel the entire process + + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The owner permissions + The group permissions + The other permissions + The token that can be used to cancel the entire process + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The permissions in CHMOD format + The token that can be used to cancel the entire process + + + + Compare the specified local file with the remote file on the FTP server using various kinds of quick equality checks. + In Auto mode, the file size and checksum are compared. + Comparing the checksum of a file is a quick way to check if the contents of the files are exactly equal without downloading a copy of the file. + You can use the option flags to compare any combination of: file size, checksum, date modified. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + Types of equality checks to perform. Use Auto to compare file size and checksum. + The token that can be used to cancel the entire process + + + + + Connect to the given server profile. + + + + + Connect to the given server profile. + + + + + Connect to the server + + true indicates that we want a + reconnect to take place. + The token that can be used to cancel the entire process + Thrown if this object has been disposed. + + + + Connect to the FTP server. Overridden in proxy classes. + + + + + + + Connect to the FTP server. Overridden in proxy classes. + + + + + Creates a remote directory asynchronously + + The full or relative path to the new remote directory + Try to create the whole path if the preceding directories do not exist + The token that can be used to cancel the entire process + True if directory was created, false if it was skipped + + + + Creates a remote directory asynchronously. If the preceding + directories do not exist, then they are created. + + The full or relative path to the new remote directory + The token that can be used to cancel the entire process + + + + Asynchronously removes a directory and all its contents. + + The full or relative path of the directory to delete + The token that can be used to cancel the entire process + + + + Asynchronously removes a directory and all its contents. + + The full or relative path of the directory to delete + Useful to delete hidden files or dot-files. + The token that can be used to cancel the entire process + + + + Asynchronously removes a directory. Used by and + . + + The full or relative path of the directory to delete + Delete the contents before deleting the folder + Useful to delete hidden files or dot-files. + Delete the top level dir too + Internally used to determine top level + The token that can be used to cancel the entire process + + + + + Deletes a file from the server asynchronously + + The full or relative path to the file + The token that can be used to cancel the entire process + + + + Tests if the specified directory exists on the server asynchronously. This + method works by trying to change the working directory to + the path specified. If it succeeds, the directory is changed + back to the old working directory and true is returned. False + is returned otherwise and since the CWD failed it is assumed + the working directory is still the same. + + The full or relative path of the directory to check for + The token that can be used to cancel the entire process + True if the directory exists. False otherwise. + + + + Disables UTF8 support and changes the Encoding property + back to ASCII. If the server returns an error when trying + to turn UTF8 off a FtpCommandException will be thrown. + + + + + Disconnects from the server asynchronously + + + + + Downloads the specified file and return the raw byte array. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The full or relative path to the file on the server + The size of the existing file in bytes, or 0 if unknown. The download restarts from this byte index. + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track download progress. + A byte array containing the contents of the downloaded file if successful, otherwise null. + + + + Downloads the specified file and return the raw byte array asynchronously. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The full or relative path to the file on the server + The token that can be used to cancel the entire process + A byte array containing the contents of the downloaded file if successful, otherwise null. + + + + Downloads the specified directory onto the local file system. + In Mirror mode, we will download missing files, and delete any extra files from disk that are not present on the server. This is very useful when creating an exact local backup of an FTP directory. + In Update mode, we will only download missing files and preserve any extra files on disk. This is useful when you want to simply download missing files from an FTP directory. + Only downloads the files and folders matching all the rules provided, if any. + All exceptions during downloading are caught, and the exception is stored in the related FtpResult object. + + The full path of the local folder on disk to download into. It is created if it does not exist. + The full path of the remote FTP folder that you want to download. If it does not exist, an empty result list is returned. + Mirror or Update mode, as explained above + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide an implementation of IProgress to track upload progress. + The token that can be used to cancel the entire process + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Download all the listed files and folders from the main directory + + + + + Downloads the specified file onto the local file system asynchronously. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + Overwrite if you want the local file to be overwritten if it already exists. Append will also create a new file if it doesn't exists + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Provide an implementation of IProgress to track download progress. + The token that can be used to cancel the entire process + FtpStatus flag indicating if the file was downloaded, skipped or failed to transfer. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts. + + + + + Download a remote file to a local file + + + + + Download a file from the server and write the data into the given stream asynchronously. + Reads data in chunks. Retries if server disconnects midway. + + + + + Setup a resume on failure of download + + + + + Downloads the specified files into a local single directory. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + Same speed as . + + The full or relative path to the directory that files will be downloaded into. + The full or relative paths to the files on the server + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are downloaded, and the files that don't pass are skipped. + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Remove successfully downloaded files. + + + + + Downloads the specified file into the specified stream asynchronously . + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory. + The full or relative path to the file on the server + The size of the existing file in bytes, or 0 if unknown. The download restarts from this byte index. + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track download progress. + If true then the file was downloaded, false otherwise. + + + + Deletes the contents of the specified directory, without deleting the directory itself. + + The full or relative path of the directorys contents to delete + The token that can be used to cancel the entire process + + + + Deletes the contents of the specified directory, without deleting the directory itself. + + The full or relative path of the directorys contents to delete + Useful to delete hidden files or dot-files. + The token that can be used to cancel the entire process + + + + Performs an asynchronous execution of the specified command + + The command to execute + The token that can be used to cancel the entire process + The servers reply to the command + + + + Things to do after executing a command + + + + + + Checks if a file exists on the server asynchronously. + + The full or relative path to the file + The token that can be used to cancel the entire process + True if the file exists, false otherwise + + + + Ensure a relative dir is absolute by prepending the working dir + + + + + Concat a path and a filename + + + + + Ensure a relative path is absolute by prepending the working dir + + + + + Retrieves a checksum of the given file using the specified checksum algorithm, or using the first available algorithm that the server supports. + + + The algorithm used goes in this order: + 1. HASH command using the first supported algorithm. + 2. MD5 / XMD5 / MMD5 commands + 3. XSHA1 command + 4. XSHA256 command + 5. XSHA512 command + 6. XCRC command + + Full or relative path of the file to checksum + The token that can be used to cancel the entire process + Specify an algorithm that you prefer, or NONE to use the first available algorithm. If the preferred algorithm is not supported, a blank hash is returned. + object containing the value and algorithm. Use the property to + determine if this command was successful. s can be thrown from + the underlying calls. + The command fails + + + + Gets the hash of the specified file using the given command. + + + + + Sets the hash algorithm on the server to be used with the HASH command asynchronously. + + + + + Gets the hash of an object on the server using the currently selected hash algorithm. + + + + + Retrieve the permissions of the given file/folder as an integer in the CHMOD format. + Throws FtpCommandException if there is an issue. + Returns 0 if the server did not specify a permission value. + Use `GetFilePermissions` if you required the permissions in the FtpPermission format. + + The full or relative path to the item + The token that can be used to cancel the entire process + + + + Retrieve the permissions of the given file/folder as an FtpListItem object with all "Permission" properties set. + Throws FtpCommandException if there is an issue. + Returns null if the server did not specify a permission value. + Use `GetChmod` if you required the integer value instead. + + The full or relative path to the item + The token that can be used to cancel the entire process + + + + Asynchronously gets the size of a remote file, in bytes. + + The full or relative path of the file + Value to return if there was an error obtaining the file size, or if the file does not exist + The token that can be used to cancel the entire process + The size of the file, or defaultValue if there was a problem. + + + + Gets the file size of an object, without locking + + + + + Gets a file listing from the server asynchronously. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + The path to list + Options that dictate how the list operation is performed + The token that can be used to cancel the entire process + An array of items retrieved in the listing + + + + Process the output of the listing command + + + + + Get the records of a file listing and retry if temporary failure. + + + + + Gets a file listing from the server asynchronously. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + The path to list + The token that can be used to cancel the entire process + An array of items retrieved in the listing + + + + Gets a file listing from the server asynchronously. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + An array of items retrieved in the listing + + + + Recursive method of GetListingAsync, to recurse through directories on servers that do not natively support recursion. + Automatically called by GetListingAsync where required. + Uses flat recursion instead of head recursion. + + The path of the directory to list + Options that dictate how a list is performed and what information is gathered. + + An array of FtpListItem objects + + + + Gets the modified time of a remote file asynchronously + + The full path to the file + The token that can be used to cancel the entire process + The modified time, or if there was a problem + + + + Returns a file/directory listing using the NLST command asynchronously + + The path of the directory to list + The token that can be used to cancel the entire process + An array of file and directory names if any were returned. + + + + Returns a file/directory listing using the NLST command asynchronously + + An array of file and directory names if any were returned. + + + + Return information about a remote file system object asynchronously. + + + You should check the property for the + flag before calling this method. Failing to do so will result in an InvalidOperationException + being thrown when the server does not support machine listings. Returns null if the server response can't + be parsed or the server returns a failure completion code. The error for a failure + is logged with FtpTrace. No exception is thrown on error because that would negate + the usefulness of this method for checking for the existence of an object. + Path of the item to retrieve information about + Get the accurate modified date using another MDTM command + The token that can be used to cancel the entire process + Thrown if the server does not support this Capability + A if the command succeeded, or null if there was a problem. + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + The token that can be used to cancel the entire process. + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + The token that can be used to cancel the entire process. + We are waiting for the response to which command? + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + The token that can be used to cancel the entire process. + We are waiting for the response to which command? + Set to true to select the NOOP devouring mode + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + The token that can be used to cancel the entire process. + We are waiting for the response to which command? + Set to true to select the NOOP devouring mode + -1 non-blocking, no timeout, >0 exhaustNoop mode, timeOut in seconds + FtpReply representing the response from the server + + + + Gets the current working directory asynchronously + + The current working directory, ./ if the response couldn't be parsed. + + + + Get the reply from the PWD command + + The current working directory reply. + + + + If an FTP Server has "different realms", in which realm is the + current working directory. + + The realm + + + + Called during . Typically extended by FTP proxies. + + + + + Is the current working directory the root? + + true if root. + + + + Moves a directory asynchronously on the remote file system from one directory to another. + Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter. + Only throws exceptions for critical errors. + + The full or relative path to the object + The new full or relative path including the new name of the object + Should we check if the dest directory exists? And if it does should we overwrite/skip the operation? + The token that can be used to cancel the entire process + Whether the directory was moved + + + + Moves a file asynchronously on the remote file system from one directory to another. + Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter. + Only throws exceptions for critical errors. + + The full or relative path to the object + The new full or relative path including the new name of the object + Should we check if the dest file exists? And if it does should we overwrite/skip the operation? + The token that can be used to cancel the entire process + Whether the file was moved + + + + Sends the NOOP command according to (effectively a no-op if 0). + Please call as needed to read the "OK" command sent by the server and prevent stale data on the socket. + Note that response is not guaranteed by all FTP servers when sent during file transfers. + + + true if NOOP command was sent + + + + Opens the specified type of active data stream + + Type of passive data stream to open + The command to execute that requires a data stream + Restart location in bytes for file transfer + The token that can be used to cancel the entire process + A data stream ready to be used + + + + Opens the specified file to be appended asynchronously + + Full or relative path of the file + ASCII/Binary + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + The token that can be used to cancel the entire process + A stream for writing to the file on the server + + + + Opens the specified file to be appended asynchronously + + Full or relative path of the file + ASCII/Binary + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + The token that can be used to cancel the entire process + A stream for writing to the file on the server +
          + + + Opens a data stream. + + The command to execute that requires a data stream + Restart location in bytes for file transfer + The token that can be used to cancel the entire process + The data stream. + + + + Opens a FXP PASV connection between the source FTP Server and the destination FTP Server + + Valid FTP connection to the destination FTP Server + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track download progress. + A data stream ready to be used + + + + Opens the specified type of passive data stream + + Type of passive data stream to open + The command to execute that requires a data stream + Restart location in bytes for file transfer + The token that can be used to cancel the entire process + A data stream ready to be used + + + + Opens the specified file for reading asynchronously + + The full or relative path of the file + ASCII/Binary + Resume location + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + The token that can be used to cancel the entire process + A stream for reading the file on the server + + + + Opens the specified file for reading asynchronously + + The full or relative path of the file + ASCII/Binary + Resume location + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + The token that can be used to cancel the entire process + A stream for reading the file on the server +
          + + + Opens the specified file for writing. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + Full or relative path of the file + ASCII/Binary + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + The token that can be used to cancel the entire process + A stream for writing to the file on the server + + + + Opens the specified file for writing. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + Full or relative path of the file + ASCII/Binary + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + The token that can be used to cancel the entire process + A stream for writing to the file on the server +
          + + + Renames an object on the remote file system asynchronously. + Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory(). + Throws exceptions if the file does not exist, or if the destination file already exists. + + The full or relative path to the object + The new full or relative path including the new name of the object + The token that can be used to cancel the entire process + + + + Sets the data type of information sent over the data stream asynchronously + + ASCII/Binary + The token that can be used to cancel the entire process + + + + Sets the data type of information sent over the data stream asynchronously + + ASCII/Binary + The token that can be used to cancel the entire process + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The owner permissions + The group permissions + The other permissions + The token that can be used to cancel the entire process + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The permissions in CHMOD format + The token that can be used to cancel the entire process + + + + Gets the modified time of a remote file asynchronously + + The full path to the file + The new modified date/time value + The token that can be used to cancel the entire process + + + + Sets the working directory on the server asynchronously + + The directory to change to + The token that can be used to cancel the entire process + + + + Transfer the specified directory from the source FTP Server onto the remote FTP Server asynchronously using the FXP protocol. + You will need to create a valid connection to your remote FTP Server before calling this method. + In Update mode, we will only transfer missing files and preserve any extra files on the remote FTP Server. This is useful when you want to simply transfer missing files from an FTP directory. + Currently Mirror mode is not implemented. + Only transfers the files and folders matching all the rules provided, if any. + All exceptions during transfer are caught, and the exception is stored in the related FtpResult object. + + The full or relative path to the folder on the source FTP Server. If it does not exist, an empty result list is returned. + Valid FTP connection to the destination FTP Server + The full or relative path to destination folder on the remote FTP Server + Only Update mode is currently implemented + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide a callback to track download progress. + The token that can be used to cancel the entire process + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Make a list of files to transfer + + + + + Transfer the files + + + + + Transfer the specified file from the source FTP Server to the destination FTP Server asynchronously using the FXP protocol. + High-level API that takes care of various edge cases internally. + + The full or relative path to the file on the source FTP Server + Valid FTP connection to the destination FTP Server + The full or relative path to destination file on the remote FTP Server + Indicates if the folder should be created on the remote FTP Server + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Provide a callback to track download progress. + + The token that can be used to cancel the entire process + Returns a FtpStatus indicating if the file was transferred. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts. + + + + + Transfers a file from the source FTP Server to the destination FTP Server via the FXP protocol asynchronously. + + + + + Uploads the specified byte array as a file onto the server asynchronously. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full data of the file, as a byte array + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + The token that can be used to cancel the entire process. + Provide an implementation of IProgress to track upload progress. + FtpStatus flag indicating if the file was uploaded, skipped or failed to transfer. + + + + Uploads the specified directory onto the server. + In Mirror mode, we will upload missing files, and delete any extra files from the server that are not present on disk. This is very useful when publishing an exact copy of a local folder onto an FTP server. + In Update mode, we will only upload missing files and preserve any extra files on the server. This is useful when you want to simply upload missing files to a server. + Only uploads the files and folders matching all the rules provided, if any. + All exceptions during uploading are caught, and the exception is stored in the related FtpResult object. + + The full path of the local folder on disk that you want to upload. If it does not exist, an empty result list is returned. + The full path of the remote FTP folder to upload into. It is created if it does not exist. + Mirror or Update mode, as explained above + If the file exists on disk, should we skip it, resume the upload or restart the upload? + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are uploaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide an implementation of IProgress to track upload progress. + The token that can be used to cancel the entire process + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Create all the sub directories within the main directory + + + + + Upload all the files within the main directory + + + + + Delete the extra remote files if in mirror mode and the directory was pre-existing + + + + + Uploads the specified file directly onto the server asynchronously. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + The token that can be used to cancel the entire process. + Provide an implementation of IProgress to track upload progress. + FtpStatus flag indicating if the file was uploaded, skipped or failed to transfer. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + + + + + Upload from a local file to a remote file + + + + + Upload the given stream to the server as a new file asynchronously. Overwrites the file if it exists. + Writes data in chunks. Retries if server disconnects midway. + + + + + Setup a resume on failure of upload + + + + + Uploads the given file paths to a single folder on the server asynchronously. + All files are placed directly into the given folder regardless of their path on the local filesystem. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + Faster than uploading single files with since it performs a single "file exists" check rather than one check per file. + + The full or relative paths to the files on the local file system. Files can be from multiple folders. + The full or relative path to the directory that files will be uploaded on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are uploaded, and the files that don't pass are skipped. + + Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Remove successfully uploaded files. + + + + + Uploads the given file paths to a single folder on the server asynchronously. + All files are placed directly into the given folder regardless of their path on the local filesystem. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + Faster than uploading single files with since it performs a single "file exists" check rather than one check per file. + + The full or relative paths to the files on the local file system. Files can be from multiple folders. + The full or relative path to the directory that files will be uploaded on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + The token that can be used to cancel the entire process + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are uploaded, and the files that don't pass are skipped. + + Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Get a list of all the files that need to be uploaded + + + + + Uploads the specified stream as a file onto the server asynchronously. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full data of the file, as a stream + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + The token that can be used to cancel the entire process. + Provide an implementation of IProgress to track upload progress. + FtpStatus flag indicating if the file was uploaded, skipped or failed to transfer. + + + + Verify an FXP transfer + + + + + + + + + + + + Verify a file transfer + + + + + + + + + + Creates a new instance of an async FTP Client. You will have to setup the FTP host and credentials before connecting. + + + + + Creates a new instance of an async FTP Client, with the given host and credentials. + + + + + Creates a new instance of an async FTP Client, with the given host and credentials. + + + + + Creates a new instance of an async FTP Client, with the given host and credentials. + + + + + The base object for FtpClient, AsyncFtpClient + + + + + Calculate the position from which to append + + + + + + + + + Calculate transfer chunk size taking rate control into account + + + + + Check if the file is cleared to be uploaded, taking its existence/filesize and existsMode options into account. + + + + + Try using the SIZE command to check if file exists + + + + + + + Does the server support checksums? + + + + + + Is the checksum algorithm valid? + + + + + + + Cleanup the hash result + + + + + Get the first checksum algorithm mutually supported by both servers. + + + + + Disconnects a data stream + + The data stream to close + + + + If reverse is false, converts the date provided by the FTP server into the timezone required locally. + If reverse is true, converts the local timezone date into the date required by the FTP server. + + Affected by properties: TimeConversion, TimeZone, LocalTimeZone. + + + + + Delete the extra local files if in mirror mode + + + + + Check if the local file can be deleted, based on the DownloadDirectoryDeleteExcluded property + + + + + Executes a command + + The command to execute + The servers reply to the command + + + + Things to do after executing a command + + + + + + Populates the capabilities flags based on capabilities + supported by this server. This method is overridable + so that new features can be supported + + The reply object from the FEAT command. The InfoMessages property will + contain a list of the features the server supported delimited by a new line '\n' character. + + + + Forcibly set the capabilities of your FTP server. + By default capabilities are loaded automatically after calling Connect and you don't need to use this method. + This is only for advanced use-cases. + + + + + Performs a bitwise and to check if the specified + flag is set on the property. + + The to check for + True if the feature was found, false otherwise + + + + Returns true if the file passes all the rules + + + + + Get a list of all the files and folders that need to be downloaded + + + + + Get a list of all the files and folders that need to be downloaded + + + + + Create an FtpResult object for the given file to be downloaded, and check if the file passes the rules. + + + + + Get a list of all the files that need to be uploaded within the main directory + + + + + Create an FtpResult object for the given file to be uploaded, and check if the file passes the rules. + + + + + Parse the host and port number from an EPSV response + Handles (|||nnnn|) and (!!!nnnn!) + + + + + Parse the host and port number from an PASV or PASVEX response + + + + + Returns the IP address to be sent to the server for the active connection. + + + + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + We are waiting for the response to which command? + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + We are waiting for the response to which command? + Set to true to select the NOOP devouring mode + FtpReply representing the response from the server + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + We are waiting for the response to which command? + Set to true to select the NOOP devouring mode + -1 non-blocking, no timeout, >0 exhaustNoop mode, timeOut in seconds + FtpReply representing the response from the server + + + + Process the returned data after command was executed + + + + + + + + Decodes the given FTP response string into a FtpReply, separating the FTP return code and message. + Returns true if the string was decoded correctly or false if it is not a standard format FTP response. + + + + + Make a list of subdirectories to transfer + + + + + + + + + + + Get a list of all the sub directories that need to be created within the main directory + + + + + Check if the remote file can be deleted, based on the UploadDirectoryDeleteExcluded property + + + + + Gets the current working directory + + The current working directory, ./ if the response couldn't be parsed. + + + + Get the reply to the PWD command + + + + + Parse the string returned from a PWD command + + + + + + + Checks if this FTP/FTPS connection is made through a proxy. + + + + + Checks whether will be called recursively or not. + + + + + + + Get a listing + + + + + + + + + + + + + + + + + + + + + Determine which command to use for getting a listing + + + + + Can the server do recursion for us? + + + + + Load the given connection profile and configure the FTP client instance accordingly. + + Connection profile. Not modified. + + + + Log the version of the running assembly + + + + + Log a function call with relevant arguments + + The name of the API function + The args passed to the function + + + + Log a message + + The type of tracing event + The message to write + + + + Log a message, adding an automatic prefix to the message based on the `eventType` + + The type of tracing event + The message to write + An optional exeption + Write an optional exeption on a new line + + + + Log a message to the debug output and console. + + + + + To allow for external connected classes to use the attached logger. + + + + + To allow for external connected classes to use the attached logger. + + + + + Should the function calls be logged in Verbose mode? + + + + + Add a custom listener here to get events every time a message is logged. + This is the older system, prefer using the ILogger based `Logger` property. + This system will never be removed, you can safely use it in your applications. + + + + + All the configuration settings for this FTP client. + + + + + Gets the type of the FTP server handler. + This is automatically set based on the detected FTP server, if it is detected. + You can manually set this property to implement handling for a custom FTP server. + + + + + Gets or sets the text encoding being used when talking with the server. The default + value is however upon connection, the client checks + for UTF8 support and if it's there this property is switched over to + . Manually setting this value overrides automatic detection + based on the FEAT list; if you change this value it's always used + regardless of what the server advertises, if anything. + + + + + When last command was sent (NOOP or other), for having /. + Respects the . + + + + + Current FTP client status flags used for improving performance and caching data. + + + + + Returns the current FTP client status flags. For advanced use only. + + + + + Used for internally synchronizing access to this + object from multiple threads + + + + + For usage by FTP proxies only + + + + + Control connection socket stream + + + + + Gets the base stream for talking to the server via + the control connection. + + + + + Gets a value indicating if this object has already been disposed. + + + + + Gets the current internet protocol (IPV4 or IPV6) used by the socket connection. + Returns FtpIpVersion.Unknown before connection. + + + + + Returns true if the connection to the FTP server is open. + WARNING: Returns true even if our credentials are incorrect but connection to the server is open. + See the IsAuthenticated property if you want to check if we are correctly logged in. + + + + + Returns true if the connection to the FTP server is open and if the FTP server accepted our credentials. + + + + + Gets a value indicating if this control connection is a clone. This property + is used with data streams to determine if the connection should be closed + when the stream is closed. Servers typically only allow 1 data connection + per control connection. If you try to open multiple data connections this + object will be cloned for 2 or more resulting in N new connections to the + server. + + + + + The server to connect to + + + + + The port to connect to. If this value is set to 0 (Default) the port used + will be determined by the type of SSL used or if no SSL is to be used it + will automatically connect to port 21. + + + + + Credentials used for authentication + + + + + Gets the server capabilities represented by an array of capability flags + + + + + Get the hash types supported by the server for use with the HASH Command. + This is a recent extension to the protocol that is not fully + standardized and is not guaranteed to work. See here for + more details: + http://tools.ietf.org/html/draft-bryan-ftpext-hash-02 + + + + + The negotiated SSL/TLS protocol version. + Will return a valid value after connection is complete. + Before connection it will return `SslProtocols.None`. + + + + + Checks if FTPS/SSL encryption is currently active. + Useful to see if your server supports FTPS, when using FtpEncryptionMode.Auto. + + + + + Easiest way to check if a handler has been attached. + + + + + Event is fired to validate SSL certificates. If this event is + not handled and there are errors validating the certificate + the connection will be aborted. + Not fired if ValidateAnyCertificate is set to true. + + + + + Gets the type of system/server that we're connected to. Typically begins with "WINDOWS" or "UNIX". + + + + + Gets the type of the FTP server software that we're connected to. + + + + + Gets the operating system of the FTP server that we're connected to. + + + + Gets the connection type + + + Gets the last reply received from the server + + + Gets the last replies received from the server + + + + Callback format to implement your custom FTP listing line parser. + + The line from the listing + The server capabilities + The FTP client + Return an FtpListItem object if the line can be parsed, else return null + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Returns the local end point of the FTP socket, if it is available. + + + + + Returns the remote end point of the FTP socket, if it is available. + + + + + Data shouldn't be on the socket, if it is it probably means we've been disconnected. + Read and discard whatever is there. + Returns the stale data as text, if any, or null if none was found. + + copy stale data information to logs? + for the log information + + + + Data shouldn't be on the socket, if it is it probably means we've been disconnected. + Read and discard whatever is there. + Returns the stale data as text, if any, or null if none was found. + + copy stale data information to logs? + called from where (text) + The token that can be used to cancel the entire process + + + + Sends progress to the user, either a value between 0-100 indicating percentage complete, or -1 for indeterminate. + + + + + Sends progress to the user, either a value between 0-100 indicating percentage complete, or -1 for indeterminate. + + + + + Open a local port on the given ActivePort or a random port. + + + + + + Validate the client before the auto detect process + + + + + + + Catches the socket stream ssl validation event and fires the event handlers + attached to this object for validating SSL certificates + + The stream that fired the event + The event args used to validate the certificate + + + + Fires the SSL validation event + + Event Args + + + + Verify that the client is usable + + + + + + + + + + + + Clones the FTP client control connection. Used for opening multiple data streams. + You will need to manually connect after cloning. + + A new FTP client connection with the same property settings as this one. + + + + Disposes and disconnects this FTP client if it was auto-created for an internal operation. + + + + + Check if the host parameter is valid + + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Disconnects from the server, releases resources held by this + object. + + + + + Finalizer + + + + + Class responsible for automatically detecting working FTP settings to connect to a target FTP server. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and returns the list of successful connection profiles. + You can configure it to stop after finding the first successful profile, or to collect all successful profiles. + You can then generate code for the profile using the FtpProfile.ToCode method. + If no successful profiles are found, a blank list is returned. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and returns the list of successful connection profiles. + You can configure it to stop after finding the first successful profile, or to collect all successful profiles. + You can then generate code for the profile using the FtpProfile.ToCode method. + If no successful profiles are found, a blank list is returned. + + + + + Check if the server refused to support one type of FTPS encryption, and if so blacklist that type of encryption. + + + + + Check if its an auth failure or something permanent, + so that we don't need to retry all the connection config combinations and can hard-abort the AutoConnect. + Return the exception if it is a hard failure, or null if no issue is found. + + + + + Load the given connection profile and configure the FTP client instance accordingly. + + + + + Create a default ValidateCertificate handler that accepts valid certificates. + + + + + Return a known working connection profile from the host/port combination. + + + + + Modify the `Status.InCriticalSequence` flag based on the FTP command sent, by checking against a list of known critical commands. + A critical sequence will not be interrupted by an automatic reconnect. + + + + + Class responsible for masking out sensitive data from FTP logs. + + + + + Populates the capabilities flags based on capabilities given in the list of strings. + + + + + Assume the FTP Server's capabilities if it does not support the FEAT command. + + + + + All servers with server-specific handling and support are listed here. + Its possible you can connect to other FTP servers too. + + To add support for another standard FTP server: + 1) Add a new enum in the `FtpServer` enum + 2) Add a new class extending `FtpBaseServer` under the `Servers.Handlers` NS + 3) Create a new instance of your class in `FtpHandlerIndex.AllServers` + + To support a custom FTP server you only need to extend `FtpBaseServer` + and set it on your client.ServerHandler before calling Connect. + + + + + Detect the FTP Server based on the welcome message sent by the server after getting the 220 connection command. + Its the primary method. + + + + + Get a default FTP Server handler based on the enum value. + + + + + Detect the FTP Server based on the response to the SYST connection command. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Detect the FTP Server based on the response to the SYST connection command. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Error messages returned by various servers when a file does not exist. + Instead of throwing an error, we use these to detect and handle the file detection properly. + MUST BE LOWER CASE! + + + + + Error messages returned by various servers when a file size is not supported in ASCII mode. + MUST BE LOWER CASE! + + + + + Error messages returned by various servers when a file transfer temporarily failed. + MUST BE LOWER CASE! + + + + + Error messages returned by various servers when a folder already exists. + Instead of throwing an error, we use these to detect and handle the folder creation properly. + MUST BE LOWER CASE! + + + + + Error messages returned by various servers when the connection failed due to wrong TLS version used. + MUST BE LOWER CASE! + + + + + An FTP client that manages a connection to a single FTP server. + Interacts with any FTP/FTPS server and provides a high-level and low-level API to work with files and folders. + Uses synchronous operations only. For the async version use `AsyncFtpClient`. + + Debugging problems with FTP is much easier when you enable logging. Visit our Github Wiki for more info. + + + + + Creates a new instance of a synchronous FTP Client. You will have to setup the FTP host and credentials before connecting. + + + + + Creates a new instance of a synchronous FTP Client, with the given host and credentials. + + + + + Creates a new instance of a synchronous FTP Client, with the given host and credentials. + + + + + Creates a new instance of a synchronous FTP Client, with the given host and credentials. + + + + + Performs a login on the server. This method is overridable so + that the login procedure can be changed to support, for example, + a FTP proxy. + + + + + Performs a login on the server. This method is overridable so + that the login procedure can be changed to support, for example, + a FTP proxy. + + On authentication failures + + To handle authentication failures without retries, catch FtpAuthenticationException. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and connects to the first successful profile. + Returns the FtpProfile if the connection succeeded, or null if it failed. + It will throw exceptions for permanent failures like invalid host or invalid credentials. + + + + + Automatic FTP and FTPS connection negotiation. + This method tries every possible combination of the FTP connection properties, and returns the list of successful connection profiles. + You can configure it to stop after finding the first successful profile, or to collect all successful profiles. + You can then generate code for the profile using the FtpProfile.ToCode method. + If no successful profiles are found, a blank list is returned. + + Find all successful profiles (false) or stop after finding the first successful profile (true) + Use a new cloned FtpClient for testing connection profiles (true) or use the source FtpClient (false) + + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The owner permissions + The group permissions + The other permissions + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The permissions in CHMOD format + + + + Compare the specified local file with the remote file on the FTP server using various kinds of quick equality checks. + In Auto mode, the file size and checksum are compared. + Comparing the checksum of a file is a quick way to check if the contents of the files are exactly equal without downloading a copy of the file. + You can use the option flags to compare any combination of: file size, checksum, date modified. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + Types of equality checks to perform. Use Auto to compare file size and checksum. + + + + + Connect + + + + + Connect to the given server profile. + + + + + Connect to the server + + true indicates that we want a + reconnect to take place. + Thrown if this object has been disposed. + + + + Connect to the FTP server. Overridden in proxy classes. + + + + + + Connect to the FTP server. Overridden in proxy classes. + + + + + Creates a directory on the server. If the preceding + directories do not exist, then they are created. + + The full or relative path to the new remote directory + + + + Creates a directory on the server + + The full or relative path to the new remote directory + Try to force all non-existent pieces of the path to be created + True if directory was created, false if it was skipped + + + + Deletes the specified directory and all its contents. + + The full or relative path of the directory to delete + + + + Deletes the specified directory and all its contents. + + The full or relative path of the directory to delete + Useful to delete hidden files or dot-files. + + + + Deletes the specified directory and all its contents. + + The full or relative path of the directory to delete + If the directory is not empty, remove its contents + Useful to delete hidden files or dot-files. + Delete completely or leave the top level dir + Internally used to determine top level + + + + Deletes a file on the server + + The full or relative path to the file + + + + Tests if the specified directory exists on the server. This + method works by trying to change the working directory to + the path specified. If it succeeds, the directory is changed + back to the old working directory and true is returned. False + is returned otherwise and since the CWD failed it is assumed + the working directory is still the same. + + The path of the directory + True if it exists, false otherwise. + + + + Disables UTF8 support and changes the Encoding property + back to ASCII. If the server returns an error when trying + to turn UTF8 off a FtpCommandException will be thrown. + + + + + Disconnects from the server + + + + + Downloads the specified file and return the raw byte array. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The variable that will receive the bytes. + The full or relative path to the file on the server + The size of the existing file in bytes, or 0 if unknown. The download restarts from this byte index. + Provide a callback to track download progress. + If true then the file was downloaded, false otherwise. + + + + Downloads the specified directory onto the local file system. + In Mirror mode, we will download missing files, and delete any extra files from disk that are not present on the server. This is very useful when creating an exact local backup of an FTP directory. + In Update mode, we will only download missing files and preserve any extra files on disk. This is useful when you want to simply download missing files from an FTP directory. + Only downloads the files and folders matching all the rules provided, if any. + All exceptions during downloading are caught, and the exception is stored in the related FtpResult object. + + The full path of the local folder on disk to download into. It is created if it does not exist. + The full path of the remote FTP folder that you want to download. If it does not exist, an empty result list is returned. + Mirror or Update mode, as explained above + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide a callback to track download progress. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Download all the listed files and folders from the main directory + + + + + Downloads the specified file onto the local file system. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Provide a callback to track download progress. + FtpStatus flag indicating if the file was downloaded, skipped or failed to transfer. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts. + + + + + Download from a remote file to a local file + + + + + + + + + + + + + + Download a file from the server and write the data into the given stream. + Reads data in chunks. Retries if server disconnects midway. + + + + + Setup a resume on failure of download + + + + + Downloads the specified files into a local single directory. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + Same speed as . + + The full or relative path to the directory that files will be downloaded into. + The full or relative paths to the files on the server + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are downloaded, and the files that don't pass are skipped. + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Remove successfully downloaded files. + + + + + Downloads the specified file into the specified stream. + High-level API that takes care of various edge cases internally. + Supports very large files since it downloads data in chunks. + + The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory. + The full or relative path to the file on the server + The size of the existing file in bytes, or 0 if unknown. The download restarts from this byte index. + Provide a callback to track download progress. + If true then the file was downloaded, false otherwise. + + + + Deletes the contents of the specified directory, without deleting the directory itself. + + The full or relative path of the directorys contents to delete + + + + Deletes the contents of the specified directory, without deleting the directory itself. + + The full or relative path of the directorys contents to delete + Useful to delete hidden files or dot-files. + + + + Executes a command + + The command to execute + The servers reply to the command + + + + Checks if a file exists on the server. + + The full or relative path to the file + True if the file exists + + + + Ensure a relative dir is absolute by prepending the working dir + + + + + Concat a path and a filename + + + + + Ensure a relative path is absolute by prepending the working dir + + + + + Retrieves a checksum of the given file using the specified checksum algorithm, or using the first available algorithm that the server supports. + + + The algorithm used goes in this order: + 1. HASH command using the first supported algorithm. + 2. MD5 / XMD5 / MMD5 commands + 3. XSHA1 command + 4. XSHA256 command + 5. XSHA512 command + 6. XCRC command + + Full or relative path of the file to checksum + Specify an algorithm that you prefer, or NONE to use the first available algorithm. If the preferred algorithm is not supported, a blank hash is returned. + object containing the value and algorithm. Use the property to + determine if this command was successful. s can be thrown from + the underlying calls. + The command fails + + + + Gets the hash of the specified file using the given command. + + + + + Sets the hash algorithm on the server to use for the HASH command. + + + + + Gets the hash of an object on the server using the currently selected hash algorithm. + + + + + Retrieve the permissions of the given file/folder as an integer in the CHMOD format. + Throws FtpCommandException if there is an issue. + Returns 0 if the server did not specify a permission value. + Use `GetFilePermissions` if you required the permissions in the FtpPermission format. + + The full or relative path to the item + + + + Retrieve the permissions of the given file/folder as an FtpListItem object with all "Permission" properties set. + Throws FtpCommandException if there is an issue. + Returns null if the server did not specify a permission value. + Use `GetChmod` if you required the integer value instead. + + The full or relative path to the item + + + + Gets the size of a remote file, in bytes. + + The full or relative path of the file + Value to return if there was an error obtaining the file size, or if the file does not exist + The size of the file, or defaultValue if there was a problem. + + + + Gets the file size of an object, without locking + + + + + Gets a file listing from the server from the current working directory. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + An array of FtpListItem objects + + + + Gets a file listing from the server. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + The path of the directory to list + An array of FtpListItem objects + + + + Gets a file listing from the server. Each object returned + contains information about the file that was able to be retrieved. + + + If a property is equal to then it means the + date in question was not able to be retrieved. If the property + is equal to 0, then it means the size of the object could also not + be retrieved. + + The path of the directory to list + Options that dictate how a list is performed and what information is gathered. + An array of FtpListItem objects + + + + Get the records of a file listing and retry if temporary failure. + + + + + Recursive method of GetListing, to recurse through directories on servers that do not natively support recursion. + Automatically called by GetListing where required. + Uses flat recursion instead of head recursion. + + The path of the directory to list + Options that dictate how a list is performed and what information is gathered. + An array of FtpListItem objects + + + + Gets the modified time of a remote file. + + The full path to the file + The modified time, or if there was a problem + + + + Returns a file/directory listing using the NLST command. + + A string array of file and directory names if any were returned. + + + + Returns a file/directory listing using the NLST command. + + The path of the directory to list + A string array of file and directory names if any were returned. + + + + Returns information about a file system object. Returns null if the server response can't + be parsed or the server returns a failure completion code. The error for a failure + is logged with FtpTrace. No exception is thrown on error because that would negate + the usefulness of this method for checking for the existence of an object. + + The path of the file or folder + Get the accurate modified date using another MDTM command + A FtpListItem object + + + + Retrieves a reply from the server. + Support "normal" mode waiting for a command reply, subject to timeout exception + and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses + + FtpReply representing the response from the server + + + + Gets the current working directory + + The current working directory, ./ if the response couldn't be parsed. + + + + If an FTP Server has "different realms", in which realm is the + current working directory. + + The realm + + + + Called during Connect(). Typically extended by FTP proxies. + + + + + Is the current working directory the root? + + true if root. + + + + Moves a directory on the remote file system from one directory to another. + Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter. + Only throws exceptions for critical errors. + + The full or relative path to the object + The new full or relative path including the new name of the object + Should we check if the dest directory exists? And if it does should we overwrite/skip the operation? + Whether the directory was moved + + + + Moves a file on the remote file system from one directory to another. + Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter. + Only throws exceptions for critical errors. + + The full or relative path to the object + The new full or relative path including the new name of the object + Should we check if the dest file exists? And if it does should we overwrite/skip the operation? + Whether the file was moved + + + + Sends the NOOP command according to (effectively a no-op if 0). + Please call as needed to read the "OK" command sent by the server and prevent stale data on the socket. + Note that response is not guaranteed by all FTP servers when sent during file transfers. + + true if NOOP command was sent + + + + Opens the specified type of active data stream + + Type of passive data stream to open + The command to execute that requires a data stream + Restart location in bytes for file transfer + A data stream ready to be used + + + + Opens the specified file for appending. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + The full or relative path to the file to be opened + ASCII/Binary + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + A stream for writing to the file on the server + + + + Opens the specified file for appending. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + The full or relative path to the file to be opened + ASCII/Binary + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + A stream for writing to the file on the server +
          + + + Opens a data stream. + + The command to execute that requires a data stream + Restart location in bytes for file transfer + The data stream. + + + + Opens a FXP PASV connection between the source FTP Server and the destination FTP Server + + FtpClient instance of the destination FTP Server + Provide an implementation of IProgress to track download progress. + A data stream ready to be used + + + + Opens the specified type of passive data stream + + Type of passive data stream to open + The command to execute that requires a data stream + Restart location in bytes for file transfer + A data stream ready to be used + + + + Opens the specified file for reading + + The full or relative path of the file + ASCII/Binary + Resume location + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + A stream for reading the file on the server + + + + Opens the specified file for reading + + The full or relative path of the file + ASCII/Binary + Resume location + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + A stream for reading the file on the server +
          + + + Opens the specified file for writing. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + Full or relative path of the file + ASCII/Binary + Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length. + A stream for writing to the file on the server + + + + Opens the specified file for writing. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket. + + Full or relative path of the file + ASCII/Binary + + Pass in a file length if known +
          -1 => File length is irrelevant, do not attempt to determine it
          +
          0 => File length is unknown, try to determine it
          +
          >0 => File length is KNOWN. No need to determine it
          + + A stream for writing to the file on the server +
          + + + Renames an object on the remote file system. + Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory(). + Throws exceptions if the file does not exist, or if the destination file already exists. + + The full or relative path to the object + The new full or relative path including the new name of the object + + + + Sets the data type of information sent over the data stream + + ASCII/Binary + + + Internal method that handles actually setting the data type. + Thrown when a FTP Command error condition occurs. + Thrown when a FTP error condition occurs. + ASCII/Binary. + This method doesn't do any locking to prevent recursive lock scenarios. Callers must do their own locking. + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The owner permissions + The group permissions + The other permissions + + + + Modify the permissions of the given file/folder. + Only works on *NIX systems, and not on Windows/IIS servers. + Only works if the FTP server supports the SITE CHMOD command + (requires the CHMOD extension to be installed and enabled). + Throws FtpCommandException if there is an issue. + + The full or relative path to the item + The permissions in CHMOD format + + + + Changes the modified time of a remote file + + The full path to the file + The new modified date/time value + + + + Sets the work directory on the server + + The path of the directory to change to + + + + Transfer the specified directory from the source FTP Server onto the remote FTP Server using the FXP protocol. + You will need to create a valid connection to your remote FTP Server before calling this method. + In Update mode, we will only transfer missing files and preserve any extra files on the remote FTP Server. This is useful when you want to simply transfer missing files from an FTP directory. + Currently Mirror mode is not implemented. + Only transfers the files and folders matching all the rules provided, if any. + All exceptions during transfer are caught, and the exception is stored in the related FtpResult object. + + The full or relative path to the folder on the source FTP Server. If it does not exist, an empty result list is returned. + Valid FTP connection to the destination FTP Server + The full or relative path to destination folder on the remote FTP Server + Only Update mode is currently implemented + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide a callback to track download progress. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Make a list of files to transfer + + + + + Transfer each file + + + + + + + + + + + Transfer the specified file from the source FTP Server to the destination FTP Server using the FXP protocol. + High-level API that takes care of various edge cases internally. + + The full or relative path to the file on the source FTP Server + Valid FTP connection to the destination FTP Server + The full or relative path to destination file on the remote FTP Server + Indicates if the folder should be created on the remote FTP Server + If the file exists on disk, should we skip it, resume the download or restart the download? + Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks) + Provide a callback to track download progress. + + Returns a FtpStatus indicating if the file was transferred. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts. + + + + + Transfers a file from the source FTP Server to the destination FTP Server via the FXP protocol + + + + + Uploads the specified byte array as a file onto the server. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full data of the file, as a byte array + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + Provide a callback to track upload progress. + + + + Uploads the specified directory onto the server. + In Mirror mode, we will upload missing files, and delete any extra files from the server that are not present on disk. This is very useful when publishing an exact copy of a local folder onto an FTP server. + In Update mode, we will only upload missing files and preserve any extra files on the server. This is useful when you want to simply upload missing files to a server. + Only uploads the files and folders matching all the rules provided, if any. + All exceptions during uploading are caught, and the exception is stored in the related FtpResult object. + + The full path of the local folder on disk that you want to upload. If it does not exist, an empty result list is returned. + The full path of the remote FTP folder to upload into. It is created if it does not exist. + Mirror or Update mode, as explained above + If the file exists on disk, should we skip it, resume the upload or restart the upload? + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder. + Provide a callback to track upload progress. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts. + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + + + Create all the sub directories within the main directory + + + + + Upload all the files within the main directory + + + + + Delete the extra remote files if in mirror mode and the directory was pre-existing + + + + + Uploads the specified file directly onto the server. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full or relative path to the file on the local file system + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Provide a callback to track download progress. + FtpStatus flag indicating if the file was uploaded, skipped or failed to transfer. + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + + + + + Upload a local file to a remote file + + + + + + + + + + + + + + + + Upload the given stream to the server as a new file. Overwrites the file if it exists. + Writes data in chunks. Retries if server disconnects midway. + + + + + Setup a resume on an upload failure + + + + + Uploads the given file paths to a single folder on the server. + All files are placed directly into the given folder regardless of their path on the local filesystem. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + Faster than uploading single files with since it performs a single "file exists" check rather than one check per file. + + The full or relative paths to the files on the local file system. Files can be from multiple folders. + The full or relative path to the directory that files will be uploaded on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are uploaded, and the files that don't pass are skipped. + + Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Remove successfully uploaded files. + + + + + Uploads the given file paths to a single folder on the server. + All files are placed directly into the given folder regardless of their path on the local filesystem. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + Faster than uploading single files with since it performs a single "file exists" check rather than one check per file. + + The full or relative paths to the files on the local file system. Files can be from multiple folders. + The full or relative path to the directory that files will be uploaded on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance, + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. + Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks) + Used to determine how errors are handled + Provide an implementation of IProgress to track upload progress. + Only files that pass all these rules are uploaded, and the files that don't pass are skipped. + + Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten. + Returns a blank list if nothing was transferred. Never returns null. + + + If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support + any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful + upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to . + If is set and is not set, then individual verification errors will not cause an exception + to propagate from this method. + + + + + Get a list of all the files that need to be uploaded + + + + + Uploads the specified stream as a file onto the server. + High-level API that takes care of various edge cases internally. + Supports very large files since it uploads data in chunks. + + The full data of the file, as a stream + The full or relative path to the file on the server + What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance + but only if you are SURE that the files do not exist on the server. + Create the remote directory if it does not exist. Slows down upload due to additional checks required. + Provide a callback to track upload progress. + + + + Verify an FXP file transfer + + + + + + + + + + + Verify a file transfer + + + + + + + + + Interface for the AsyncFtpClient class. + For detailed documentation of the methods, please see the FtpClient class or check the Wiki on the FluentFTP Github project. + + + + + Base object for FtpClient, AsyncFtpClient and the internal client + + + + + Interface for the FtpClient class. + For detailed documentation of the methods, please see the FtpClient class or check the Wiki on the FluentFTP Github project. + + + + + Server features + + + + + This server said it doesn't support anything! + + + + + Supports the MLST command (machine listings) + + + + + Supports the SIZE command (get file size) + + + + + Supports the MDTM command (get file date modified) + + + + + Supports download/upload stream resumes + + + + + Supports UTF8 + + + + + PRET Command used by DrFTPD + + + + + Server supports the MFMT command for setting the + modified date of an object on the server + + + + + Server supports the MFCT command for setting the + created date of an object on the server + + + + + Server supports the MFF command for setting certain facts + about file system objects. It typically allows you to modify + the last modification time, creation time, UNIX group/owner/mode of a file. + + + + + Server supports the STAT command + + + + + Support for the HASH command + + + + + Support for the MD5 command + + + + + Support for the XMD5 command + + + + + Support for the XCRC command + + + + + Support for the XSHA1 command + + + + + Support for the XSHA256 command + + + + + Support for the XSHA512 command + + + + + Support for the EPSV file-transfer command + + + + + Support for the CPSV command + + + + + Support for the NOOP command + + + + + Support for the CLNT command + + + + + Support for the SSCN command + + + + + Support for the SITE MKDIR (make directory) server-specific command for ProFTPd + + + + + Support for the SITE RMDIR (remove directory) server-specific command for ProFTPd + + + + + Support for the SITE UTIME server-specific command for ProFTPd + + + + + Support for the SITE SYMLINK server-specific command for ProFTPd + + + + + Support for the AVBL (get available space) server-specific command for Serv-U + + + + + Support for the THMB (get image thumbnail) server-specific command for Serv-U + + + + + Support for the RMDA (remove directory) server-specific command for Serv-U + + + + + Support for the DSIZ (get directory size) server-specific command for Serv-U + + + + + Support for the HOST (get host) server-specific command for Serv-U + + + + + Support for the CCC (Clear Command Channel) command, which makes a secure FTP channel revert back to plain text. + + + + + Support for the MODE Z (compression enabled) command, which says that the server supports ZLIB compression for all transfers + + + + + Support for the LANG (language negotiation) command. + + + + + Support for the MMD5 (multiple MD5 hash) command. + + + + + Flags that control how file comparison is performed. If you are unsure what to use, set it to Auto. + + + + + Compares the file size and the checksum of the file (using the first supported hash algorithm). + The local and remote file sizes and checksums should exactly match for the file to be considered equal. + + + + + Compares the file size. + Both file sizes should exactly match for the file to be considered equal. + + + + + Compares the date modified of the file. + Both dates should exactly match for the file to be considered equal. + + + + + Compares the checksum or hash of the file using the first supported hash algorithm. + Both checksums should exactly match for the file to be considered equal. + + + + + The result of a file comparison operation. + + + + + Success. Local and remote files are exactly equal. + + + + + Failure. Local and remote files do not match. + + + + + Failure. Either the local or remote file does not exist. + + + + + Failure. Checksum verification is enabled and your server does not support any hash algorithm. + + + + + Data connection type + + + + + This type of data connection attempts to use the EPSV command + and if the server does not support EPSV it falls back to the + PASV command before giving up unless you are connected via IPv6 + in which case the PASV command is not supported. + + + + + Passive data connection. EPSV is a better + option if it's supported. Passive connections + connect to the IP address dictated by the server + which may or may not be accessible by the client + for example a server behind a NAT device may + give an IP address on its local network that + is inaccessible to the client. Please note that IPv6 + does not support this type data connection. If you + ask for PASV and are connected via IPv6 EPSV will + automatically be used in its place. + + + + + Same as PASV except the host supplied by the server is ignored + and the data connection is made to the same address that the control + connection is connected to. This is useful in scenarios where the + server supplies a private/non-routable network address in the + PASV response. It's functionally identical to EPSV except some + servers may not implement the EPSV command. Please note that IPv6 + does not support this type data connection. If you + ask for PASV and are connected via IPv6 EPSV will + automatically be used in its place. + + + + + Extended passive data connection, recommended. Works + the same as a PASV connection except the server + does not dictate an IP address to connect to, instead + the passive connection goes to the same address used + in the control connection. This type of data connection + supports IPv4 and IPv6. + + + + + This type of data connection attempts to use the EPRT command + and if the server does not support EPRT it falls back to the + PORT command before giving up unless you are connected via IPv6 + in which case the PORT command is not supported. + + + + + Active data connection, not recommended unless + you have a specific reason for using this type. + Creates a listening socket on the client which + requires firewall exceptions on the client system + as well as client network when connecting to a + server outside of the client's network. In addition + the IP address of the interface used to connect to the + server is the address the server is told to connect to + which, if behind a NAT device, may be inaccessible to + the server. This type of data connection is not supported + by IPv6. If you specify PORT and are connected via IPv6 + EPRT will automatically be used instead. + + + + + Extended active data connection, not recommended + unless you have a specific reason for using this + type. Creates a listening socket on the client + which requires firewall exceptions on the client + as well as client network when connecting to a + server outside of the client's network. The server + connects to the IP address it sees the client coming + from. This type of data connection supports IPv4 and IPv6. + + + + + Type of data transfer to do + + + + + ASCII transfer + + + + + Binary transfer + + + + + Not known yet + + + + + Controls how timestamps returned by the server are converted. + + + + + Returns the server timestamps in Server Time. No timezone conversion is performed. + + + + + Returns the server timestamps in Local Time. + Ensure that the TimeZone property is correctly set to the server's timezone. + If you are on .NET Core/.NET Standard, you need to set the LocalTimeZone property for this to work. + + + + + Returns the server timestamps in UTC (Coordinated Universal Time). + Ensure that the TimeZone property is correctly set to the server's timezone. + + + + + Defines the type of encryption to use + + + + + Plain text. + + + + + FTPS encryption is used from the start of the connection, port 990. + + + + + Connection starts in plain text and FTPS encryption is enabled + with the AUTH command immediately after the server greeting. + + + + + FTPS encryption is used if supported by the server, otherwise it falls back to plaintext FTP communication. + + + + + Defines how multi-file processes should handle a processing error. + + & Cannot Be Combined + + + + No action is taken upon errors. The method absorbs the error and continues. + + + + + If any files have completed successfully (or failed after a partial download/upload) then should be deleted. + This will simulate an all-or-nothing transaction downloading or uploading multiple files. If this option is not + combined with or then the method will + continue to process all items whether if they are successful or not and then delete everything if a failure was + encountered at any point. + + + + + The method should stop processing any additional files and immediately return upon encountering an error. + Cannot be combined with + + + + + The method should stop processing any additional files and immediately throw the current error. + Cannot be combined with + + + + + Determines how we handle downloading and uploading folders + + + + + Dangerous but useful method! + Uploads/downloads all the missing files to update the server/local filesystem. + Deletes the extra files to ensure that the target is an exact mirror of the source. + + + + + Safe method! + Uploads/downloads all the missing files to update the server/local filesystem. + + + + + Different types of hashing algorithms for computing checksums. + + + + + Automatic algorithm, or hashing not supported. + + + + + SHA-1 algorithm + + + + + SHA-256 algorithm + + + + + SHA-512 algorithm + + + + + MD5 algorithm + + + + + CRC algorithm + + + + + IP Versions to allow when connecting + to a server. + + + + + Unknown protocol. + + + + + Internet Protocol Version 4 + + + + + Internet Protocol Version 6 + + + + + Allow any supported version + + + + + Flags that can control how a file listing is performed. If you are unsure what to use, set it to Auto. + + + + + Tries machine listings (MDTM command) if supported, + and if not then falls back to OS-specific listings (LIST command) + + + + + Load the modify date using MDTM when it could not + be parsed from the server listing. This only pertains + to servers that do not implement the MLSD command. + + + + + Load the file size using the SIZE command when it + could not be parsed from the server listing. This + only pertains to servers that do not support the + MLSD command. + + + + + Combines the Modify and Size flags + + + + + Show hidden/dot files. This only pertains to servers + that do not support the MLSD command. This option + makes use the non standard -a parameter to LIST to + tell the server to show hidden files. Since it's a + non-standard option it may not always work. MLSD listings + have no such option and whether or not a hidden file is + shown is at the discretion of the server. + + + + + Force the use of OS-specific listings (LIST command) even if + machine listings (MLSD command) are supported by the server + + + + + Use the NLST command instead of LIST for a reliable file listing + + + + + Force the use of the NLST command (the slowest mode) even if machine listings + and OS-specific listings are supported by the server + + + + + Sets the ForceList flag and uses `LS' instead of `LIST' as the + command for getting a directory listing. This option overrides + ForceNameList and ignores the AllFiles flag. + + + + + Gets files within subdirectories as well. Adds the -r option to the LIST command. + Some servers may not support this feature. + + + + + Do not retrieve path when no path is supplied to GetListing(), + instead just execute LIST with no path argument. + + + + + Include two extra items into the listing, for the current directory (".") + and the parent directory (".."). Meaningless unless you want these two + items for some reason. + + + + + Force the use of STAT command for getting file listings + + + + + Determines how we handle partially downloaded files + + + + + Restart the download of a file if it is partially downloaded. + Overwrites the file if it exists on disk. + + + + + Resume the download of a file if it is partially downloaded. + Appends to the file if it exists, by checking the length and adding the missing data. + If the file doesn't exist on disk, a new file is created. + + + + + Blindly skip downloading the file if it exists on disk, without any more checks. + This is only included to be compatible with legacy behaviour. + + + + + Append is now renamed to Resume. + + + + + Type of file system of object + + + + + The default subtype. + + + + + A sub directory within the listed directory. + (Only set when machine listing is available and type is 'dir') + + + + + The self directory. + (Only set when machine listing is available and type is 'cdir') + + + + + The parent directory. + (Only set when machine listing is available and type is 'pdir') + + + + + Type of file system of object + + + + + A file + + + + + A directory + + + + + A symbolic link + + + + + Defines the operating system of the FTP server. + + + + + Unknown operating system + + + + + Definitely Windows or Windows Server + + + + + Definitely Unix or AIX-based server + + + + + Definitely VMS or OpenVMS server + + + + + Definitely IBM OS/400 server + + + + + Definitely IBM z/OS server + + + + + Definitely SUN OS/Solaris server + + + + + For setting up rules + + + + + If the value is exactly equal to X + + + + + If the value is anything except for X + + + + + If the value is less than X + + + + + If the value is less than or equal to X + + + + + If the value is more than X + + + + + If the value is more than or equal to X + + + + + If the value is between the range of X and Y + + + + + If the value is outside the range of X and Y + + + + + The type of response the server responded with + + + + + Use the custom parser that you have set on the FtpClient object (ListingCustomParser property) + + + + + Automatically detect the file listing parser to use based on the FTP server (SYST command). + + + + + Machine listing parser, works on any FTP server supporting the MLST/MLSD commands. + + + + + File listing parser for Windows/IIS. + + + + + File listing parser for Unix. + + + + + Alternate parser for Unix. Use this if the default one does not work. + + + + + File listing parser for Vax/VMS/OpenVMS. + + + + + File listing parser for IBM z/OS + + + + + File listing parser for IBM OS/400. + + + + + File listing parser for Tandem/Nonstop Guardian OS. + + + + + Types of file permissions + + + + + No access + + + + + Executable + + + + + Writable + + + + + Readable + + + + + This enum is obsolete. Please use FtpRemoteExists instead. + + + + + Defines the behavior for uploading/downloading files that already exist + + + + + Do not check if the file exists. A bit faster than the other options. + Only use this if you are SURE that the file does not exist on the server. + Otherwise it can cause the UploadFile method to hang due to filesize mismatch. + + + + + Resume uploading by appending to the remote file, but don't check if it exists and add missing data. + This might be required if you don't have permissions on the server to list files in the folder. + Only use this if you are SURE that the file does not exist on the server otherwise it can cause the UploadFile method to hang due to filesize mismatch. + + + + + Append the local file to the end of the remote file, but don't check if it exists and add missing data. + This might be required if you don't have permissions on the server to list files in the folder. + Only use this if you are SURE that the file does not exist on the server otherwise it can cause the UploadFile method to hang due to filesize mismatch. + + + + + Skip the file if it exists, without any more checks. + + + + + Overwrite the file if it exists. + + + + + Resume uploading by appending to the remote file if it exists. + It works by checking the remote file length and adding the missing data. + + + + + Append the local file to the end of the remote file. + + + + + Append is now renamed to Resume. Alternatively you can use AddToEnd. + + + + + The type of response the server responded with + + + + + No response + + + + + Success + + + + + Success + + + + + Success + + + + + Temporary failure + + + + + Permanent failure + + + + + Determines how SSL Buffering is handled + + + + + Enables buffering in all cases except when using FTP proxies. + + + + + Always disables SSL Buffering to reduce FTPS connectivity issues. + + + + + Always enables SSL Buffering to massively speed up FTPS operations. + + + + + Defines the type of the FTP server software. + Add constants here as you add detection scripts for individual server types. + + + + + Unknown FTP server software + + + + + Definitely Apache FTP server + + + + + Definitely BFTPd server + + + + + Definitely Cerberus FTP server + + + + + Definitely CrushFTP server + + + + + Definitely D-Link FTP server + + + + + Definitely FileZilla server + + + + + Definitely FritzBox FTP server + + + + + Definitely FTP2S3 gateway server + + + + + Definitely glFTPd server + + + + + Definitely GlobalScape EFT server + + + + + Definitely Homegate FTP server + + + + + Definitely Huawei Technologies HG5xxx series FTP server + + + + + Definitely IBM z/OS FTP server + + + + + Definitely IBM OS/400 FTP server + + + + + Definitely ABB IDAL FTP server + + + + + Definitely MikroTik RouterOS FTP server + + + + + Definitely HP NonStop/Tandem server + + + + + Definitely OpenVMS server + + + + + Definitely ProFTPD server + + + + + Definitely PureFTPd server + + + + + Definitely PyFtpdLib server + + + + + Definitely Rumpus server + + + + + Definitely Serv-U server + + + + + Definitely Sun OS Solaris FTP server + + + + + Definitely Titan FTP server + + + + + Definitely TP-LINK FTP server + + + + + Definitely VsFTPd server + + + + + Definitely Windows CE FTP server + + + + + Definitely Windows Server/IIS FTP server + + + + + Definitely WS_FTP server + + + + + Definitely WuFTPd server + + + + + Definitely XLight FTP server + + + + + Types of special UNIX permissions + + + + + No special permissions are set + + + + + Sticky bit is set + + + + + SGID bit is set + + + + + SUID bit is set + + + + + The result of an upload or download operation + + + + + The upload or download failed with an error transferring, or the source file did not exist + + + + + The upload or download completed successfully + + + + + The upload or download was skipped because the file already existed on the target + + + + + Defines the level of the tracing message. Depending on the framework version this is translated + to an equivalent logging level in System.Diagnostices (if available) + + + + + Used for logging Debug or Verbose level messages + + + + + Used for logging Informational messages + + + + + Used for logging non-fatal or ignorable error messages + + + + + Used for logging Error messages that may need investigation + + + + + Defines if additional verification and actions upon failure that + should be performed when uploading/downloading files using the high-level APIs. Ignored if the + FTP server does not support any hashing algorithms. + + + + + No verification of the file is performed + + + + + The checksum of the file is verified, if supported by the server. + If the checksum comparison fails then we retry the download/upload + a specified amount of times before giving up. (See ) + + + + + The checksum of the file is verified, if supported by the server. + If the checksum comparison fails then the failed file will be deleted. + If combined with , then + the deletion will occur if it fails upon the final retry. + + + + + The checksum of the file is verified, if supported by the server. + If the checksum comparison fails then an exception will be thrown. + If combined with , then the throw will + occur upon the failure of the final retry, and/or if combined with + the method will throw after the deletion is processed. + + + + + The checksum of the file is verified, if supported by the server. + If the checksum comparison fails then the method returns false and no other action is taken. + + + + + Flags that can control how a file listing is performed. If you are unsure what to use, set it to Auto. + + + + + Not z/OS Server + + + + + HFS / USS + + + + + z/OS classic dataset + + + + + Partitioned dataset member, RECFM != U + + + + + Partitioned dataset member, RECFM = U + + + + + SITE FILETYPE=JES LIST + + + + + Event fired if a bad SSL certificate is encountered. This even is used internally; if you + don't have a specific reason for using it you are probably looking for FtpSslValidation. + + + + + + + Event is fired when a SSL certificate needs to be validated + + The control connection that triggered the event + Event args + + + + Event args for the FtpSslValidationError delegate + + + + + The certificate to be validated + + + + + The certificate chain + + + + + Validation errors, if any. + + + + + Gets or sets a value indicating if this certificate should be accepted. The default + value is false. If the certificate is not accepted, an AuthenticationException will + be thrown. + + + + + Exception triggered on FTP authentication failures + + + + + Initializes a new instance of a FtpAuthenticationException + + Status code + Associated message + + + + Initializes a new instance of a FtpAuthenticationException + + The FtpReply to build the exception from + + + + Exception triggered on FTP command failures + + + + + Gets the completion code associated with the response + + + + + The type of response received from the last command executed + + + + + Setup the error message string + + + + + Initializes a new instance of a FtpResponseException + + Status code + Associated message + + + + Initializes a new instance of a FtpResponseException + + The FtpReply to build the exception from + + + + FTP related error + + + + + Initializes a new instance of the class. + + The error message + + + + Initializes a new instance of the class with an inner exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Exception is thrown when the required hash algorithm is unsupported by the server. + + + + + Gets the unsupported hash algorithm + + + + + Default constructor + + + + + Algorithm-specific constructor + + + + + Exception is thrown when TLS/SSL encryption could not be negotiated by the FTP server. + + + + + AuthenticationException that caused this. + + + + + Default constructor + + + + + Custom error message + + Error message + + + + Exception thrown by FtpListParser when parsing of FTP directory listing fails. + + + + + Creates a new FtpListParseException. + + + + + Exception is thrown by FtpClient/AsyncFtpClient when the primary file or folder to be downloaded is missing. + + + + + Gets the type of file system object. + + + + + Gets the full path name to the file or folder. + + + + + Gets the name of the file or folder. Does not include the full path. + + + + + Creates a new FtpMissingObjectException. + + The original exception. + + + + Exception is thrown by FtpSocketStream when there is no FTP server socket to connect to. + + + + + Creates a new FtpMissingSocketException. + + The original exception. + + + + FtpProtocolUnsupportedException + + + + + FtpProtocolUnsupportedException + + Error message + + + + FtpProxyException + + + + + FtpProxyException + + + + + FtpProxyException + + + + + FtpProxyException + + + + + Exception is thrown when TLS/SSL encryption could not be negotiated by the FTP server. + + + + + Default constructor + + + + + Custom error message + + Error message + + + + Extension methods related to FTP tasks + + + + + Check if operation can resume after . + + Received exception. + Result of checking. + + + + Extension methods related to FTP tasks + + + + + Checks if the array is null or 0 length. + + + + + Checks if the array is null or 0 length. + + + + + Converts the arguments to an array of strings. + + + + + Ensures the given item is only added once. If it was not present true is returned, else false is returned. + + + + + Shallow clones the list by copying each item to a new list. + + + + + Extension methods related to FTP date time values + + + + + Converts the FTP date string into a DateTime object, without performing any timezone conversion. + + The date string + The client object this is done for + Date formats to try parsing the value from (eg "yyyyMMddHHmmss") + A object representing the date, or if there was a problem + + + + Generates an FTP date-string from the DateTime object, without performing any timezone conversion. + + The date value + A string representing the date + + + + Generates C# code to create this date. + + + + + Extension methods related to FTP tasks + + + + + Validates that the FtpError flags set are not in an invalid combination. + + The error handling options set + True if a valid combination, otherwise false + + + + Checks if the operation was successful or skipped (indicating success). + + + + + Checks if the operation has failed. + + + + + Extension methods related to FTP tasks + + + + + Checks if the given file exists in the given file listing. + Supports servers that return: 1) full paths, 2) only filenames, 3) full paths without slash prefixed, 4) full paths with invalid slashes + + The listing returned by GetNameListing + The full file path you want to check + + + + + Checks if the given file exists in the given file listing. + + The listing returned by GetListing + The full file path you want to check + + + + + Extension methods related to FTP tasks + + + + + Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB) + + + + + Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB) + + + + + Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB) + + + + + Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB) + + + + + Parses a line from a file listing using the first successful parser, or the specified parser. + Returns an FtpListItem object representing the parsed line, or null if the line was unable to be parsed. + + + + + the FTP connection that owns this parser + + + + + current parser, or parser set by user + + + + + parser calculated based on system type (SYST command) + + + + + if we have detected that the current parser is valid + + + + + Is the version number returned as part of the filename? + + Some VMS FTP servers do not permit a file to be deleted unless + the filename includes the version number. Note that directories are + never returned with the version number. + + + + + Initializes a new instance of the class. + + An existing object + + + + Try to auto-detect which parser is suitable given a system string. + + + + + Parse raw file from server into a file object, using the currently active parser. + + + + + Validate if the current parser is correct, or if another parser seems more appropriate. + + + + + Validate if the current parser is correct + + + + + Helper class to convert FtpHashAlgorithm + + + + + Get FtpHashAlgorithm from its string representation + + Name of the hash algorithm + The FtpHashAlgorithm + + + + Get string representation of FtpHashAlgorithm + + FtpHashAlgorithm to be converted into string + Name of the hash algorithm + + + + Get the first supported algorithm, in the standard order of preference. If no hashing algos found, returns NONE. + + + + + Parses the received FTP hash response into a new FtpHash object. + + + + + Extension methods related to FTP tasks + + + + + Returns true if the given path is a directory path. + + + + + Ensures the given directory exists. + + + + + Combine the given base path with the relative path + + + + + The local ports. + + + + + Get random local port for the given local IP address + + + + + Log a message to the given IFluentLogger class. + + + + + Get the log prefix for the given trace level type. + + + + + Checks if the given listing is a valid IBM OS/400 file listing + + + + + Parses IBM OS/400 format listings + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Parses the last modified date from IBM OS/400 format listings + + + + + Checks if the given listing is a valid IBM z/OS file listing + + + + + Parses IBM z/OS format listings + + The FTP client + A line from the listing + Current location + FtpListItem if the item is able to be parsed + + + + Parses the last modified date from IBM z/OS format listings + + + + + Checks if the given listing is a valid Machine Listing item + + + + + Parses MLSD/MLST format listings + + A line from the listing + Server capabilities + The FTP client + FtpListItem if the item is able to be parsed + + + + Parses the date modified field from MLSD/MLST format listings + + + + + Parses the file size field from MLSD/MLST format listings + + + + + Parses the permissions from MLSD/MLST format listings + + + + + Checks if the given listing is a valid NonStop file listing + + + + + Parses NonStop format listings + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Parses the directory type and file size from NonStop format listings + + + + + Parses the last modified date from NonStop format listings + + + + + Checks if the given listing is a valid Unix file listing + + + + + Parses Unix format listings + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Parses the permissions from Unix format listings + + + + + Parses the link count from Unix format listings + + + + + Parses the owner and group permissions from Unix format listings + + + + + Parses the file size from Unix format listings + + + + + Parses day-of-month from Unix format listings + + + + + Parses the file or folder name from Unix format listings + + + + + Parses the last modified date from Unix format listings + + + + + Parses the last modified year from Unix format listings + + + + + Parses the last modified date from Unix format listings + + + + + Parses Unix format listings with alternate parser + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Checks if the given listing is a valid VMS file listing + + + + + Parses Vax/VMS format listings + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Parses the file size from Vax/VMS format listings + + + + + Parses the owner and group permissions from Vax/VMS format listings + + + + + Parses the permissions from Vax/VMS format listings + + + + + Parses the last modified date from Vax/VMS format listings + + + + + Checks if the given listing is a valid IIS/DOS file listing + + + + + Parses IIS/DOS format listings + + The FTP client + A line from the listing + FtpListItem if the item is able to be parsed + + + + Parses the file or folder name from IIS/DOS format listings + + + + + Parses the file size and checks if the item is a directory from IIS/DOS format listings + + + + + Parses the last modified date from IIS/DOS format listings + + + + + Extension methods related to FTP tasks + + + + + Calculates the CHMOD value from the permissions flags + + + + + Calculates the permissions flags from the CHMOD value + + + + + Calculate the CHMOD integer value given a set of permissions. + + + + + Checks if the permission value has the given flag + + + + + Extension methods related to FTP tasks + + + + + Checks if this FTP path is a top level path + + + + + Checks if the given path is a root directory or working directory path + + + + + + + Converts the specified path into a valid FTP file system path. + Replaces invalid back-slashes with valid forward-slashes. + Replaces multiple slashes with single slashes. + Removes the ending postfix slash if any. + + The file system path + A path formatted for FTP + + + + Creates a valid FTP path by appending the specified segments to this string + + This string + The path segments to append + A valid FTP path + + + + Gets the parent directory path (formatted for a FTP server) + + The path + The parent directory path + + + + Gets the file name and extension from the path. + Supports paths with backslashes and forwardslashes. + + The full path to the file + The file name + + + + Converts a Windows or Unix-style path into its segments for segment-wise processing + + + + + + Get the full path of a given FTP Listing entry + + + + + Extension methods related to FTP tasks + + + + + Checks if every character in the string is whitespace, or the string is null. + + + + + Checks if the string is null or 0 length. + + + + + Join the given strings by a delimiter. + + + + + Join the given strings by a delimiter. + + + + + Adds a prefix to the given strings, returns a new array. + + + + + Adds a prefix to the given strings, returns a new array. + + + + + Ensure a string has the given prefix + + + + + Ensure a string has the given postfix + + + + + Remove a prefix from a string, only if it has the given prefix + + + + + Remove a postfix from a string, only if it has the given postfix + + + + + Escape a string into a valid C# string literal. + Implementation from StackOverflow - https://stackoverflow.com/a/14087738 + + + + + Split into fields by splitting on tokens + + + + + Checks if all the characters in this string are digits or dots + + + + + Checks if the string contains any of the given values + + + + + Checks if RexEx Pattern is valid + + + + + Checks if the reply contains any of the known error strings, by checking in case-insensitive manner. + + + + + Checks if the string equals any of these values, by checking in case-sensitive manner. + + + + + Checks if the string contains the given substring in a case-insensitive manner. + + + + + Checks if the string starts with the given substring in a case-insensitive manner. + + + + + Checks if the string ends with the given substring in a case-insensitive manner. + + + + + Extension methods related to FTP time span values + + + + + Extension methods related to FTP tasks + + + + + Ensures that the URI points to a server, and not a directory or invalid path. + + + + + + The current "state" of the client + + + + + Used to improve performance of OpenPassiveDataStream. + Enhanced-passive mode is tried once, and if not supported, is not tried again. + + + + + Used to improve performance of GetFileSize. + SIZE command is tried, and if the server cannot send it in ASCII mode, we switch to binary each time you call GetFileSize. + However most servers will support ASCII, so we can get the file size without switching to binary, improving performance. + + + + + Used to improve performance of GetListing. + You can set this to true by setting the RecursiveList property. + + + + + Used to automatically dispose cloned connections after FXP transfer has ended. + + + + + Cached value of the last read working directory (absolute path). + + + + + Cached value of the last set hash algorithm. + + + + + Did the FTPS connection fail during the last Connect/ConnectAsync attempt? + + + + + Did the UTF8 encoding setting work during the last Connect/ConnectAsync attempt? + + + + + Store the current data type setting + + + + + Allow checking for stale data on socket? + + + + + We are in a sequence of commands that should not be interrupted + by an automatic reconnect + + + + + Count the reconnects + Reset this value when a non-reconnect takes place + + + + + These flags must be reset every time we connect, to allow for users to connect to + different FTP servers with the same client object. + + + + + These flags must be copied when we quickly clone the connection. + + + + + Avoid repeated DNS queries for the same host name + + + + + During and after a z/OS GetListing(), this value stores the + z/OS filesystem realm that was encountered. + The value is used internally to control the list parse mode + + + + + During and after a z/OS GetListing(), this value stores the + the LRECL that was encountered (for a realm = Member only). + The value is used internally to calculate member sizes + + + + + Holds all the configuration settings for a single FTP client. + One FtpConfig object can only be bound to one client at a time. + If you want to reuse it across multiple FTP clients, then clone it and then reuse it. + + + + + Which FtpClient are we bound to? + + + + + Should the function calls be logged in Verbose mode? + + + + + Should the FTP server host IP/domain be shown in the logs (true) or masked out (false)? + + + + + Should the FTP username be shown in the logs (true) or masked out (false)? + + + + + Should the FTP password be shown in the logs (true) or masked out (false)? + + + + + Should the command duration be shown after each log command? + + + + + Flags specifying which versions of the internet protocol (IPV4 or IPV6) to + support when making a connection. All addresses returned during + name resolution are tried until a successful connection is made. + You can fine tune which versions of the internet protocol to use + by adding or removing flags here. I.e., setting this property + to FtpIpVersion.IPv4 will cause the connection process to + ignore IPv6 addresses. The default value is ANY version. + + + + + Gets or sets the length of time in milliseconds + that must pass since the last socket activity + before calling + on the socket to test for connectivity. + Setting this interval too low will + have a negative impact on performance. Setting this + interval to 0 disables Polling all together. + The default value is 15 seconds. + + + + + Gets or sets a value indicating whether a test should be performed to + see if there is stale (unrequested data) sitting on the socket. In some + cases the control connection may time out but before the server closes + the connection it might send a 4xx response that was unexpected and + can cause synchronization errors with transactions. To avoid this + problem the method checks to see if there is any data + available on the socket before executing a command. On Azure hosting + platforms this check can cause an exception to be thrown. In order + to work around the exception you can set this property to false + which will skip the test entirely however doing so eliminates the + best effort attempt of detecting such scenarios. See this thread + for more details about the Azure problem: + https://netftp.codeplex.com/discussions/535879 + + + + + Gets or sets the length of time in milliseconds after last command + (NOOP or other) that a NOOP command is sent by /. + This is called during downloading/uploading. Setting this + interval to 0 disables / all together. + The default value is 0 (disabled). + + + + + When this value is set to true (default) the control connection + will set which features are available by executing the FEAT command + when the connect method is called. + + + + + Client certificates to be used in SSL authentication process + + + + + Delegate used for resolving local address, used for active data connections + This can be used in case you're behind a router, but port forwarding is configured to forward the + ports from your router to your internal IP. In that case, we need to send the router's IP instead of our internal IP. + + + + + Ports used for Active Data Connection. + Useful when your FTP server has certain ports that are blocked or used for other purposes. + + + + + Ports blocked for Passive Data Connection (PASV and EPSV). + Useful when your FTP server has certain ports that are blocked or used for other purposes. + + + + + Maximum number of passive connections made in order to find a working port for Passive Data Connection (PASV and EPSV). + Only used if PassiveBlockedPorts is non-null. + + + + + Data connection type, default is AutoPassive which tries + a connection with EPSV first and if it fails then tries + PASV before giving up. If you know exactly which kind of + connection you need you can slightly increase performance + by defining a specific type of passive or active data + connection here. + + + + + Disconnect from the server without sending QUIT. This helps + work around IOExceptions caused by buggy connection resets + when closing the control connection. + + + + + Gets or sets the length of time in milliseconds to wait for a connection + attempt to succeed before giving up. Default is 0 (Use OS default timeout) + See: https://github.com/robinrodricks/FluentFTP/wiki/FTP-Connection#connection-timeout-settings + and: https://github.com/robinrodricks/FluentFTP/wiki/FTP-Connection#faq_timeoutwindows + + + + + Gets or sets the length of time wait in milliseconds for data to be + read from the underlying stream. The default value is 15000 (15 seconds). + + + + + Gets or sets the length of time in milliseconds for a data connection + to be established before giving up. Default is 15000 (15 seconds). + + + + + Gets or sets the length of time in milliseconds the data channel + should wait for the server to send data. Default value is + 15000 (15 seconds). + + + + + Gets or sets a value indicating if should be set on + the underlying stream's socket. If the connection is alive, the option is + adjusted in real-time. The value is stored and the KeepAlive option is set + accordingly upon any new connections. The value set here is also applied to + all future data streams. It has no affect on cloned control connections or + data connections already in progress. The default value is false. + + + + + Type of SSL to use, or none. Default is none. Explicit is TLS, Implicit is SSL. + + + + + Indicates if data channel transfers should be encrypted. Only valid if + property is not equal to . + + + + + Encryption protocols to use. Only valid if EncryptionMode property is not equal to . + Default value is .NET Framework defaults from the class. + + + + + Whether to use SSL Buffering to speed up data transfer during FTP operations. + SSL Buffering is always disabled on .NET 5.0 and later due to platform issues (see issue 682 in FluentFTP issue tracker). + + + + + Gets or sets the max number of socket write/read transactions + before an automatic disconnect/reconnect is performed. + This is required to bypass an SSL issue that occurs after a specific number of transactions. + Set to zero to disable automatic reconnects. + + + + + Accept any SSL certificate received from the server and skip performing + the validation using the ValidateCertificate callback. + Useful for Powershell users. + + + + + Indicates if the certificate revocation list is checked during authentication. + Useful when you need to maintain the certificate chain validation, + but skip the certificate revocation check. + WARNING: Enabling this can cause memory leaks in some conditions (see issue #710 for details). + + + + + Controls if the file listings are downloaded in Binary or ASCII mode. + + + + + File listing parser to be used. + Automatically calculated based on the type of the server at the time of connection. + If you want to override this property, make sure to do it after calling Connect. + + + + + Culture used to parse file listings + + + + + Custom file listing parser to be used. + + + + + Callback format to implement your custom FTP listing line parser. + + The line from the listing + The server capabilities + The FTP client + Return an FtpListItem object if the line can be parsed, else return null + + + + The timezone of the FTP server. If the server is in Tokyo with UTC+9 then set this to 9. + If the server returns timestamps in UTC then keep this 0. + + + + + The timezone of your machine. If your machine is in Tokyo with UTC+9 then set this to 9. + If your machine is synchronized with UTC then keep this 0. + + + + + Server timestamps are converted into the given timezone. + ServerTime will return the original timestamp. + LocalTime will convert the timestamp into your local machine's timezone. + UTC will convert the timestamp into UTC format (GMT+0). + You need to set TimeZone and LocalTimeZone (.NET core only) for these to work. + + + + + If true, increases performance of GetListing by reading multiple lines + of the file listing at once. If false then GetListing will read file + listings line-by-line. If GetListing is having issues with your server, + set it to false. + + The number of bytes read is based upon . + + + + + Bytes to read during GetListing. Only honored if is true. + + + + + Gets or sets the number of bytes transferred in a single chunk (a single FTP command). + Used by / and / + to transfer large files in multiple chunks. + + + + + Gets or sets the size of the file buffer when reading and writing files on the local file system. + Used by / and / + and all the other file and directory transfer methods. + + + + + Gets or sets the retry attempts allowed when a verification failure occurs during download or upload. + This value must be set to 1 or more. + + + + + Rate limit for uploads in kbyte/s. Set this to 0 for unlimited speed. + Honored by high-level API such as Upload(), Download(), UploadFile(), DownloadFile().. + + + + + Rate limit for downloads in kbytes/s. Set this to 0 for unlimited speed. + Honored by high-level API such as Upload(), Download(), UploadFile(), DownloadFile().. + + + + + Controls if zero-byte files should be downloaded or skipped. + If false, then no file is created/overwritten into the filesystem. + + + + + Controls if the high-level API uploads files in Binary or ASCII mode. + + + + + Controls if the high-level API downloads files in Binary or ASCII mode. + + + + + Controls if the UploadDirectory API deletes the excluded files when uploading in Mirror mode. + If true, then any files that are excluded will be deleted from the FTP server if they are + excluded from the local system. This is done to keep the server in sync with the local system. + But if it is false, the excluded files are not touched on the server, and simply ignored. + + + + + Controls if the DownloadDirectory API deletes the excluded files when downloading in Mirror mode. + If true, then any files that are excluded will be deleted from the local filesystem if they are + excluded from the FTP server. This is done to keep the local filesystem in sync with the FTP server. + But if it is false, the excluded files are not touched on the local filesystem, and simply ignored. + + + + + Controls if the FXP server-to-server file transfer API uses Binary or ASCII mode. + + + + + Controls how often the progress reports are sent during an FXP file transfer. + The default value is 1000 (1 second). + + + + + Controls if the HOST command is sent immediately after the handshake. + Useful when you are using shared hosting and you need to inform the + FTP server which domain you want to connect to. + + + + + Controls which domain is sent with the HOST command. + If this is null, then the Host parameter of the FTP client is sent. + + + + + The local socket will be bound to the given local IP/interface. + This is useful if you have several usable public IP addresses and want to use a particular one. + + + + + Bind this FtpConfig object to the given FTP client. + + + + + + Return a deep clone of this FtpConfig object. + + + + + Copy settings from one config object to another. + + + + + Object that keeps track of an active FXP Connection between 2 FTP servers. + + + + + A connection to the FTP server where the file or folder is currently stored + + + + + A connection to the destination FTP server where you want to create the file or folder + + + + + A connection to the destination FTP server used to track progress while transfer is going on. + + + + + Gets a value indicating if this object has already been disposed. + + + + + Closes an FXP connection by disconnecting and disposing off the FTP clients that are + cloned for this FXP connection. Manually created FTP clients are untouched. + + + + + Object that keeps track of an active FXP Connection between 2 FTP servers. + + + + + A connection to the FTP server where the file or folder is currently stored + + + + + A connection to the destination FTP server where you want to create the file or folder + + + + + A connection to the destination FTP server used to track progress while transfer is going on. + + + + + Gets a value indicating if this object has already been disposed. + + + + + Closes an FXP connection by disconnecting and disposing off the FTP clients that are + cloned for this FXP connection. Manually created FTP clients are untouched. + + + + + Represents a computed hash of an object + on the FTP server. See the following link + for more information: + http://tools.ietf.org/html/draft-bryan-ftpext-hash-02 + + + + + Gets the algorithm that was used to compute the hash + + + + + Gets the computed hash returned by the server + + + + + Gets a value indicating if this object represents a + valid hash response from the server. + + + + + Computes the hash for the specified file and compares + it to the value in this object. CRC hashes are not supported + because there is no built-in support in the .net framework and + a CRC implementation exceeds the scope of this project. If you + attempt to call this on a CRC hash a will + be thrown. + + The file to compute the hash for + True if the computed hash matches what's stored in this object. + Thrown if called on a CRC Hash + + + + Computes the hash for the specified stream and compares + it to the value in this object. CRC hashes are not supported + because there is no built-in support in the .net framework and + a CRC implementation exceeds the scope of this project. If you + attempt to call this on a CRC hash a will + be thrown. + + The stream to compute the hash for + True if the computed hash matches what's stored in this object. + Thrown if called on a CRC Hash + + + + Creates an empty instance. + + + + + Represents a file system object on the server + + + + + Blank constructor, you will need to fill arguments manually. + + NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing(). + + + + + Constructor with mandatory arguments filled. + + NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing(). + + + + + Constructor with mandatory arguments filled. + + NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing(). + + + + + Gets the type of file system object. + + + + + Gets the sub type of file system object. + + + + + Gets the full path name to the file or folder. + + + + + Gets the name of the file or folder. Does not include the full path. + + + + + Gets the target a symbolic link points to. + + + + + Gets the number of links pointing to this file. Only supplied by Unix servers. + + + + + Gets the object that the LinkTarget points to. + + + + + Gets the last write time of the object after timezone conversion (if enabled). + + + + + Gets the created date of the object after timezone conversion (if enabled). + + + + + Gets the last write time of the object before any timezone conversion. + + + + + Gets the created date of the object before any timezone conversion. + + + + + Gets the size of the object. + + + + + Gets special UNIX permissions such as Sticky, SUID and SGID. + + + + + Gets the owner permissions. + + + + + Gets the group permissions. + + + + + Gets the others permissions. + + + + + Gets the raw string received for the file permissions. + Use this if the other properties are blank/invalid. + + + + + Gets the file permissions in the CHMOD format. + + + + + Gets the raw string received for the file's GROUP permissions. + Use this if the other properties are blank/invalid. + + + + + Gets the raw string received for the file's OWNER permissions. + Use this if the other properties are blank/invalid. + + + + + Gets the input string that was parsed to generate the + values in this object. + + + + + Returns a string representation of this object and its properties + + A string representing this object + + + + Returns a code representation of this object and its properties + + + + + Metadata of a single log message. + + + + + The current "profile" defining the client + + + + + The host IP address or URL of the FTP server + + + + + The FTP username and password used to login + + + + + A working Encryption Mode found for this profile + + + + + A working Ssl Protocol setting found for this profile + + + + + A working Data Connection Type found for this profile + + + + + A working Encoding setting found for this profile + + + + + A working Timeout setting found for this profile, or 0 if default value should be used + + + + + A working SocketPollInterval setting found for this profile, or 0 if default value should be used + + + + + A working RetryAttempts setting found for this profile, or 0 if default value should be used + + + + + If the server surely supports the given encoding. + + + + + Generates valid C# code for this connection profile. + + + + + + Class to report FTP file transfer progress during upload or download of files + + + + + A value between 0-100 indicating percentage complete, or -1 for indeterminate. + Used to track the progress of an individual file transfer. + + + + + A value indicating how many bytes have been transferred. + When unable to calculate percentage, having the partial byte count may help in providing some feedback. + + + + + A value representing the current Transfer Speed in Bytes per seconds. + Used to track the progress of an individual file transfer. + + + + + A value representing the calculated 'Estimated time of arrival'. + Used to track the progress of an individual file transfer. + + + + + Stores the absolute remote path of the current file being transferred. + + + + + Stores the absolute local path of the current file being transferred. + + + + + Stores the index of the file in the listing. + Only used when transferring multiple files or an entire directory. + + + + + Stores the total count of the files to be transferred. + Only used when transferring multiple files or an entire directory. + + + + + Create a new FtpProgress object for meta progress info. + + + + + Create a new FtpProgress object for individual file transfer progress. + + + + + Convert Transfer Speed (bytes per second) in human readable format + + + + + Create a new FtpProgress object for a file transfer and calculate the ETA, Percentage and Transfer Speed. + + + + + Connection profile for a proxy connection. + + + + + Proxy server host name. Mandatory. + + + + + Proxy server port. Mandatory. + + + + + Proxy server login credentials. Mandatory if your proxy needs authentication, leave it blank otherwise. + + + + + FTP server host name. Optional. You can either set it here or set `ftpClient.Host` later on. + + + + + FTP server port. Optional. You can either set it here or set `ftpClient.Port` later on. + + + + + FTP server login credentials. Optional. You can either set it here or set `ftpClient.Credentials` later on. + + + + + Represents a reply to an event on the server + + + + + The type of response received from the last command executed + + + + + The status code of the response + + + + + The message, if any, that the server sent with the response + + + + + Informational messages sent from the server + + + + + General success or failure of the last command executed, by checking the FTP status code. + 1xx, 2xx, 3xx indicate success and 4xx, 5xx are failures. + + + + + Gets the error message including any informational output + that was sent by the server. Sometimes the final response + line doesn't contain anything informative as to what was going + on with the server. Instead it may send information messages so + in an effort to give as meaningful as a response as possible + the informational messages will be included in the error. + + + + + Stores the command that produced this reply (if any) + + + + + Stores the result of a file transfer when UploadDirectory or DownloadDirectory is used. + + + + + Returns true if the file was downloaded, false if it was uploaded. + + + + + Gets the type of file system object. + + + + + Gets the size of the file, or 0 if unknown. + + + + + Gets the name and extension of the file. + + + + + Stores the absolute remote path of the current file being transferred. + + + + + Stores the absolute local path of the current file being transferred. + + + + + Gets the error that occurring during transferring this file, if any. + + + + + Returns true if the file was downloaded/uploaded, or the file was already existing with the same file size. + + + + + Was the file skipped? + + + + + Was the file skipped due to failing the rule condition? + + + + + Was there an error during transfer? You can read the Exception property for more details. + + + + + Convert this result to a FTP list item. + + + + + Human readable results + + + + + Reply from a SIZE command + + + + + The returned file size + + + + + The reply we got + + + + + A FTP client with a user@host proxy identification, that works with Blue Coat FTP Service servers. + + The 'blue coat variant' forces the client to wait for a 220 FTP response code in + the handshake phase. + + + + A FTP client with a user@host proxy identification. + Proxy information + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + Redefine the first dialog: auth with proxy information + + + A FTP client with a HTTP 1.1 proxy implementation. + + + A FTP client with a HTTP 1.1 proxy implementation + Proxy information + + + Redefine the first dialog: HTTP Frame for the HTTP 1.1 Proxy + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Connects to the server using an existing + + The existing socket stream + The token that can be used to cancel the entire process + + + + Connects to the server using an existing + + The existing socket stream + Host name + Port number + IP version to use + IP version to use + + + + Abstraction of an FtpClient with a proxy + + + + The proxy connection info. + + + A FTP client with a HTTP 1.1 proxy implementation + Proxy information + + + Redefine connect for FtpClient : authentication on the Proxy + The socket stream. + Cancellation token. + + + + A FTP client with a SOCKS4a proxy implementation. + + + + + Setup a SOCKS4a proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Called during . Typically extended by FTP proxies. + + + + + Connect + + + + + A FTP client with a SOCKS4 proxy implementation. + + + + + Setup a SOCKS4 proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Called during . Typically extended by FTP proxies. + + + + + Connect + + + + + A FTP client with a SOCKS5 proxy implementation. + + + + + Setup a SOCKS5 proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Connect + + + + A FTP client with a user@host proxy identification. + + + A FTP client with a user@host proxy identification. + Proxy information + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + Redefine the first dialog: auth with proxy information + + + + This class is not reusable. + You have to create a new instance for each connection / attempt. + + + + + This class is not reusable. + You have to create a new instance for each connection / attempt. + + + + + Translate the host name or IP address to a byte array. + + Host name or IP address. + Byte array representing IP address in bytes. + + + + Translate the destination port value to a byte array. + + Destination port. + Byte array representing an 16 bit port number as two bytes. + + + + This class is not reusable. + You have to create a new instance for each connection / attempt. + + + + + A FTP client with a user@host proxy identification, that works with Blue Coat FTP Service servers. + + The 'blue coat variant' forces the client to wait for a 220 FTP response code in + the handshake phase. + + + + A FTP client with a user@host proxy identification. + Proxy information + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + Redefine the first dialog: auth with proxy information + + + A FTP client with a HTTP 1.1 proxy implementation. + + + A FTP client with a HTTP 1.1 proxy implementation + Proxy information + + + Redefine the first dialog: HTTP Frame for the HTTP 1.1 Proxy + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Connects to the server using an existing + + The existing socket stream + + + + Connects to the server using an existing + + The existing socket stream + Host name + Port number + IP version to use + + + + Abstraction of an FtpClient with a proxy + + + + The proxy connection info. + + + A FTP client with a HTTP 1.1 proxy implementation + Proxy information + + + Redefine connect for FtpClient : authentication on the Proxy + The socket stream. + + + + A FTP client with a SOCKS4a proxy implementation. + + + + + Setup a SOCKS4a proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Called during Connect(). Typically extended by FTP proxies. + + + + + Connect + + + + + + Connect + + + + + + + + + A FTP client with a SOCKS4 proxy implementation. + + + + + Setup a SOCKS4 proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Called during Connect(). Typically extended by FTP proxies. + + + + + Connect + + + + + Connect + + + + + A FTP client with a SOCKS5 proxy implementation. + + + + + Setup a SOCKS5 proxy + + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + + Connect + + + + + Connect + + + + A FTP client with a user@host proxy identification. + + + A FTP client with a user@host proxy identification. + Proxy information + + + + Creates a new instance of this class. Useful in FTP proxy classes. + + + + Redefine the first dialog: auth with proxy information + + + + Only accept files that have the given extension, or exclude files of a given extension. + + + + + If true, only files of the given extension are uploaded or downloaded. If false, files of the given extension are excluded. + + + + + The extensions to match + + + + + Only accept files that have the given extension, or exclude files of a given extension. + + If true, only files of the given extension are uploaded or downloaded. If false, files of the given extension are excluded. + The extensions to match + + + + Checks if the files has the given extension, or exclude files of the given extension. + + + + + Only accept files whose names match the given regular expression(s), or exclude files that match. + + + + + If true, only items where one of the supplied regex pattern matches are uploaded or downloaded. + If false, items where one of the supplied regex pattern matches are excluded. + + + + + The files names to match + + + + + Only accept items that match one of the supplied regex patterns. + + If true, only items where one of the supplied regex pattern matches are uploaded or downloaded. If false, items where one of the supplied regex pattern matches are excluded. + The list of regex patterns to match. Only valid patterns are accepted and stored. If none of the patterns are valid, this rule is disabled and passes all objects. + + + + Checks if the FtpListItem Name does match any RegexPattern + + + + + Only accept files that have the given name, or exclude files of a given name. + + + + + If true, only files of the given name are uploaded or downloaded. If false, files of the given name are excluded. + + + + + The files names to match + + + + + Only accept files that have the given name, or exclude files of a given name. + + If true, only files of the given name are downloaded. If false, files of the given name are excluded. + The files names to match + + + + Checks if the files has the given name, or exclude files of the given name. + + + + + Only accept folders whose names match the given regular expression(s), or exclude folders that match. + + + + + If true, only folders where one of the supplied regex pattern matches are uploaded or downloaded. + If false, folders where one of the supplied regex pattern matches are excluded. + + + + + The files names to match + + + + + Which path segment to start checking from + + + + + Only accept items that one of the supplied regex pattern. + + If true, only folders where one of the supplied regex pattern matches are uploaded or downloaded. If false, folders where one of the supplied regex pattern matches are excluded. + The list of regex patterns to match. Only valid patterns are accepted and stored. If none of the patterns are valid, this rule is disabled and passes all objects. + Which path segment to start checking from. 0 checks root folder onwards. 1 skips root folder. + + + + Checks if the FtpListItem Name does match any RegexPattern + + + + + Only accept folders that have the given name, or exclude folders of a given name. + + + + + Common folders to blacklist + + + + + If true, only folders of the given name are uploaded or downloaded. + If false, folders of the given name are excluded. + + + + + The folder names to match + + + + + Which path segment to start checking from + + + + + Only accept folders that have the given name, or exclude folders of a given name. + + If true, only folders of the given name are downloaded. If false, folders of the given name are excluded. + The folder names to match + Which path segment to start checking from. 0 checks root folder onwards. 1 skips root folder. + + + + Checks if the folders has the given name, or exclude folders of the given name. + + + + + Base class used for all FTP Rules. Extend this class to create custom rules. + You only need to provide an implementation for IsAllowed, and add any custom arguments that you require. + + + + + Rule object + + + + + Returns true if the object has passed this rules. + + + + + Returns true if the object has passed all the rules. + + + + + Only accept files that are of the given size, or within the given range of sizes. + + + + + Which operator to use + + + + + The first value, required for all operators + + + + + The second value, only required for BetweenRange and OutsideRange operators + + + + + Only accept files that are of the given size, or within the given range of sizes. + + Which operator to use + The first value, required for all operators + The second value, only required for BetweenRange and OutsideRange operators. + + + + Checks if the file is of the given size, or within the given range of sizes. + + + + + The base class used for all FTP server specific support. + You may extend this class to implement support for custom FTP servers. + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return true if your server is detected by the given SYST response message. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Return your FTP server's default capabilities. + Used if your server does not broadcast its capabilities using the FEAT command. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Perform server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Perform async server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Perform server-specific create directory commands here. + Return true if you executed a server-specific command. + + + + + Perform async server-specific create directory commands here. + Return true if you executed a server-specific command. + + + + + Perform server-specific post-connection commands here. + Return true if you executed a server-specific command. + + + + + Perform server-specific post-connection commands here. + Return true if you executed a server-specific command. + + + + + Return true if your server requires custom handling of file size. + + + + + Perform server-specific file size fetching commands here. + Return the file size in bytes. + + + + + Perform server-specific file size fetching commands here. + Return the file size in bytes. + + + + + Check if the given path is a root directory on your FTP server. + If you are unsure, return false. + + + + + Skip reporting a parser error + + + + + Always read to end of stream on a download + If you are unsure, return false. + + + + + Return true if the path is an absolute path according to your server's convention. + + + + + Return true if your server requires custom handling of absolute paths. + + + + + Perform server-specific path modification here. + Return the absolute path. + + + + + Perform server-specific path modification here. + Return the absolute path. + + + + + Return true if your server requires custom handling of absolute dir. + + + + + Perform server-specific path modification here. + Return the absolute dir. + + + + + Perform server-specific path modification here. + Return the absolute path. + + + + + Return true if your server requires custom handling of path and filename concatenation. + + + + + Perform server-specific path modification here. + Return concatenation of path and filename + + + + + Perform server-specific path modification here. + Return concatenation of path and filename + + + + + Return true if your server requires custom handling to handle listing analysis. + + + + + Get the full path of a given FTP Listing entry + Return null indicates custom code decided not to handle this + + + + + Disable SIZE command even if server says it is supported + + + + + Disable MDTM command even if server says it is supported + + + + + Return true if your server requires custom handling to check file existence. + + + + + Check for existence of a file + Return null indicates custom code decided not to handle this + + + + + Check for existence of a file + Return null indicates custom code decided not to handle this + + + + + Server-specific handling for Apache (MINA) FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given SYST response message. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Server-specific handling for BFTPd FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for Cerberus FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for CrushFTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for D-Link FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for FileZilla FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Server-specific handling for FritzBox FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for FTP2S3Gateway FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for glFTPd FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for GlobalScapeEFT FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for HomegateFTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for Huawei FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for IBMOS400FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Server-specific handling for IBMzOSFTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Perform server-specific post-connection commands here. + Return true if you executed a server-specific command. + + + + + Perform server-specific post-connection commands here. + Return true if you executed a server-specific command. + + + + + Get z/OS file size + + The client object this is being done for + The full path of the file whose size you want to retrieve + + Make sure you are in the right realm (z/OS or HFS) before doing this + + The size of the file + + + + Get z/OS file size + + The client object this is being done for + The full path of the file whose size you want to retrieve + The token that can be used to cancel the entire process + + Make sure you are in the right realm (z/OS or HFS) before doing this + + The size of the file + + + + Check if the given path is a root directory on your FTP server. + If you are unsure, return false. + + + + + Skip reporting a parser error + + + + + Always read to End of stream on a download + + + + + Return true if your server requires custom handling of absolute path. + + + + + Perform server-specific path modification here. + Return the absolute path. + + + + + Perform server-specific path modification here. + Return the absolute path. + + + + + Return true if your server requires custom handling of absolute dir. + + + + + Perform server-specific path modification here. + Return null indicates custom code decided not to handle this + Return the absolute dir. + + + + + Perform server-specific path modification here. + Return null indicates custom code decided not to handle this + Return the absolute dir. + + + + + Return true if your server requires custom handling of path and filename concatenation. + + + + + Perform server-specific path modification here. + Return null indicates custom code decided not to handle this + Return concatenation of path and filename + + + + + Perform server-specific path modification here. + Return null indicates custom code decided not to handle this + Return concatenation of path and filename + + + + + Return true if your server requires custom handling to handle listing analysis. + + + + + Get the full path of a given FTP Listing entry + Return null indicates custom code decided not to handle this + + + + + Disable SIZE command even if server says it is supported + + + + + Disable MDTM command even if server says it is supported + + + + + Return true if your server requires custom handling to check file existence. + + + + + Check for existence of a file + Return null indicates custom code decided not to handle this + + + + + Check for existence of a file + Return null indicates custom code decided not to handle this + + + + + Server-specific handling for ABB IDAL FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for MikroTik RouterOS FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for NonStop/Tandem FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Server-specific handling for OpenVMS FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return true if your server is detected by the given SYST response message. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Return your FTP server's default capabilities. + Used if your server does not broadcast its capabilities using the FEAT command. + + + + + Return true if the path is an absolute path according to your server's convention. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Get the full path of a given FTP Listing entry + Return null indicates custom code decided not to handle this + + + + + Server-specific handling for ProFTPD FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Perform server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Perform async server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Perform server-specific create directory commands here. + Return true if you executed a server-specific command. + + + + + Perform async server-specific create directory commands here. + Return true if you executed a server-specific command. + + + + + Server-specific handling for PureFTPd FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Server-specific handling for PyFtpdLib FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for Rumpus FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for ServU FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Perform server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Perform async server-specific delete directory commands here. + Return true if you executed a server-specific command. + + + + + Server-specific handling for SolarisFTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given SYST response message. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Server-specific handling for Titan FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for TP-LINK FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for VsFTPd FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Server-specific handling for WindowsCE FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given SYST response message. + Its a fallback method if the server did not send an identifying welcome message. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Server-specific handling for WindowsServer/IIS FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Return the default file listing parser to be used with your FTP server. + + + + + Server-specific handling for WS_FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Server-specific handling for WuFTPd FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Detect if your FTP server supports the recursive LIST command (LIST -R). + If you know for sure that this is supported, return true here. + + + + + Return your FTP server's default capabilities. + Used if your server does not broadcast its capabilities using the FEAT command. + + + + + Server-specific handling for XLight FTP servers + + + + + Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation. + + + + + Return true if your server is detected by the given FTP server welcome message. + + + + + Base class for data stream connections + + + + + Gets the status of the command that was used to open + this data channel + + + + + Gets or sets the control connection for this data stream. Setting + the control connection causes the object to be cloned and a new + connection is made to the server to carry out the task. This ensures + that multiple streams can be opened simultaneously. + + + + + Gets or sets the length of the stream. Only valid for file transfers + and only valid on servers that support the Size command. + + + + + Gets or sets the position of the stream + + + + + Reads data off the stream + + The buffer to read into + Where to start in the buffer + Number of bytes to read + The number of bytes read + + + + Reads data off the stream asynchronously + + The buffer to read into + Where to start in the buffer + Number of bytes to read + The cancellation token for this task + The number of bytes read + + + + Writes data to the stream + + The buffer to write to the stream + Where to start in the buffer + The number of bytes to write to the buffer + + + + Writes data to the stream asynchronously + + The buffer to write to the stream + Where to start in the buffer + The number of bytes to write to the buffer + The for this task + + + + Sets the length of this stream + + Value to apply to the Length property + + + + Sets the position of the stream. Intended to be used + internally by FtpControlConnection. + + The position + + + + Closes the connection and reads the server's reply + + + + + Creates a new data stream object + + The control connection to be used for carrying out this operation + + + + Finalizer + + + + + Stream object for the local files + + + + + Returns the file size using synchronous file I/O. + + + + + Returns the file size using async file I/O. + + + + + Returns the file size using synchronous file I/O. + + + + + Returns the file size using synchronous file I/O. + + + + + Returns a new stream to upload a file from disk. + If the file fits within the fileSizeLimit, then it is read in a single disk call and stored in memory, and a MemoryStream is returned. + If it is larger than that, then a regular read-only FileStream is returned. + + + + + Returns a new stream to download a file to disk. + If the file fits within the fileSizeLimit, then a new MemoryStream is returned. + If it is larger than that, then a regular writable FileStream is returned. + + + + + Stream class used for talking. Used by FtpClient, extended by FtpDataStream + + + + + The client this stream is associated with + + + + + This stream connection to be associated with this client + + + + + Used for tracking read/write activity on the socket + to determine if Poll() should be used to test for + socket connectivity. The socket in this class will + not know it has been disconnected if the remote host + closes the connection first. Using Poll() avoids + the exception that would be thrown when trying to + read or write to the disconnected socket. + + + + + The socket used for talking + + + + + Keep a count of command/response transactions on the + control connection + + + + + Gets or sets the length of time in milliseconds + that must pass since the last socket activity + before calling Poll() on the socket to test for + connectivity. Setting this interval too low will + have a negative impact on performance. Setting this + interval to 0 disables Poll()'ing all together. + The default value is 15 seconds. + + + + + Gets the number of available bytes on the socket, 0 if the + socket has not been initialized. This property is used internally + by FtpClient in an effort to detect disconnections and gracefully + reconnect the control connection. + + + + + Gets a value indicating if this socket stream is connected + + + + + Gets a value indicating if encryption is being used + + + + + Is this stream the control connection? + + + + + The negotiated SSL/TLS protocol version. Will have a valid value after connection is complete. + + + + + The non-encrypted stream + + + + + Gets the underlying stream, could be a NetworkStream or SslStream + + + + + Gets a value indicating if this stream can be read + + + + + Gets a value indicating if this stream if seekable + + + + + Gets a value indicating if this stream can be written to + + + + + Gets the length of the stream + + + + + Gets the current position of the stream. Trying to + set this property throws an InvalidOperationException() + + + + + Event is fired when a SSL certificate needs to be validated + + + + + Gets or sets the amount of time to wait for a read operation to complete. Default + value is Timeout.Infinite. + + + + + Gets or sets the length of time milliseconds to wait + for a connection succeed before giving up. The default + is 0 = disable, use system default timeout. + + + + + Gets the local end point of the socket + + + + + Gets the remote end point of the socket + + + + + Fires the SSL certificate validation event + + Certificate being validated + Certificate chain + Policy errors if any + True if it was accepted, false otherwise + + + + Throws an InvalidOperationException + + Ignored + Ignored + + + + + Throws an InvalidOperationException + + Ignored + + + + Flushes the stream + + + + + Flushes the stream asynchronously + + The for this task + + + + Bypass the stream and read directly off the socket. + + The buffer to read into + The number of bytes read + + + + Bypass the stream and read directly off the socket. + + The buffer to read into + The token that can be used to cancel the entire process + The number of bytes read + + + + Reads data from the stream + + Buffer to read into + Where in the buffer to start + Number of bytes to be read + The amount of bytes read from the stream + + + + Reads data from the stream + + Buffer to read into + Where in the buffer to start + Number of bytes to be read + The for this task + The amount of bytes read from the stream + + + + Reads a line from the socket + + The type of encoding used to convert from byte[] to string + A line from the stream, null if there is nothing to read + + + + Reads all lines from the socket + + The type of encoding used to convert from byte[] to string + The size of the buffer + A list of lines from the stream + + + + Reads a line from the socket asynchronously + + The type of encoding used to convert from byte[] to string + The for this task + A line from the stream, null if there is nothing to read + + + + Reads all lines from the socket + + The type of encoding used to convert from byte[] to string + The size of the buffer + The token that can be used to cancel the entire process + A list of lines from the stream + + + + Writes data to the stream + + Buffer to write to stream + Where in the buffer to start + Number of bytes to be written + + + + Writes data to the stream asynchronously + + Buffer to write to stream + Where in the buffer to start + Number of bytes to be written + The for this task + + + + Writes a line to the stream using the specified encoding + + Encoding used for writing the line + The data to write + + + + Writes a line to the stream using the specified encoding asynchronously + + Encoding used for writing the line + The data to write + The for this task + + + + Disconnects from server + + + + + Disconnects from server + + + + + Safely close the socket if its open + + + + + Sets socket options on the underlying socket + + SocketOptionLevel + SocketOptionName + SocketOptionValue + + + + Check if the specified IP Address is allowed + + The ip address to connect to + The enum value of allowed IP Versions + Textual representation of the address family + + + + Get the IP Address(es) associated with this host + + The host to query + + + + Set the connected IP Address associated with this host + + The host to query + The IP address to store in the cache + + + + Connect to the specified host + + The host to connect to + The port to connect to + Internet Protocol versions to support during the connection phase + + + + Connect to the specified host + Detects timeout and throws that explicitly + + The ip address to connect to + The port to connect to + + + + Get the IP Address(es) associated with this host + + The host to query + The token that can be used to cancel the entire process + + + + Connect to the specified host + + The host to connect to + The port to connect to + Internet Protocol versions to support during the connection phase + The token that can be used to cancel the entire process + + + + Connect to the specified host + Detects timeout and throws that explicitly + + The ip address to connect to + The port to connect to + The token that can be used to cancel the entire process + + + + Activates SSL on this stream using the specified protocols. Fires the ValidateCertificate event. + If this event is not handled and there are SslPolicyErrors present, the certificate will + not be accepted. + + The host to authenticate the certificate against + A collection of client certificates to use when authenticating the SSL stream + A bitwise parameter for supported encryption protocols. + Thrown when authentication fails + + + + Activates SSL on this stream using the specified protocols. Fires the ValidateCertificate event. + If this event is not handled and there are SslPolicyErrors present, the certificate will + not be accepted. + + The host to authenticate the certificate against + A collection of client certificates to use when authenticating the SSL stream + A bitwise parameter for supported encryption protocols. + The token that can be used to cancel the entire process + Thrown when authentication fails + + + + Conditionally create a SSL BufferStream based on the configuration in FtpClient.SslBuffering. + + + + + If SSL Buffering is enabled it returns the BufferStream, else returns the internal NetworkStream. + + + + + + Instructs this stream to listen for connections on the specified address and port + + The address to listen on + The port to listen on + + + + Accepts a connection from a listening socket + + + + + Accepts a connection from a listening socket + + + + + FtpSslStream is an SslStream that properly sends a close_notify message when closing + the connection. This is required per RFC 5246 to avoid truncation attacks. + For more information, see https://tools.ietf.org/html/rfc5246#section-7.2.1 + + Inspired by: https://stackoverflow.com/questions/237807/net-sslstream-doesnt-close-tls-connection-properly/22626756#22626756 + + See: https://learn.microsoft.com/en-us/windows/win32/secauthn/shutting-down-an-schannel-connection + See: https://learn.microsoft.com/en-us/windows/win32/secauthn/using-sspi-with-a-windows-sockets-client?source=recommendations + + Note: + Microsoft says we should not override close(): + "Place all cleanup logic for your stream object in Dispose(Boolean). Do not override Close()." + See: https://learn.microsoft.com/en-us/dotnet/api/system.io.stream.dispose?view=net-7.0 + But: We recently changed the below logic due to issue #1107, which solved the problem in part + + + + + + Create an SslStream object + + + + + Close + + + + + For representing this SslStream in the log + + +
          +
          diff --git a/Source/packages/FluentFTP.44.0.1/logo-nuget.png b/Source/packages/FluentFTP.44.0.1/logo-nuget.png new file mode 100644 index 0000000..a8d7d0e Binary files /dev/null and b/Source/packages/FluentFTP.44.0.1/logo-nuget.png differ diff --git a/Source/packages/Microsoft.Web.WebView2.1.0.1370.28/.signature.p7s b/Source/packages/Microsoft.Web.WebView2.1.0.1370.28/.signature.p7s new file mode 100644 index 0000000..9c703b6 Binary files /dev/null and b/Source/packages/Microsoft.Web.WebView2.1.0.1370.28/.signature.p7s differ diff --git a/Source/packages/Microsoft.Web.WebView2.1.0.1370.28/LICENSE.txt b/Source/packages/Microsoft.Web.WebView2.1.0.1370.28/LICENSE.txt new file mode 100644 index 0000000..45f0297 --- /dev/null +++ b/Source/packages/Microsoft.Web.WebView2.1.0.1370.28/LICENSE.txt @@ -0,0 +1,27 @@ +Copyright (C) Microsoft Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * The name of Microsoft Corporation, or the names of its contributors +may not be used to endorse or promote products derived from this +software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/Source/packages/Microsoft.Web.WebView2.1.0.1370.28/Microsoft.Web.WebView2.1.0.1370.28.nupkg b/Source/packages/Microsoft.Web.WebView2.1.0.1370.28/Microsoft.Web.WebView2.1.0.1370.28.nupkg new file mode 100644 index 0000000..af51063 Binary files /dev/null and b/Source/packages/Microsoft.Web.WebView2.1.0.1370.28/Microsoft.Web.WebView2.1.0.1370.28.nupkg differ diff --git a/Source/packages/Microsoft.Web.WebView2.1.0.1370.28/NOTICE.txt b/Source/packages/Microsoft.Web.WebView2.1.0.1370.28/NOTICE.txt new file mode 100644 index 0000000..bb64ba3 --- /dev/null +++ b/Source/packages/Microsoft.Web.WebView2.1.0.1370.28/NOTICE.txt @@ -0,0 +1,85 @@ +NOTICES AND INFORMATION +Do Not Translate or Localize + +This software incorporates material from third parties. Microsoft makes certain +open source code available at https://3rdpartysource.microsoft.com, or you may +send a check or money order for US $5.00, including the product name, the open +source component name, and version number, to: + +Source Code Compliance Team +Microsoft Corporation +One Microsoft Way +Redmond, WA 98052 +USA + +Notwithstanding any other terms, you may reverse engineer this software to the +extent required to debug changes to any libraries licensed under the GNU Lesser +General Public License. + +---------------------------------------------------------------- + +Antlr3.Runtime 3.5.2-rc1 - BSD 3-Clause + +[The "BSD license"] +Copyright (c) 2011 The ANTLR Project +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +--------------------------------------------------------- + +--------------------------------------------------------- + +StringTemplate4 4.0.9-rc1 - BSD 3-Clause + +[The "BSD license"] +Copyright (c) 2011 The ANTLR Project +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +--------------------------------------------------------- diff --git a/Source/packages/Microsoft.Web.WebView2.1.0.1370.28/WebView2.idl b/Source/packages/Microsoft.Web.WebView2.1.0.1370.28/WebView2.idl new file mode 100644 index 0000000..848ed63 --- /dev/null +++ b/Source/packages/Microsoft.Web.WebView2.1.0.1370.28/WebView2.idl @@ -0,0 +1,7436 @@ +// Copyright (C) Microsoft Corporation. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import "objidl.idl"; +import "oaidl.idl"; +import "EventToken.idl"; + +[uuid(26d34152-879f-4065-bea2-3daa2cfadfb8), version(1.0)] +library WebView2 { + +// Interface forward declarations + +interface ICoreWebView2AcceleratorKeyPressedEventArgs; +interface ICoreWebView2AcceleratorKeyPressedEventHandler; +interface ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler; +interface ICoreWebView2CallDevToolsProtocolMethodCompletedHandler; +interface ICoreWebView2CapturePreviewCompletedHandler; +interface ICoreWebView2; +interface ICoreWebView2_2; +interface ICoreWebView2_3; +interface ICoreWebView2_4; +interface ICoreWebView2_5; +interface ICoreWebView2_6; +interface ICoreWebView2_7; +interface ICoreWebView2_8; +interface ICoreWebView2_9; +interface ICoreWebView2_10; +interface ICoreWebView2_11; +interface ICoreWebView2_12; +interface ICoreWebView2_13; +interface ICoreWebView2BasicAuthenticationRequestedEventArgs; +interface ICoreWebView2BasicAuthenticationRequestedEventHandler; +interface ICoreWebView2BasicAuthenticationResponse; +interface ICoreWebView2BrowserProcessExitedEventArgs; +interface ICoreWebView2BrowserProcessExitedEventHandler; +interface ICoreWebView2BytesReceivedChangedEventHandler; +interface ICoreWebView2CompositionController; +interface ICoreWebView2CompositionController2; +interface ICoreWebView2CompositionController3; +interface ICoreWebView2Controller; +interface ICoreWebView2Controller2; +interface ICoreWebView2Controller3; +interface ICoreWebView2Controller4; +interface ICoreWebView2ControllerOptions; +interface ICoreWebView2ContentLoadingEventArgs; +interface ICoreWebView2ContentLoadingEventHandler; +interface ICoreWebView2ContextMenuRequestedEventArgs; +interface ICoreWebView2ContextMenuRequestedEventHandler; +interface ICoreWebView2Cookie; +interface ICoreWebView2CookieList; +interface ICoreWebView2CookieManager; +interface ICoreWebView2Certificate; +interface ICoreWebView2ClientCertificate; +interface ICoreWebView2StringCollection; +interface ICoreWebView2ClearBrowsingDataCompletedHandler; +interface ICoreWebView2ClientCertificateCollection; +interface ICoreWebView2ClientCertificateRequestedEventArgs; +interface ICoreWebView2ClientCertificateRequestedEventHandler; +interface ICoreWebView2ContextMenuItem; +interface ICoreWebView2ContextMenuItemCollection; +interface ICoreWebView2ContextMenuRequestedEventArgs; +interface ICoreWebView2ContextMenuRequestedEventHandler; +interface ICoreWebView2ContextMenuTarget; +interface ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler; +interface ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler; +interface ICoreWebView2CreateCoreWebView2ControllerCompletedHandler; +interface ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler; +interface ICoreWebView2ContainsFullScreenElementChangedEventHandler; +interface ICoreWebView2CursorChangedEventHandler; +interface ICoreWebView2CustomItemSelectedEventHandler; +interface ICoreWebView2DocumentTitleChangedEventHandler; +interface ICoreWebView2DOMContentLoadedEventArgs; +interface ICoreWebView2DOMContentLoadedEventHandler; +interface ICoreWebView2Deferral; +interface ICoreWebView2DevToolsProtocolEventReceivedEventArgs; +interface ICoreWebView2DevToolsProtocolEventReceivedEventArgs2; +interface ICoreWebView2DevToolsProtocolEventReceivedEventHandler; +interface ICoreWebView2DevToolsProtocolEventReceiver; +interface ICoreWebView2DownloadOperation; +interface ICoreWebView2DownloadStartingEventArgs; +interface ICoreWebView2DownloadStartingEventHandler; +interface ICoreWebView2Environment; +interface ICoreWebView2Environment2; +interface ICoreWebView2Environment3; +interface ICoreWebView2Environment4; +interface ICoreWebView2Environment5; +interface ICoreWebView2Environment6; +interface ICoreWebView2Environment7; +interface ICoreWebView2Environment8; +interface ICoreWebView2Environment9; +interface ICoreWebView2Environment10; +interface ICoreWebView2EnvironmentOptions; +interface ICoreWebView2EnvironmentOptions2; +interface ICoreWebView2EstimatedEndTimeChangedEventHandler; +interface ICoreWebView2ExecuteScriptCompletedHandler; +interface ICoreWebView2Frame; +interface ICoreWebView2Frame2; +interface ICoreWebView2Frame3; +interface ICoreWebView2FrameContentLoadingEventHandler; +interface ICoreWebView2FrameCreatedEventArgs; +interface ICoreWebView2FrameCreatedEventHandler; +interface ICoreWebView2FrameDestroyedEventHandler; +interface ICoreWebView2FrameDOMContentLoadedEventHandler; +interface ICoreWebView2FrameNameChangedEventHandler; +interface ICoreWebView2FrameNavigationCompletedEventHandler; +interface ICoreWebView2FrameNavigationStartingEventHandler; +interface ICoreWebView2FramePermissionRequestedEventHandler; +interface ICoreWebView2FrameWebMessageReceivedEventHandler; +interface ICoreWebView2FrameInfo; +interface ICoreWebView2FrameInfoCollection; +interface ICoreWebView2FrameInfoCollectionIterator; +interface ICoreWebView2FocusChangedEventHandler; +interface ICoreWebView2GetCookiesCompletedHandler; +interface ICoreWebView2HistoryChangedEventHandler; +interface ICoreWebView2HttpHeadersCollectionIterator; +interface ICoreWebView2HttpRequestHeaders; +interface ICoreWebView2HttpResponseHeaders; +interface ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler; +interface ICoreWebView2MoveFocusRequestedEventArgs; +interface ICoreWebView2MoveFocusRequestedEventHandler; +interface ICoreWebView2NavigationCompletedEventArgs; +interface ICoreWebView2NavigationCompletedEventArgs2; +interface ICoreWebView2NavigationCompletedEventHandler; +interface ICoreWebView2NavigationStartingEventArgs; +interface ICoreWebView2NavigationStartingEventArgs2; +interface ICoreWebView2NavigationStartingEventHandler; +interface ICoreWebView2NewBrowserVersionAvailableEventHandler; +interface ICoreWebView2NewWindowRequestedEventArgs; +interface ICoreWebView2NewWindowRequestedEventArgs2; +interface ICoreWebView2NewWindowRequestedEventHandler; +interface ICoreWebView2PermissionRequestedEventArgs; +interface ICoreWebView2PermissionRequestedEventArgs2; +interface ICoreWebView2PermissionRequestedEventHandler; +interface ICoreWebView2PointerInfo; +interface ICoreWebView2PrintSettings; +interface ICoreWebView2PrintToPdfCompletedHandler; +interface ICoreWebView2ProcessFailedEventArgs; +interface ICoreWebView2ProcessFailedEventArgs2; +interface ICoreWebView2ProcessFailedEventHandler; +interface ICoreWebView2Profile; +interface ICoreWebView2Profile2; +interface ICoreWebView2RasterizationScaleChangedEventHandler; +interface ICoreWebView2ServerCertificateErrorDetectedEventArgs; +interface ICoreWebView2ServerCertificateErrorDetectedEventHandler; +interface ICoreWebView2ScriptDialogOpeningEventArgs; +interface ICoreWebView2ScriptDialogOpeningEventHandler; +interface ICoreWebView2Settings; +interface ICoreWebView2Settings2; +interface ICoreWebView2Settings3; +interface ICoreWebView2Settings4; +interface ICoreWebView2Settings5; +interface ICoreWebView2Settings6; +interface ICoreWebView2Settings7; +interface ICoreWebView2SourceChangedEventArgs; +interface ICoreWebView2SourceChangedEventHandler; +interface ICoreWebView2StateChangedEventHandler; +interface ICoreWebView2StatusBarTextChangedEventHandler; +interface ICoreWebView2TrySuspendCompletedHandler; +interface ICoreWebView2WebMessageReceivedEventArgs; +interface ICoreWebView2WebMessageReceivedEventHandler; +interface ICoreWebView2WebResourceRequest; +interface ICoreWebView2WebResourceRequestedEventArgs; +interface ICoreWebView2WebResourceRequestedEventHandler; +interface ICoreWebView2WebResourceResponse; +interface ICoreWebView2WebResourceResponseReceivedEventHandler; +interface ICoreWebView2WebResourceResponseReceivedEventArgs; +interface ICoreWebView2WebResourceResponseView; +interface ICoreWebView2WebResourceResponseViewGetContentCompletedHandler; +interface ICoreWebView2WindowCloseRequestedEventHandler; +interface ICoreWebView2WindowFeatures; +interface ICoreWebView2ZoomFactorChangedEventHandler; +interface ICoreWebView2IsMutedChangedEventHandler; +interface ICoreWebView2IsDocumentPlayingAudioChangedEventHandler; +interface ICoreWebView2ProcessInfo; +interface ICoreWebView2ProcessInfoCollection; +interface ICoreWebView2ProcessInfosChangedEventHandler; +interface ICoreWebView2FaviconChangedEventHandler; +interface ICoreWebView2GetFaviconCompletedHandler; + +// Enums and structs + +/// Specifies the image format for the `ICoreWebView2::CapturePreview` method. + +[v1_enum] +typedef enum COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT { + + /// Indicates that the PNG image format is used. + + COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT_PNG, + + /// Indicates the JPEG image format is used. + + COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT_JPEG, +} COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT; + +/// Kind of cookie SameSite status used in the ICoreWebView2Cookie interface. +/// These fields match those as specified in https://developer.mozilla.org/docs/Web/HTTP/Cookies#. +/// Learn more about SameSite cookies here: https://tools.ietf.org/html/draft-west-first-party-cookies-07 +[v1_enum] +typedef enum COREWEBVIEW2_COOKIE_SAME_SITE_KIND { + /// None SameSite type. No restrictions on cross-site requests. + COREWEBVIEW2_COOKIE_SAME_SITE_KIND_NONE, + /// Lax SameSite type. The cookie will be sent with "same-site" requests, and with "cross-site" top level navigation. + COREWEBVIEW2_COOKIE_SAME_SITE_KIND_LAX, + /// Strict SameSite type. The cookie will only be sent along with "same-site" requests. + COREWEBVIEW2_COOKIE_SAME_SITE_KIND_STRICT, +} COREWEBVIEW2_COOKIE_SAME_SITE_KIND; + +/// Kind of cross origin resource access allowed for host resources during download. +/// Note that other normal access checks like same origin DOM access check and [Content +/// Security Policy](https://developer.mozilla.org/docs/Web/HTTP/CSP) still apply. +/// The following table illustrates the host resource cross origin access according to +/// access context and `COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND`. +/// +/// Cross Origin Access Context | DENY | ALLOW | DENY_CORS +/// --- | --- | --- | --- +/// From DOM like src of img, script or iframe element| Deny | Allow | Allow +/// From Script like Fetch or XMLHttpRequest| Deny | Allow | Deny +[v1_enum] +typedef enum COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND { + /// All cross origin resource access is denied, including normal sub resource access + /// as src of a script or image element. + COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND_DENY, + + /// All cross origin resource access is allowed, including accesses that are + /// subject to Cross-Origin Resource Sharing(CORS) check. The behavior is similar to + /// a web site sends back http header Access-Control-Allow-Origin: *. + COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND_ALLOW, + + /// Cross origin resource access is allowed for normal sub resource access like + /// as src of a script or image element, while any access that subjects to CORS check + /// will be denied. + /// See [Cross-Origin Resource Sharing](https://developer.mozilla.org/docs/Web/HTTP/CORS) + /// for more information. + COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND_DENY_CORS, +} COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND; + +/// Specifies the JavaScript dialog type used in the +/// `ICoreWebView2ScriptDialogOpeningEventHandler` interface. + +[v1_enum] +typedef enum COREWEBVIEW2_SCRIPT_DIALOG_KIND { + + /// Indicates that the dialog uses the `window.alert` JavaScript function. + + COREWEBVIEW2_SCRIPT_DIALOG_KIND_ALERT, + + /// Indicates that the dialog uses the `window.confirm` JavaScript function. + + COREWEBVIEW2_SCRIPT_DIALOG_KIND_CONFIRM, + + /// Indicates that the dialog uses the `window.prompt` JavaScript function. + + COREWEBVIEW2_SCRIPT_DIALOG_KIND_PROMPT, + + /// Indicates that the dialog uses the `beforeunload` JavaScript event. + + COREWEBVIEW2_SCRIPT_DIALOG_KIND_BEFOREUNLOAD, +} COREWEBVIEW2_SCRIPT_DIALOG_KIND; + +/// Specifies the process failure type used in the +/// `ICoreWebView2ProcessFailedEventHandler` interface. The values in this enum +/// make reference to the process kinds in the Chromium architecture. For more +/// information about what these processes are and what they do, see +/// [Browser Architecture - Inside look at modern web browser](https://developers.google.com/web/updates/2018/09/inside-browser-part1). + +[v1_enum] +typedef enum COREWEBVIEW2_PROCESS_FAILED_KIND { + + /// Indicates that the browser process ended unexpectedly. The WebView + /// automatically moves to the Closed state. The app has to recreate a new + /// WebView to recover from this failure. + + COREWEBVIEW2_PROCESS_FAILED_KIND_BROWSER_PROCESS_EXITED, + + /// Indicates that the main frame's render process ended unexpectedly. A new + /// render process is created automatically and navigated to an error page. + /// You can use the `Reload` method to try to reload the page that failed. + + COREWEBVIEW2_PROCESS_FAILED_KIND_RENDER_PROCESS_EXITED, + + /// Indicates that the main frame's render process is unresponsive. + + // Note that this does not seem to work right now. + // Does not fire for simple long running script case, the only related test + // SitePerProcessBrowserTest::NoCommitTimeoutForInvisibleWebContents is + // disabled. + + COREWEBVIEW2_PROCESS_FAILED_KIND_RENDER_PROCESS_UNRESPONSIVE, + + /// Indicates that a frame-only render process ended unexpectedly. The process + /// exit does not affect the top-level document, only a subset of the + /// subframes within it. The content in these frames is replaced with an error + /// page in the frame. + + COREWEBVIEW2_PROCESS_FAILED_KIND_FRAME_RENDER_PROCESS_EXITED, + + /// Indicates that a utility process ended unexpectedly. + + COREWEBVIEW2_PROCESS_FAILED_KIND_UTILITY_PROCESS_EXITED, + + /// Indicates that a sandbox helper process ended unexpectedly. + + COREWEBVIEW2_PROCESS_FAILED_KIND_SANDBOX_HELPER_PROCESS_EXITED, + + /// Indicates that the GPU process ended unexpectedly. + + COREWEBVIEW2_PROCESS_FAILED_KIND_GPU_PROCESS_EXITED, + + /// Indicates that a PPAPI plugin process ended unexpectedly. + + COREWEBVIEW2_PROCESS_FAILED_KIND_PPAPI_PLUGIN_PROCESS_EXITED, + + /// Indicates that a PPAPI plugin broker process ended unexpectedly. + + COREWEBVIEW2_PROCESS_FAILED_KIND_PPAPI_BROKER_PROCESS_EXITED, + + /// Indicates that a process of unspecified kind ended unexpectedly. + + COREWEBVIEW2_PROCESS_FAILED_KIND_UNKNOWN_PROCESS_EXITED, +} COREWEBVIEW2_PROCESS_FAILED_KIND; + +/// Specifies the process failure reason used in the +/// `ICoreWebView2ProcessFailedEventHandler` interface. + +[v1_enum] +typedef enum COREWEBVIEW2_PROCESS_FAILED_REASON { + + /// An unexpected process failure occurred. + COREWEBVIEW2_PROCESS_FAILED_REASON_UNEXPECTED, + + /// The process became unresponsive. + /// This only applies to the main frame's render process. + + COREWEBVIEW2_PROCESS_FAILED_REASON_UNRESPONSIVE, + + /// The process was terminated. For example, from Task Manager. + + COREWEBVIEW2_PROCESS_FAILED_REASON_TERMINATED, + + /// The process crashed. + + COREWEBVIEW2_PROCESS_FAILED_REASON_CRASHED, + + /// The process failed to launch. + + COREWEBVIEW2_PROCESS_FAILED_REASON_LAUNCH_FAILED, + + /// The process died due to running out of memory. + + COREWEBVIEW2_PROCESS_FAILED_REASON_OUT_OF_MEMORY, +} COREWEBVIEW2_PROCESS_FAILED_REASON; + +/// Indicates the type of a permission request. + +[v1_enum] +typedef enum COREWEBVIEW2_PERMISSION_KIND { + + /// Indicates an unknown permission. + + COREWEBVIEW2_PERMISSION_KIND_UNKNOWN_PERMISSION, + + /// Indicates permission to capture audio. + + COREWEBVIEW2_PERMISSION_KIND_MICROPHONE, + + /// Indicates permission to capture video. + + COREWEBVIEW2_PERMISSION_KIND_CAMERA, + + /// Indicates permission to access geolocation. + + COREWEBVIEW2_PERMISSION_KIND_GEOLOCATION, + + /// Indicates permission to send web notifications. This permission request + /// is currently auto-rejected and no event is run for it. + + COREWEBVIEW2_PERMISSION_KIND_NOTIFICATIONS, + + /// Indicates permission to access generic sensor. Generic Sensor covering + /// ambient-light-sensor, accelerometer, gyroscope, and magnetometer. + + COREWEBVIEW2_PERMISSION_KIND_OTHER_SENSORS, + + /// Indicates permission to read the system clipboard without a user gesture. + + COREWEBVIEW2_PERMISSION_KIND_CLIPBOARD_READ, +} COREWEBVIEW2_PERMISSION_KIND; + +/// Specifies the response to a permission request. + +[v1_enum] +typedef enum COREWEBVIEW2_PERMISSION_STATE { + + /// Specifies that the default browser behavior is used, which normally + /// prompt users for decision. + + COREWEBVIEW2_PERMISSION_STATE_DEFAULT, + + /// Specifies that the permission request is granted. + + COREWEBVIEW2_PERMISSION_STATE_ALLOW, + + /// Specifies that the permission request is denied. + + COREWEBVIEW2_PERMISSION_STATE_DENY, +} COREWEBVIEW2_PERMISSION_STATE; + +/// Indicates the error status values for web navigations. + +[v1_enum] +typedef enum COREWEBVIEW2_WEB_ERROR_STATUS { + + /// Indicates that an unknown error occurred. + + COREWEBVIEW2_WEB_ERROR_STATUS_UNKNOWN, + + /// Indicates that the SSL certificate common name does not match the web + /// address. + + COREWEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_COMMON_NAME_IS_INCORRECT, + + /// Indicates that the SSL certificate has expired. + + COREWEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_EXPIRED, + + /// Indicates that the SSL client certificate contains errors. + + COREWEBVIEW2_WEB_ERROR_STATUS_CLIENT_CERTIFICATE_CONTAINS_ERRORS, + + /// Indicates that the SSL certificate has been revoked. + + COREWEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_REVOKED, + + /// Indicates that the SSL certificate is not valid. The certificate may not + /// match the public key pins for the host name, the certificate is signed + /// by an untrusted authority or using a weak sign algorithm, the certificate + /// claimed DNS names violate name constraints, the certificate contains a + /// weak key, the validity period of the certificate is too long, lack of + /// revocation information or revocation mechanism, non-unique host name, + /// lack of certificate transparency information, or the certificate is + /// chained to a + /// [legacy Symantec root](https://security.googleblog.com/2018/03/distrust-of-symantec-pki-immediate.html). + + COREWEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_IS_INVALID, + + /// Indicates that the host is unreachable. + + COREWEBVIEW2_WEB_ERROR_STATUS_SERVER_UNREACHABLE, + + /// Indicates that the connection has timed out. + + COREWEBVIEW2_WEB_ERROR_STATUS_TIMEOUT, + + /// Indicates that the server returned an invalid or unrecognized response. + + COREWEBVIEW2_WEB_ERROR_STATUS_ERROR_HTTP_INVALID_SERVER_RESPONSE, + + /// Indicates that the connection was stopped. + + COREWEBVIEW2_WEB_ERROR_STATUS_CONNECTION_ABORTED, + + /// Indicates that the connection was reset. + + COREWEBVIEW2_WEB_ERROR_STATUS_CONNECTION_RESET, + + /// Indicates that the Internet connection has been lost. + + COREWEBVIEW2_WEB_ERROR_STATUS_DISCONNECTED, + + /// Indicates that a connection to the destination was not established. + + COREWEBVIEW2_WEB_ERROR_STATUS_CANNOT_CONNECT, + + /// Indicates that the provided host name was not able to be resolved. + + COREWEBVIEW2_WEB_ERROR_STATUS_HOST_NAME_NOT_RESOLVED, + + /// Indicates that the operation was canceled. + + COREWEBVIEW2_WEB_ERROR_STATUS_OPERATION_CANCELED, + + /// Indicates that the request redirect failed. + + COREWEBVIEW2_WEB_ERROR_STATUS_REDIRECT_FAILED, + + /// Indicates that an unexpected error occurred. + + COREWEBVIEW2_WEB_ERROR_STATUS_UNEXPECTED_ERROR, + + /// Indicates that user is prompted with a login, waiting on user action. + /// Initial navigation to a login site will always return this even if app provides + /// credential using BasicAuthenticationRequested. + /// HTTP response status code in this case is 401. + /// See status code reference here: https://developer.mozilla.org/docs/Web/HTTP/Status. + + COREWEBVIEW2_WEB_ERROR_STATUS_VALID_AUTHENTICATION_CREDENTIALS_REQUIRED, + + /// Indicates that user lacks proper authentication credentials for a proxy server. + /// HTTP response status code in this case is 407. + /// See status code reference here: https://developer.mozilla.org/docs/Web/HTTP/Status. + + COREWEBVIEW2_WEB_ERROR_STATUS_VALID_PROXY_AUTHENTICATION_REQUIRED, +} COREWEBVIEW2_WEB_ERROR_STATUS; + +/// Specifies the web resource request contexts. + +[v1_enum] +typedef enum COREWEBVIEW2_WEB_RESOURCE_CONTEXT { + + /// Specifies all resources. + + COREWEBVIEW2_WEB_RESOURCE_CONTEXT_ALL, + + /// Specifies a document resource. + + COREWEBVIEW2_WEB_RESOURCE_CONTEXT_DOCUMENT, + + /// Specifies a CSS resource. + + COREWEBVIEW2_WEB_RESOURCE_CONTEXT_STYLESHEET, + + /// Specifies an image resource. + + COREWEBVIEW2_WEB_RESOURCE_CONTEXT_IMAGE, + + /// Specifies another media resource such as a video. + + COREWEBVIEW2_WEB_RESOURCE_CONTEXT_MEDIA, + + /// Specifies a font resource. + + COREWEBVIEW2_WEB_RESOURCE_CONTEXT_FONT, + + /// Specifies a script resource. + + COREWEBVIEW2_WEB_RESOURCE_CONTEXT_SCRIPT, + + /// Specifies an XML HTTP request. + + COREWEBVIEW2_WEB_RESOURCE_CONTEXT_XML_HTTP_REQUEST, + + /// Specifies a Fetch API communication. + + COREWEBVIEW2_WEB_RESOURCE_CONTEXT_FETCH, + + /// Specifies a TextTrack resource. + + COREWEBVIEW2_WEB_RESOURCE_CONTEXT_TEXT_TRACK, + + /// Specifies an EventSource API communication. + + COREWEBVIEW2_WEB_RESOURCE_CONTEXT_EVENT_SOURCE, + + /// Specifies a WebSocket API communication. + + COREWEBVIEW2_WEB_RESOURCE_CONTEXT_WEBSOCKET, + + /// Specifies a Web App Manifest. + + COREWEBVIEW2_WEB_RESOURCE_CONTEXT_MANIFEST, + + /// Specifies a Signed HTTP Exchange. + + COREWEBVIEW2_WEB_RESOURCE_CONTEXT_SIGNED_EXCHANGE, + + /// Specifies a Ping request. + + COREWEBVIEW2_WEB_RESOURCE_CONTEXT_PING, + + /// Specifies a CSP Violation Report. + + COREWEBVIEW2_WEB_RESOURCE_CONTEXT_CSP_VIOLATION_REPORT, + + /// Specifies an other resource. + + COREWEBVIEW2_WEB_RESOURCE_CONTEXT_OTHER +} COREWEBVIEW2_WEB_RESOURCE_CONTEXT; + +/// Specifies the reason for moving focus. + +[v1_enum] +typedef enum COREWEBVIEW2_MOVE_FOCUS_REASON { + + /// Specifies that the code is setting focus into WebView. + + COREWEBVIEW2_MOVE_FOCUS_REASON_PROGRAMMATIC, + + /// Specifies that the focus is moving due to Tab traversal forward. + + COREWEBVIEW2_MOVE_FOCUS_REASON_NEXT, + + /// Specifies that the focus is moving due to Tab traversal backward. + + COREWEBVIEW2_MOVE_FOCUS_REASON_PREVIOUS, +} COREWEBVIEW2_MOVE_FOCUS_REASON; + +/// Specifies the key event type that triggered an `AcceleratorKeyPressed` +/// event. + +[v1_enum] +typedef enum COREWEBVIEW2_KEY_EVENT_KIND { + + /// Specifies that the key event type corresponds to window message + /// `WM_KEYDOWN`. + + COREWEBVIEW2_KEY_EVENT_KIND_KEY_DOWN, + + /// Specifies that the key event type corresponds to window message + /// `WM_KEYUP`. + + COREWEBVIEW2_KEY_EVENT_KIND_KEY_UP, + + /// Specifies that the key event type corresponds to window message + /// `WM_SYSKEYDOWN`. + + COREWEBVIEW2_KEY_EVENT_KIND_SYSTEM_KEY_DOWN, + + /// Specifies that the key event type corresponds to window message + /// `WM_SYSKEYUP`. + + COREWEBVIEW2_KEY_EVENT_KIND_SYSTEM_KEY_UP, +} COREWEBVIEW2_KEY_EVENT_KIND; + +/// Specifies the browser process exit type used in the +/// `ICoreWebView2BrowserProcessExitedEventArgs` interface. + +[v1_enum] +typedef enum COREWEBVIEW2_BROWSER_PROCESS_EXIT_KIND { + + /// Indicates that the browser process ended normally. + + COREWEBVIEW2_BROWSER_PROCESS_EXIT_KIND_NORMAL, + + /// Indicates that the browser process ended unexpectedly. + /// A `ProcessFailed` event will also be sent to listening WebViews from the + /// `ICoreWebView2Environment` associated to the failed process. + + COREWEBVIEW2_BROWSER_PROCESS_EXIT_KIND_FAILED +} COREWEBVIEW2_BROWSER_PROCESS_EXIT_KIND; + +/// Contains the information packed into the `LPARAM` sent to a Win32 key +/// event. For more information about `WM_KEYDOWN`, navigate to +/// [WM_KEYDOWN message](/windows/win32/inputdev/wm-keydown). + +typedef struct COREWEBVIEW2_PHYSICAL_KEY_STATUS { + + /// Specifies the repeat count for the current message. + + UINT32 RepeatCount; + + /// Specifies the scan code. + + UINT32 ScanCode; + + /// Indicates that the key is an extended key. + + BOOL IsExtendedKey; + + /// Indicates that a menu key is held down (context code). + + BOOL IsMenuKeyDown; + + /// Indicates that the key was held down. + + BOOL WasKeyDown; + + /// Indicates that the key was released. + + BOOL IsKeyReleased; +} COREWEBVIEW2_PHYSICAL_KEY_STATUS; + +/// A value representing RGBA color (Red, Green, Blue, Alpha) for WebView2. +/// Each component takes a value from 0 to 255, with 0 being no intensity +/// and 255 being the highest intensity. + +typedef struct COREWEBVIEW2_COLOR { + + /// Specifies the intensity of the Alpha ie. opacity value. 0 is transparent, + /// 255 is opaque. + + BYTE A; + + /// Specifies the intensity of the Red color. + + BYTE R; + + /// Specifies the intensity of the Green color. + + BYTE G; + + /// Specifies the intensity of the Blue color. + + BYTE B; +} COREWEBVIEW2_COLOR; + +/// Mouse event type used by SendMouseInput to convey the type of mouse event +/// being sent to WebView. The values of this enum align with the matching +/// WM_* window messages. + +[v1_enum] +typedef enum COREWEBVIEW2_MOUSE_EVENT_KIND { + + /// Mouse horizontal wheel scroll event, WM_MOUSEHWHEEL. + + COREWEBVIEW2_MOUSE_EVENT_KIND_HORIZONTAL_WHEEL = 0x020E, + + /// Left button double click mouse event, WM_LBUTTONDBLCLK. + + COREWEBVIEW2_MOUSE_EVENT_KIND_LEFT_BUTTON_DOUBLE_CLICK = 0x0203, + + /// Left button down mouse event, WM_LBUTTONDOWN. + + COREWEBVIEW2_MOUSE_EVENT_KIND_LEFT_BUTTON_DOWN = 0x0201, + + /// Left button up mouse event, WM_LBUTTONUP. + + COREWEBVIEW2_MOUSE_EVENT_KIND_LEFT_BUTTON_UP = 0x0202, + + /// Mouse leave event, WM_MOUSELEAVE. + + COREWEBVIEW2_MOUSE_EVENT_KIND_LEAVE = 0x02A3, + + /// Middle button double click mouse event, WM_MBUTTONDBLCLK. + + COREWEBVIEW2_MOUSE_EVENT_KIND_MIDDLE_BUTTON_DOUBLE_CLICK = 0x0209, + + /// Middle button down mouse event, WM_MBUTTONDOWN. + + COREWEBVIEW2_MOUSE_EVENT_KIND_MIDDLE_BUTTON_DOWN = 0x0207, + + /// Middle button up mouse event, WM_MBUTTONUP. + + COREWEBVIEW2_MOUSE_EVENT_KIND_MIDDLE_BUTTON_UP = 0x0208, + + /// Mouse move event, WM_MOUSEMOVE. + + COREWEBVIEW2_MOUSE_EVENT_KIND_MOVE = 0x0200, + + /// Right button double click mouse event, WM_RBUTTONDBLCLK. + + COREWEBVIEW2_MOUSE_EVENT_KIND_RIGHT_BUTTON_DOUBLE_CLICK = 0x0206, + + /// Right button down mouse event, WM_RBUTTONDOWN. + + COREWEBVIEW2_MOUSE_EVENT_KIND_RIGHT_BUTTON_DOWN = 0x0204, + + /// Right button up mouse event, WM_RBUTTONUP. + + COREWEBVIEW2_MOUSE_EVENT_KIND_RIGHT_BUTTON_UP = 0x0205, + + /// Mouse wheel scroll event, WM_MOUSEWHEEL. + + COREWEBVIEW2_MOUSE_EVENT_KIND_WHEEL = 0x020A, + + /// First or second X button double click mouse event, WM_XBUTTONDBLCLK. + + COREWEBVIEW2_MOUSE_EVENT_KIND_X_BUTTON_DOUBLE_CLICK = 0x020D, + + /// First or second X button down mouse event, WM_XBUTTONDOWN. + + COREWEBVIEW2_MOUSE_EVENT_KIND_X_BUTTON_DOWN = 0x020B, + + /// First or second X button up mouse event, WM_XBUTTONUP. + + COREWEBVIEW2_MOUSE_EVENT_KIND_X_BUTTON_UP = 0x020C, +} COREWEBVIEW2_MOUSE_EVENT_KIND; + +/// Mouse event virtual keys associated with a COREWEBVIEW2_MOUSE_EVENT_KIND for +/// SendMouseInput. These values can be combined into a bit flag if more than +/// one virtual key is pressed for the event. The values of this enum align +/// with the matching MK_* mouse keys. + +[v1_enum] +typedef enum COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS { + + /// No additional keys pressed. + + COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_NONE = 0x0, + + /// Left mouse button is down, MK_LBUTTON. + + COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_LEFT_BUTTON = 0x0001, + + /// Right mouse button is down, MK_RBUTTON. + + COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_RIGHT_BUTTON = 0x0002, + + /// SHIFT key is down, MK_SHIFT. + + COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_SHIFT = 0x0004, + + /// CTRL key is down, MK_CONTROL. + + COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_CONTROL = 0x0008, + + /// Middle mouse button is down, MK_MBUTTON. + + COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_MIDDLE_BUTTON = 0x0010, + + /// First X button is down, MK_XBUTTON1 + + COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_X_BUTTON1 = 0x0020, + + /// Second X button is down, MK_XBUTTON2 + + COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_X_BUTTON2 = 0x0040, +} COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS; +cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS);") + +/// Pointer event type used by SendPointerInput to convey the type of pointer +/// event being sent to WebView. The values of this enum align with the +/// matching WM_POINTER* window messages. + +[v1_enum] +typedef enum COREWEBVIEW2_POINTER_EVENT_KIND { + + /// Corresponds to WM_POINTERACTIVATE. + + COREWEBVIEW2_POINTER_EVENT_KIND_ACTIVATE = 0x024B, + + /// Corresponds to WM_POINTERDOWN. + + COREWEBVIEW2_POINTER_EVENT_KIND_DOWN = 0x0246, + + /// Corresponds to WM_POINTERENTER. + + COREWEBVIEW2_POINTER_EVENT_KIND_ENTER = 0x0249, + + /// Corresponds to WM_POINTERLEAVE. + + COREWEBVIEW2_POINTER_EVENT_KIND_LEAVE = 0x024A, + + /// Corresponds to WM_POINTERUP. + + COREWEBVIEW2_POINTER_EVENT_KIND_UP = 0x0247, + + /// Corresponds to WM_POINTERUPDATE. + + COREWEBVIEW2_POINTER_EVENT_KIND_UPDATE = 0x0245, +} COREWEBVIEW2_POINTER_EVENT_KIND; + +/// Mode for how the Bounds property is interpreted in relation to the RasterizationScale property. +[v1_enum] +typedef enum COREWEBVIEW2_BOUNDS_MODE { + + /// Bounds property represents raw pixels. Physical size of Webview is not impacted by RasterizationScale. + + COREWEBVIEW2_BOUNDS_MODE_USE_RAW_PIXELS, + + /// Bounds property represents logicl pixels and the RasterizationScale property is used to get the physical size of the WebView. + + COREWEBVIEW2_BOUNDS_MODE_USE_RASTERIZATION_SCALE, +} COREWEBVIEW2_BOUNDS_MODE; + +/// Specifies the client certificate kind. +[v1_enum] typedef enum COREWEBVIEW2_CLIENT_CERTIFICATE_KIND { + /// Specifies smart card certificate. + COREWEBVIEW2_CLIENT_CERTIFICATE_KIND_SMART_CARD, + /// Specifies PIN certificate. + COREWEBVIEW2_CLIENT_CERTIFICATE_KIND_PIN, + /// Specifies other certificate. + COREWEBVIEW2_CLIENT_CERTIFICATE_KIND_OTHER, +} COREWEBVIEW2_CLIENT_CERTIFICATE_KIND; + +/// State of the download operation. +[v1_enum] +typedef enum COREWEBVIEW2_DOWNLOAD_STATE { + /// The download is in progress. + COREWEBVIEW2_DOWNLOAD_STATE_IN_PROGRESS, + /// The connection with the file host was broken. The `InterruptReason` property + /// can be accessed from `ICoreWebView2DownloadOperation`. See + /// `COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON` for descriptions of kinds of + /// interrupt reasons. Host can check whether an interrupted download can be + /// resumed with the `CanResume` property on the `ICoreWebView2DownloadOperation`. + /// Once resumed, a download is in the `COREWEBVIEW2_DOWNLOAD_STATE_IN_PROGRESS` state. + COREWEBVIEW2_DOWNLOAD_STATE_INTERRUPTED, + /// The download completed successfully. + COREWEBVIEW2_DOWNLOAD_STATE_COMPLETED, +} COREWEBVIEW2_DOWNLOAD_STATE; + +/// Reason why a download was interrupted. +[v1_enum] +typedef enum COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON { + COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_NONE, + + /// Generic file error. + COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_FAILED, + /// Access denied due to security restrictions. + COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_ACCESS_DENIED, + /// Disk full. User should free some space or choose a different location to + /// store the file. + COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_NO_SPACE, + /// Result file path with file name is too long. + COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_NAME_TOO_LONG, + /// File is too large for file system. + COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_TOO_LARGE, + /// Microsoft Defender Smartscreen detected a virus in the file. + COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_MALICIOUS, + /// File was in use, too many files opened, or out of memory. + COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_TRANSIENT_ERROR, + /// File blocked by local policy. + COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_BLOCKED_BY_POLICY, + /// Security check failed unexpectedly. Microsoft Defender SmartScreen could + /// not scan this file. + COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_SECURITY_CHECK_FAILED, + /// Seeking past the end of a file in opening a file, as part of resuming an + /// interrupted download. The file did not exist or was not as large as + /// expected. Partially downloaded file was truncated or deleted, and download + /// will be restarted automatically. + COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_TOO_SHORT, + /// Partial file did not match the expected hash and was deleted. Download + /// will be restarted automatically. + COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_HASH_MISMATCH, + + /// Generic network error. User can retry the download manually. + COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_NETWORK_FAILED, + /// Network operation timed out. + COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_NETWORK_TIMEOUT, + /// Network connection lost. User can retry the download manually. + COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_NETWORK_DISCONNECTED, + /// Server has gone down. User can retry the download manually. + COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_NETWORK_SERVER_DOWN, + /// Network request invalid because original or redirected URI is invalid, has + /// an unsupported scheme, or is disallowed by network policy. + COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_NETWORK_INVALID_REQUEST, + + /// Generic server error. User can retry the download manually. + COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_FAILED, + /// Server does not support range requests. + COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_NO_RANGE, + /// Server does not have the requested data. + COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_BAD_CONTENT, + /// Server did not authorize access to resource. + COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_UNAUTHORIZED, + /// Server certificate problem. + COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_CERTIFICATE_PROBLEM, + /// Server access forbidden. + COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_FORBIDDEN, + /// Unexpected server response. Responding server may not be intended server. + /// User can retry the download manually. + COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_UNEXPECTED_RESPONSE, + /// Server sent fewer bytes than the Content-Length header. Content-length + /// header may be invalid or connection may have closed. Download is treated + /// as complete unless there are + /// [strong validators](https://tools.ietf.org/html/rfc7232#section-2) present + /// to interrupt the download. + COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_CONTENT_LENGTH_MISMATCH, + /// Unexpected cross-origin redirect. + COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_CROSS_ORIGIN_REDIRECT, + + /// User canceled the download. + COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_USER_CANCELED, + /// User shut down the WebView. Resuming downloads that were interrupted + /// during shutdown is not yet supported. + COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_USER_SHUTDOWN, + /// User paused the download. + COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_USER_PAUSED, + + /// WebView crashed. + COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_DOWNLOAD_PROCESS_CRASHED, +} COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON; + +/// The orientation for printing, used by the `Orientation` property on +/// `ICoreWebView2PrintSettings`. Currently only printing to PDF is supported. +[v1_enum] +typedef enum COREWEBVIEW2_PRINT_ORIENTATION { + /// Print the page(s) in portrait orientation. + COREWEBVIEW2_PRINT_ORIENTATION_PORTRAIT, + + /// Print the page(s) in landscape orientation. + COREWEBVIEW2_PRINT_ORIENTATION_LANDSCAPE, +} COREWEBVIEW2_PRINT_ORIENTATION; + +/// The default download dialog can be aligned to any of the WebView corners +/// by setting the `DefaultDownloadDialogCornerAlignment` property. The default +/// position is top-right corner. +[v1_enum] +typedef enum COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT { + + /// Top-left corner of the WebView. + COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT_TOP_LEFT, + + /// Top-right corner of the WebView. + COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT_TOP_RIGHT, + + /// Bottom-left corner of the WebView. + COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT_BOTTOM_LEFT, + + /// Bottom-right corner of the WebView. + COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT_BOTTOM_RIGHT, + +} COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT; + +/// Indicates the process type used in the ICoreWebView2ProcessInfo interface. +[v1_enum] +typedef enum COREWEBVIEW2_PROCESS_KIND { + /// Indicates the browser process kind. + COREWEBVIEW2_PROCESS_KIND_BROWSER, + + /// Indicates the render process kind. + COREWEBVIEW2_PROCESS_KIND_RENDERER, + + /// Indicates the utility process kind. + COREWEBVIEW2_PROCESS_KIND_UTILITY, + + /// Indicates the sandbox helper process kind. + COREWEBVIEW2_PROCESS_KIND_SANDBOX_HELPER, + + /// Indicates the GPU process kind. + COREWEBVIEW2_PROCESS_KIND_GPU, + + /// Indicates the PPAPI plugin process kind. + COREWEBVIEW2_PROCESS_KIND_PPAPI_PLUGIN, + + /// Indicates the PPAPI plugin broker process kind. + COREWEBVIEW2_PROCESS_KIND_PPAPI_BROKER, +} COREWEBVIEW2_PROCESS_KIND; + +// PDF toolbar item. This enum must be in sync with ToolBarItem in pdf-store-data-types.ts +/// Specifies the PDF toolbar item types used for the `ICoreWebView2Settings::put_HiddenPdfToolbarItems` method. +[v1_enum] +typedef enum COREWEBVIEW2_PDF_TOOLBAR_ITEMS { + + /// No item + COREWEBVIEW2_PDF_TOOLBAR_ITEMS_NONE = 0x0, + + /// The save button + COREWEBVIEW2_PDF_TOOLBAR_ITEMS_SAVE = 0x0001, + + /// The print button + COREWEBVIEW2_PDF_TOOLBAR_ITEMS_PRINT = 0x0002, + + /// The save as button + COREWEBVIEW2_PDF_TOOLBAR_ITEMS_SAVE_AS = 0x0004, + + /// The zoom in button + COREWEBVIEW2_PDF_TOOLBAR_ITEMS_ZOOM_IN = 0x0008, + + /// The zoom out button + COREWEBVIEW2_PDF_TOOLBAR_ITEMS_ZOOM_OUT = 0x0010, + + /// The rotate button + COREWEBVIEW2_PDF_TOOLBAR_ITEMS_ROTATE = 0x0020, + + /// The fit page button + COREWEBVIEW2_PDF_TOOLBAR_ITEMS_FIT_PAGE = 0x0040, + + /// The page layout button + COREWEBVIEW2_PDF_TOOLBAR_ITEMS_PAGE_LAYOUT = 0x0080, + + /// The bookmarks button + COREWEBVIEW2_PDF_TOOLBAR_ITEMS_BOOKMARKS = 0x0100, + + /// The page select button + COREWEBVIEW2_PDF_TOOLBAR_ITEMS_PAGE_SELECTOR = 0x0200, + + /// The search button + COREWEBVIEW2_PDF_TOOLBAR_ITEMS_SEARCH = 0x0400, + +} COREWEBVIEW2_PDF_TOOLBAR_ITEMS; +cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(COREWEBVIEW2_PDF_TOOLBAR_ITEMS);") + +/// Indicates the kind of context for which the context menu was created +/// for the `ICoreWebView2ContextMenuTarget::get_Kind` method. +/// This enum will always represent the active element that caused the context menu request. +/// If there is a selection with multiple images, audio and text, for example, the element that +/// the end user right clicks on within this selection will be the option represented by this enum. +[v1_enum] +typedef enum COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND { + /// Indicates that the context menu was created for the page without any additional content. + COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND_PAGE, + + /// Indicates that the context menu was created for an image element. + COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND_IMAGE, + + /// Indicates that the context menu was created for selected text. + COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND_SELECTED_TEXT, + + /// Indicates that the context menu was created for an audio element. + COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND_AUDIO, + + /// Indicates that the context menu was created for a video element. + COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND_VIDEO, +} COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND; + +/// Specifies the menu item kind +/// for the `ICoreWebView2ContextMenuItem::get_Kind` method +[v1_enum] +typedef enum COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND { + /// Specifies a command menu item kind. + COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND_COMMAND, + + /// Specifies a check box menu item kind. `ContextMenuItem` objects of this kind + /// will need the `IsChecked` property to determine current state of the check box. + COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND_CHECK_BOX, + + /// Specifies a radio button menu item kind. `ContextMenuItem` objects of this kind + /// will need the `IsChecked` property to determine current state of the radio button. + COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND_RADIO, + + /// Specifies a separator menu item kind. `ContextMenuItem` objects of this kind + /// are used to signal a visual separator with no functionality. + COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND_SEPARATOR, + + /// Specifies a submenu menu item kind. `ContextMenuItem` objects of this kind will contain + /// a `ContextMenuItemCollection` of its children `ContextMenuItem` objects. + COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND_SUBMENU, +} COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND; + +/// An enum to represent the options for WebView2 color scheme: auto, light, or dark. +[v1_enum] +typedef enum COREWEBVIEW2_PREFERRED_COLOR_SCHEME { + /// Auto color scheme. + COREWEBVIEW2_PREFERRED_COLOR_SCHEME_AUTO, + + /// Light color scheme. + COREWEBVIEW2_PREFERRED_COLOR_SCHEME_LIGHT, + + /// Dark color scheme. + COREWEBVIEW2_PREFERRED_COLOR_SCHEME_DARK +} COREWEBVIEW2_PREFERRED_COLOR_SCHEME; + +/// Specifies the datatype for the +/// `ICoreWebView2Profile2::ClearBrowsingData` method. +[v1_enum] +typedef enum COREWEBVIEW2_BROWSING_DATA_KINDS { + + /// Specifies file systems data. + COREWEBVIEW2_BROWSING_DATA_KINDS_FILE_SYSTEMS = 1 << 0, + + /// Specifies data stored by the IndexedDB DOM feature. + COREWEBVIEW2_BROWSING_DATA_KINDS_INDEXED_DB = 1 << 1, + + /// Specifies data stored by the localStorage DOM API. + COREWEBVIEW2_BROWSING_DATA_KINDS_LOCAL_STORAGE = 1 << 2, + + /// Specifies data stored by the Web SQL database DOM API. + COREWEBVIEW2_BROWSING_DATA_KINDS_WEB_SQL = 1 << 3, + + /// Specifies data stored by the CacheStorage DOM API. + COREWEBVIEW2_BROWSING_DATA_KINDS_CACHE_STORAGE = 1 << 4, + + /// Specifies DOM storage data, now and future. This browsing data kind is + /// inclusive of COREWEBVIEW2_BROWSING_DATA_KINDS_FILE_SYSTEMS, + /// COREWEBVIEW2_BROWSING_DATA_KINDS_INDEXED_DB, + /// COREWEBVIEW2_BROWSING_DATA_KINDS_LOCAL_STORAGE, + /// COREWEBVIEW2_BROWSING_DATA_KINDS_WEB_SQL, + /// COREWEBVIEW2_BROWSING_DATA_KINDS_CACHE_STORAGE. + /// New DOM storage data types may be added to this data kind in the future. + COREWEBVIEW2_BROWSING_DATA_KINDS_ALL_DOM_STORAGE = 1 << 5, + + /// Specifies HTTP cookies data. + COREWEBVIEW2_BROWSING_DATA_KINDS_COOKIES = 1 << 6, + + /// Specifies all site data, now and future. This browsing data kind + /// is inclusive of COREWEBVIEW2_BROWSING_DATA_KINDS_ALL_DOM_STORAGE and + /// COREWEBVIEW2_BROWSING_DATA_KINDS_COOKIES. New site data types + /// may be added to this data kind in the future. + COREWEBVIEW2_BROWSING_DATA_KINDS_ALL_SITE = 1 << 7, + + /// Specifies disk cache. + COREWEBVIEW2_BROWSING_DATA_KINDS_DISK_CACHE = 1 << 8, + + /// Specifies download history data. + COREWEBVIEW2_BROWSING_DATA_KINDS_DOWNLOAD_HISTORY = 1 << 9, + + /// Specifies general autofill form data. + /// This excludes password information and includes information like: + /// names, street and email addresses, phone numbers, and arbitrary input. + /// This also includes payment data. + COREWEBVIEW2_BROWSING_DATA_KINDS_GENERAL_AUTOFILL = 1 << 10, + + /// Specifies password autosave data. + COREWEBVIEW2_BROWSING_DATA_KINDS_PASSWORD_AUTOSAVE = 1 << 11, + + /// Specifies browsing history data. + COREWEBVIEW2_BROWSING_DATA_KINDS_BROWSING_HISTORY = 1 << 12, + + /// Specifies settings data. + COREWEBVIEW2_BROWSING_DATA_KINDS_SETTINGS = 1 << 13, + + /// Specifies profile data that should be wiped to make it look like a new profile. + /// This does not delete account-scoped data like passwords but will remove access + /// to account-scoped data by signing the user out. + /// Specifies all profile data, now and future. New profile data types may be added + /// to this data kind in the future. + /// This browsing data kind is inclusive of COREWEBVIEW2_BROWSING_DATA_KINDS_ALL_SITE, + /// COREWEBVIEW2_BROWSING_DATA_KINDS_DISK_CACHE, + /// COREWEBVIEW2_BROWSING_DATA_KINDS_DOWNLOAD_HISTORY, + /// COREWEBVIEW2_BROWSING_DATA_KINDS_GENERAL_AUTOFILL, + /// COREWEBVIEW2_BROWSING_DATA_KINDS_PASSWORD_AUTOSAVE, + /// COREWEBVIEW2_BROWSING_DATA_KINDS_BROWSING_HISTORY, and + /// COREWEBVIEW2_BROWSING_DATA_KINDS_SETTINGS. + COREWEBVIEW2_BROWSING_DATA_KINDS_ALL_PROFILE = 1 << 14, +} COREWEBVIEW2_BROWSING_DATA_KINDS; +cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(COREWEBVIEW2_BROWSING_DATA_KINDS);") + +/// Specifies the action type when server certificate error is detected to be +/// used in the `ICoreWebView2ServerCertificateErrorDetectedEventArgs` +/// interface. +[v1_enum] typedef enum COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION { + /// Indicates to ignore the warning and continue the request with the TLS + /// certificate. This decision is cached for the RequestUri's host and the + /// server certificate in the session. + COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION_ALWAYS_ALLOW, + + /// Indicates to reject the certificate and cancel the request. + COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION_CANCEL, + + /// Indicates to display the default TLS interstitial error page to user for + /// page navigations. + /// For others TLS certificate is rejected and the request is cancelled. + COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION_DEFAULT +} COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION; + +/// Specifies the image format to use for favicon. +[v1_enum] +typedef enum COREWEBVIEW2_FAVICON_IMAGE_FORMAT { + /// Indicates that the PNG image format is used. + COREWEBVIEW2_FAVICON_IMAGE_FORMAT_PNG, + + /// Indicates the JPEG image format is used. + COREWEBVIEW2_FAVICON_IMAGE_FORMAT_JPEG, +} COREWEBVIEW2_FAVICON_IMAGE_FORMAT; + +// End of enums and structs + +/// WebView2 enables you to host web content using the latest Microsoft Edge +/// browser and web technology. + +[uuid(76eceacb-0462-4d94-ac83-423a6793775e), object, pointer_default(unique)] +interface ICoreWebView2 : IUnknown { + + /// The `ICoreWebView2Settings` object contains various modifiable settings + /// for the running WebView. + + [propget] HRESULT Settings([out, retval] ICoreWebView2Settings** settings); + + /// The URI of the current top level document. This value potentially + /// changes as a part of the `SourceChanged` event that runs for some cases + /// such as navigating to a different site or fragment navigations. It + /// remains the same for other types of navigations such as page refreshes + /// or `history.pushState` with the same URL as the current page. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + /// + /// \snippet ControlComponent.cpp SourceChanged + [propget] HRESULT Source([out, retval] LPWSTR* uri); + + /// Cause a navigation of the top-level document to run to the specified URI. + /// For more information, navigate to [Navigation + /// events](/microsoft-edge/webview2/concepts/navigation-events). + /// + /// \> [!NOTE]\n\> This operation starts a navigation and the corresponding + /// `NavigationStarting` event triggers sometime after `Navigate` runs. + /// + /// \snippet ControlComponent.cpp Navigate + HRESULT Navigate([in] LPCWSTR uri); + + /// Initiates a navigation to htmlContent as source HTML of a new document. + /// The `htmlContent` parameter may not be larger than 2 MB (2 * 1024 * 1024 bytes) in total size. + /// The origin of the new page is `about:blank`. + /// + /// ```cpp + /// SetVirtualHostNameToFolderMapping( + /// L"appassets.example", L"assets", + /// COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND_DENY); + /// + /// WCHAR c_navString[] = LR" + /// + /// + /// + ///

          Click me

          + /// "; + /// m_webView->NavigateToString(c_navString); + /// ``` + /// \snippet SettingsComponent.cpp NavigateToString + HRESULT NavigateToString([in] LPCWSTR htmlContent); + + /// Add an event handler for the `NavigationStarting` event. + /// `NavigationStarting` runs when the WebView main frame is requesting + /// permission to navigate to a different URI. Redirects trigger this + /// operation as well, and the navigation id is the same as the original + /// one. + /// + /// Navigations will be blocked until all `NavigationStarting` event handlers + /// return. + /// + /// \snippet SettingsComponent.cpp NavigationStarting + HRESULT add_NavigationStarting( + [in] ICoreWebView2NavigationStartingEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with `add_NavigationStarting`. + HRESULT remove_NavigationStarting( + [in] EventRegistrationToken token); + + /// Add an event handler for the `ContentLoading` event. `ContentLoading` + /// triggers before any content is loaded, including scripts added with + /// `AddScriptToExecuteOnDocumentCreated`. `ContentLoading` does not trigger + /// if a same page navigation occurs (such as through `fragment` + /// navigations or `history.pushState` navigations). This operation + /// follows the `NavigationStarting` and `SourceChanged` events and precedes + /// the `HistoryChanged` and `NavigationCompleted` events. + HRESULT add_ContentLoading( + [in] ICoreWebView2ContentLoadingEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with `add_ContentLoading`. + HRESULT remove_ContentLoading( + [in] EventRegistrationToken token); + + /// Add an event handler for the `SourceChanged` event. `SourceChanged` + /// triggers when the `Source` property changes. `SourceChanged` runs when + /// navigating to a different site or fragment navigations. It does not + /// trigger for other types of navigations such as page refreshes or + /// `history.pushState` with the same URL as the current page. + /// `SourceChanged` runs before `ContentLoading` for navigation to a new + /// document. + /// + /// \snippet ControlComponent.cpp SourceChanged + HRESULT add_SourceChanged( + [in] ICoreWebView2SourceChangedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with `add_SourceChanged`. + HRESULT remove_SourceChanged( + [in] EventRegistrationToken token); + + /// Add an event handler for the `HistoryChanged` event. `HistoryChanged` is + /// raised for changes to joint session history, which consists of top-level + /// and manual frame navigations. Use `HistoryChanged` to verify that the + /// `CanGoBack` or `CanGoForward` value has changed. `HistoryChanged` also + /// runs for using `GoBack` or `GoForward`. `HistoryChanged` runs after + /// `SourceChanged` and `ContentLoading`. `CanGoBack` is false for + /// navigations initiated through ICoreWebView2Frame APIs if there has not yet + /// been a user gesture. + /// + /// \snippet ControlComponent.cpp HistoryChanged + HRESULT add_HistoryChanged( + [in] ICoreWebView2HistoryChangedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with `add_HistoryChanged`. + HRESULT remove_HistoryChanged( + [in] EventRegistrationToken token); + + /// Add an event handler for the `NavigationCompleted` event. + /// `NavigationCompleted` runs when the WebView has completely loaded + /// (concurrently when `body.onload` runs) or loading stopped with error. + /// + /// \snippet ControlComponent.cpp NavigationCompleted + HRESULT add_NavigationCompleted( + [in] ICoreWebView2NavigationCompletedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with `add_NavigationCompleted`. + HRESULT remove_NavigationCompleted( + [in] EventRegistrationToken token); + + /// Add an event handler for the `FrameNavigationStarting` event. + /// `FrameNavigationStarting` triggers when a child frame in the WebView + /// requests permission to navigate to a different URI. Redirects trigger + /// this operation as well, and the navigation id is the same as the original + /// one. + /// + /// Navigations will be blocked until all `FrameNavigationStarting` event + /// handlers return. + /// + /// \snippet SettingsComponent.cpp FrameNavigationStarting + HRESULT add_FrameNavigationStarting( + [in] ICoreWebView2NavigationStartingEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with + /// `add_FrameNavigationStarting`. + HRESULT remove_FrameNavigationStarting( + [in] EventRegistrationToken token); + + /// Add an event handler for the `FrameNavigationCompleted` event. + /// `FrameNavigationCompleted` triggers when a child frame has completely + /// loaded (concurrently when `body.onload` has triggered) or loading stopped with error. + /// + /// \snippet ControlComponent.cpp FrameNavigationCompleted + HRESULT add_FrameNavigationCompleted( + [in] ICoreWebView2NavigationCompletedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with + /// `add_FrameNavigationCompleted`. + HRESULT remove_FrameNavigationCompleted( + [in] EventRegistrationToken token); + + /// Add an event handler for the `ScriptDialogOpening` event. + /// `ScriptDialogOpening` runs when a JavaScript dialog (`alert`, `confirm`, + /// `prompt`, or `beforeunload`) displays for the webview. This event only + /// triggers if the `ICoreWebView2Settings::AreDefaultScriptDialogsEnabled` + /// property is set to `FALSE`. The `ScriptDialogOpening` event suppresses + /// dialogs or replaces default dialogs with custom dialogs. + /// + /// If a deferral is not taken on the event args, the subsequent scripts are + /// blocked until the event handler returns. If a deferral is taken, the + /// scripts are blocked until the deferral is completed. + /// + /// \snippet SettingsComponent.cpp ScriptDialogOpening + HRESULT add_ScriptDialogOpening( + [in] ICoreWebView2ScriptDialogOpeningEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with `add_ScriptDialogOpening`. + HRESULT remove_ScriptDialogOpening( + [in] EventRegistrationToken token); + + /// Add an event handler for the `PermissionRequested` event. + /// `PermissionRequested` runs when content in a WebView requests permission + /// to access some privileged resources. + /// + /// If a deferral is not taken on the event args, the subsequent scripts are + /// blocked until the event handler returns. If a deferral is taken, the + /// scripts are blocked until the deferral is completed. + /// + /// \snippet SettingsComponent.cpp PermissionRequested0 + /// \snippet SettingsComponent.cpp PermissionRequested1 + HRESULT add_PermissionRequested( + [in] ICoreWebView2PermissionRequestedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with `add_PermissionRequested`. + HRESULT remove_PermissionRequested( + [in] EventRegistrationToken token); + + /// Add an event handler for the `ProcessFailed` event. `ProcessFailed` runs + /// when a WebView process ends unexpectedly or becomes unresponsive. + /// + /// \snippet ProcessComponent.cpp ProcessFailed + HRESULT add_ProcessFailed( + [in] ICoreWebView2ProcessFailedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with add_ProcessFailed. + HRESULT remove_ProcessFailed( + [in] EventRegistrationToken token); + + /// Add the provided JavaScript to a list of scripts that should be run after + /// the global object has been created, but before the HTML document has + /// been parsed and before any other script included by the HTML document is + /// run. This method injects a script that runs on all top-level document + /// and child frame page navigations. This method runs asynchronously, and + /// you must wait for the completion handler to finish before the injected + /// script is ready to run. When this method completes, the `Invoke` method + /// of the handler is run with the `id` of the injected script. `id` is a + /// string. To remove the injected script, use + /// `RemoveScriptToExecuteOnDocumentCreated`. + /// + /// If the method is run in add_NewWindowRequested handler it should be called + /// after the new window is set. For more details see `ICoreWebView2NewWindowRequestedEventArgs::put_NewWindow`. + /// + /// \> [!NOTE]\n\> If an HTML document is running in a sandbox of some kind using + /// [sandbox](https://developer.mozilla.org/docs/Web/HTML/Element/iframe#attr-sandbox) + /// properties or the + /// [Content-Security-Policy](https://developer.mozilla.org/docs/Web/HTTP/Headers/Content-Security-Policy) + /// HTTP header affects the script that runs. For example, if the + /// `allow-modals` keyword is not set then requests to run the `alert` + /// function are ignored. + /// + /// \snippet ScriptComponent.cpp AddScriptToExecuteOnDocumentCreated + HRESULT AddScriptToExecuteOnDocumentCreated( + [in] LPCWSTR javaScript, + [in] ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler* handler); + + /// Remove the corresponding JavaScript added using + /// `AddScriptToExecuteOnDocumentCreated` with the specified script ID. + HRESULT RemoveScriptToExecuteOnDocumentCreated([in] LPCWSTR id); + + /// Run JavaScript code from the javascript parameter in the current + /// top-level document rendered in the WebView. The result of evaluating + /// the provided JavaScript is used in this parameter. The result value is + /// a JSON encoded string. If the result is undefined, contains a reference + /// cycle, or otherwise is not able to be encoded into JSON, then the result + /// is considered to be null, which is encoded in JSON as the string "null". + /// + /// \> [!NOTE]\n\> A function that has no explicit return value returns undefined. If the + /// script that was run throws an unhandled exception, then the result is + /// also "null". This method is applied asynchronously. If the method is + /// run after the `NavigationStarting` event during a navigation, the script + /// runs in the new document when loading it, around the time + /// `ContentLoading` is run. This operation executes the script even if + /// `ICoreWebView2Settings::IsScriptEnabled` is set to `FALSE`. + /// + /// \snippet ScriptComponent.cpp ExecuteScript + HRESULT ExecuteScript( + [in] LPCWSTR javaScript, + [in] ICoreWebView2ExecuteScriptCompletedHandler* handler); + + /// Capture an image of what WebView is displaying. Specify the format of + /// the image with the `imageFormat` parameter. The resulting image binary + /// data is written to the provided `imageStream` parameter. When + /// `CapturePreview` finishes writing to the stream, the `Invoke` method on + /// the provided `handler` parameter is run. This method fails if called + /// before the first ContentLoading event. For example if this is called in + /// the NavigationStarting event for the first navigation it will fail. + /// For subsequent navigations, the method may not fail, but will not capture + /// an image of a given webpage until the ContentLoading event has been fired + /// for it. Any call to this method prior to that will result in a capture of + /// the page being navigated away from. + /// + /// \snippet FileComponent.cpp CapturePreview + HRESULT CapturePreview( + [in] COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT imageFormat, + [in] IStream* imageStream, + [in] ICoreWebView2CapturePreviewCompletedHandler* handler); + + /// Reload the current page. This is similar to navigating to the URI of + /// current top level document including all navigation events firing and + /// respecting any entries in the HTTP cache. But, the back or forward + /// history are not modified. + HRESULT Reload(); + + /// Post the specified webMessage to the top level document in this WebView. + /// The main page receives the message by subscribing to the `message` event of the + /// `window.chrome.webview` of the page document. + /// + /// ```cpp + /// window.chrome.webview.addEventListener('message', handler) + /// window.chrome.webview.removeEventListener('message', handler) + /// ``` + /// + /// The event args is an instance of `MessageEvent`. The + /// `ICoreWebView2Settings::IsWebMessageEnabled` setting must be `TRUE` or + /// this method fails with `E_INVALIDARG`. The `data` property of the event + /// arg is the `webMessage` string parameter parsed as a JSON string into a + /// JavaScript object. The `source` property of the event arg is a reference + /// to the `window.chrome.webview` object. For information about sending + /// messages from the HTML document in the WebView to the host, navigate to + /// [add_WebMessageReceived](/microsoft-edge/webview2/reference/win32/icorewebview2#add_webmessagereceived). + /// The message is delivered asynchronously. If a navigation occurs before + /// the message is posted to the page, the message is discarded. + /// + /// \snippet ScenarioWebMessage.cpp WebMessageReceived + HRESULT PostWebMessageAsJson([in] LPCWSTR webMessageAsJson); + + /// Posts a message that is a simple string rather than a JSON string + /// representation of a JavaScript object. This behaves in exactly the same + /// manner as `PostWebMessageAsJson`, but the `data` property of the event + /// arg of the `window.chrome.webview` message is a string with the same + /// value as `webMessageAsString`. Use this instead of + /// `PostWebMessageAsJson` if you want to communicate using simple strings + /// rather than JSON objects. + HRESULT PostWebMessageAsString([in] LPCWSTR webMessageAsString); + + /// Add an event handler for the `WebMessageReceived` event. + /// `WebMessageReceived` runs when the + /// `ICoreWebView2Settings::IsWebMessageEnabled` setting is set and the + /// top-level document of the WebView runs + /// `window.chrome.webview.postMessage`. The `postMessage` function is + /// `void postMessage(object)` where object is any object supported by JSON + /// conversion. + /// + /// \snippet assets\ScenarioWebMessage.html chromeWebView + /// + /// When the page calls `postMessage`, the object parameter is converted to a + /// JSON string and is posted asynchronously to the host process. This will + /// result in the handler's `Invoke` method being called with the JSON string + /// as a parameter. + /// + /// \snippet ScenarioWebMessage.cpp WebMessageReceived + /// + /// If the same page calls `postMessage` multiple times, the corresponding + /// `WebMessageReceived` events are guaranteed to be fired in the same order. + /// However, if multiple frames call `postMessage`, there is no guaranteed + /// order. In addition, `WebMessageReceived` events caused by calls to + /// `postMessage` are not guaranteed to be sequenced with events caused by DOM + /// APIs. For example, if the page runs + /// + /// ```javascript + /// chrome.webview.postMessage("message"); + /// window.open(); + /// ``` + /// + /// then the `NewWindowRequested` event might be fired before the + /// `WebMessageReceived` event. If you need the `WebMessageReceived` event + /// to happen before anything else, then in the `WebMessageReceived` handler + /// you can post a message back to the page and have the page wait until it + /// receives that message before continuing. + HRESULT add_WebMessageReceived( + [in] ICoreWebView2WebMessageReceivedEventHandler* handler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with `add_WebMessageReceived`. + HRESULT remove_WebMessageReceived( + [in] EventRegistrationToken token); + + /// Runs an asynchronous `DevToolsProtocol` method. For more information + /// about available methods, navigate to + /// [DevTools Protocol Viewer](https://chromedevtools.github.io/devtools-protocol/tot) + /// . The `methodName` parameter is the full name of the method in the + /// `{domain}.{method}` format. The `parametersAsJson` parameter is a JSON + /// formatted string containing the parameters for the corresponding method. + /// The `Invoke` method of the `handler` is run when the method + /// asynchronously completes. `Invoke` is run with the return object of the + /// method as a JSON string. This function returns E_INVALIDARG if the `methodName` is + /// unknown or the `parametersAsJson` has an error. In the case of such an error, the + /// `returnObjectAsJson` parameter of the handler will include information + /// about the error. + /// + /// \snippet ScriptComponent.cpp CallDevToolsProtocolMethod + HRESULT CallDevToolsProtocolMethod( + [in] LPCWSTR methodName, + [in] LPCWSTR parametersAsJson, + [in] ICoreWebView2CallDevToolsProtocolMethodCompletedHandler* handler); + + /// The process ID of the browser process that hosts the WebView. + [propget] HRESULT BrowserProcessId([out, retval] UINT32* value); + + /// `TRUE` if the WebView is able to navigate to a previous page in the + /// navigation history. If `CanGoBack` changes value, the `HistoryChanged` + /// event runs. + [propget] HRESULT CanGoBack([out, retval] BOOL* canGoBack); + + /// `TRUE` if the WebView is able to navigate to a next page in the + /// navigation history. If `CanGoForward` changes value, the + /// `HistoryChanged` event runs. + [propget] HRESULT CanGoForward([out, retval] BOOL* canGoForward); + + /// Navigates the WebView to the previous page in the navigation history. + HRESULT GoBack(); + + /// Navigates the WebView to the next page in the navigation history. + HRESULT GoForward(); + + /// Get a DevTools Protocol event receiver that allows you to subscribe to a + /// DevTools Protocol event. The `eventName` parameter is the full name of + /// the event in the format `{domain}.{event}`. For more information about + /// DevTools Protocol events description and event args, navigate to + /// [DevTools Protocol Viewer](https://chromedevtools.github.io/devtools-protocol/tot). + /// + /// \snippet ScriptComponent.cpp DevToolsProtocolEventReceived + HRESULT GetDevToolsProtocolEventReceiver( + [in] LPCWSTR eventName, + [out, retval] ICoreWebView2DevToolsProtocolEventReceiver** receiver); + + /// Stop all navigations and pending resource fetches. Does not stop scripts. + HRESULT Stop(); + + /// Add an event handler for the `NewWindowRequested` event. + /// `NewWindowRequested` runs when content inside the WebView requests to + /// open a new window, such as through `window.open`. The app passes a + /// target WebView that is considered the opened window. + /// + /// If a deferral is not taken on the event args, scripts that resulted in + /// the new window that are requested are blocked until the event handler + /// returns. If a deferral is taken, then scripts are blocked until the + /// deferral is completed or new window is set. + /// + /// For more details and considerations on the target WebView to be supplied + /// at the opened window, see `ICoreWebView2NewWindowRequestedEventArgs::put_NewWindow`. + /// + /// \snippet AppWindow.cpp NewWindowRequested + HRESULT add_NewWindowRequested( + [in] ICoreWebView2NewWindowRequestedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with `add_NewWindowRequested`. + HRESULT remove_NewWindowRequested( + [in] EventRegistrationToken token); + + /// Add an event handler for the `DocumentTitleChanged` event. + /// `DocumentTitleChanged` runs when the `DocumentTitle` property of the + /// WebView changes and may run before or after the `NavigationCompleted` + /// event. + /// + /// \snippet FileComponent.cpp DocumentTitleChanged + HRESULT add_DocumentTitleChanged( + [in] ICoreWebView2DocumentTitleChangedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with `add_DocumentTitleChanged`. + HRESULT remove_DocumentTitleChanged( + [in] EventRegistrationToken token); + + /// The title for the current top-level document. If the document has no + /// explicit title or is otherwise empty, a default that may or may not match + /// the URI of the document is used. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + [propget] HRESULT DocumentTitle([out, retval] LPWSTR* title); + + /// Add the provided host object to script running in the WebView with the + /// specified name. Host objects are exposed as host object proxies using + /// `window.chrome.webview.hostObjects.{name}`. Host object proxies are + /// promises and resolves to an object representing the host object. The + /// promise is rejected if the app has not added an object with the name. + /// When JavaScript code access a property or method of the object, a promise + /// is return, which resolves to the value returned from the host for the + /// property or method, or rejected in case of error, for example, no + /// property or method on the object or parameters are not valid. + /// + /// \> [!NOTE]\n\> While simple types, `IDispatch` and array are supported, and + /// `IUnknown` objects that also implement `IDispatch` are treated as `IDispatch`, + /// generic `IUnknown`, `VT_DECIMAL`, or `VT_RECORD` variant is not supported. + /// Remote JavaScript objects like callback functions are represented as an + /// `VT_DISPATCH` `VARIANT` with the object implementing `IDispatch`. The + /// JavaScript callback method may be invoked using `DISPID_VALUE` for the + /// `DISPID`. Nested arrays are supported up to a depth of 3. Arrays of by + /// reference types are not supported. `VT_EMPTY` and `VT_NULL` are mapped + /// into JavaScript as `null`. In JavaScript, `null` and undefined are + /// mapped to `VT_EMPTY`. + /// + /// Additionally, all host objects are exposed as + /// `window.chrome.webview.hostObjects.sync.{name}`. Here the host objects + /// are exposed as synchronous host object proxies. These are not promises + /// and function runtimes or property access synchronously block running + /// script waiting to communicate cross process for the host code to run. + /// Accordingly the result may have reliability issues and it is recommended + /// that you use the promise-based asynchronous + /// `window.chrome.webview.hostObjects.{name}` API. + /// + /// Synchronous host object proxies and asynchronous host object proxies may + /// both use a proxy to the same host object. Remote changes made by one + /// proxy propagates to any other proxy of that same host object whether + /// the other proxies and synchronous or asynchronous. + /// + /// While JavaScript is blocked on a synchronous run to native code, that + /// native code is unable to run back to JavaScript. Attempts to do so fail + /// with `HRESULT_FROM_WIN32(ERROR_POSSIBLE_DEADLOCK)`. + /// + /// Host object proxies are JavaScript Proxy objects that intercept all + /// property get, property set, and method invocations. Properties or methods + /// that are a part of the Function or Object prototype are run locally. + /// Additionally any property or method in the + /// `chrome.webview.hostObjects.options.forceLocalProperties` + /// array are also run locally. This defaults to including optional methods + /// that have meaning in JavaScript like `toJSON` and `Symbol.toPrimitive`. + /// Add more to the array as required. + /// + /// The `chrome.webview.hostObjects.cleanupSome` method performs a best + /// effort garbage collection on host object proxies. + /// + /// The `chrome.webview.hostObjects.options` object provides the ability to + /// change some functionality of host objects. + /// + /// Options property | Details + /// ---|--- + /// `forceLocalProperties` | This is an array of host object property names that will be run locally, instead of being called on the native host object. This defaults to `then`, `toJSON`, `Symbol.toString`, and `Symbol.toPrimitive`. You can add other properties to specify that they should be run locally on the javascript host object proxy. + /// `log` | This is a callback that will be called with debug information. For example, you can set this to `console.log.bind(console)` to have it print debug information to the console to help when troubleshooting host object usage. By default this is null. + /// `shouldSerializeDates` | By default this is false, and javascript Date objects will be sent to host objects as a string using `JSON.stringify`. You can set this property to true to have Date objects properly serialize as a `VT_DATE` when sending to the native host object, and have `VT_DATE` properties and return values create a javascript Date object. + /// `defaultSyncProxy` | When calling a method on a synchronous proxy, the result should also be a synchronous proxy. But in some cases, the sync/async context is lost (for example, when providing to native code a reference to a function, and then calling that function in native code). In these cases, the proxy will be asynchronous, unless this property is set. + /// `forceAsyncMethodMatches ` | This is an array of regular expressions. When calling a method on a synchronous proxy, the method call will be performed asynchronously if the method name matches a string or regular expression in this array. Setting this value to `Async` will make any method that ends with Async be an asynchronous method call. If an async method doesn't match here and isn't forced to be asynchronous, the method will be invoked synchronously, blocking execution of the calling JavaScript and then returning the resolution of the promise, rather than returning a promise. + /// `ignoreMemberNotFoundError` | By default, an exception is thrown when attempting to get the value of a proxy property that doesn't exist on the corresponding native class. Setting this property to `true` switches the behavior to match Chakra WinRT projection (and general JavaScript) behavior of returning `undefined` with no error. + /// + /// Host object proxies additionally have the following methods which run + /// locally. + /// + /// Method name | Details + /// ---|--- + ///`applyHostFunction`, `getHostProperty`, `setHostProperty` | Perform a method invocation, property get, or property set on the host object. Use the methods to explicitly force a method or property to run remotely if a conflicting local method or property exists. For instance, `proxy.toString()` runs the local `toString` method on the proxy object. But proxy.applyHostFunction('toString') runs `toString` on the host proxied object instead. + ///`getLocalProperty`, `setLocalProperty` | Perform property get, or property set locally. Use the methods to force getting or setting a property on the host object proxy rather than on the host object it represents. For instance, `proxy.unknownProperty` gets the property named `unknownProperty` from the host proxied object. But proxy.getLocalProperty('unknownProperty') gets the value of the property `unknownProperty` on the proxy object. + ///`sync` | Asynchronous host object proxies expose a sync method which returns a promise for a synchronous host object proxy for the same host object. For example, `chrome.webview.hostObjects.sample.methodCall()` returns an asynchronous host object proxy. Use the `sync` method to obtain a synchronous host object proxy instead: `const syncProxy = await chrome.webview.hostObjects.sample.methodCall().sync()`. + ///`async` | Synchronous host object proxies expose an async method which blocks and returns an asynchronous host object proxy for the same host object. For example, `chrome.webview.hostObjects.sync.sample.methodCall()` returns a synchronous host object proxy. Running the `async` method on this blocks and then returns an asynchronous host object proxy for the same host object: `const asyncProxy = chrome.webview.hostObjects.sync.sample.methodCall().async()`. + ///`then` | Asynchronous host object proxies have a `then` method. Allows proxies to be awaitable. `then` returns a promise that resolves with a representation of the host object. If the proxy represents a JavaScript literal, a copy of that is returned locally. If the proxy represents a function, a non-awaitable proxy is returned. If the proxy represents a JavaScript object with a mix of literal properties and function properties, the a copy of the object is returned with some properties as host object proxies. + /// + /// All other property and method invocations (other than the above Remote + /// object proxy methods, `forceLocalProperties` list, and properties on + /// Function and Object prototypes) are run remotely. Asynchronous host + /// object proxies return a promise representing asynchronous completion of + /// remotely invoking the method, or getting the property. The promise + /// resolves after the remote operations complete and the promises resolve to + /// the resulting value of the operation. Synchronous host object proxies + /// work similarly, but block running JavaScript and wait for the remote + /// operation to complete. + /// + /// Setting a property on an asynchronous host object proxy works slightly + /// differently. The set returns immediately and the return value is the + /// value that is set. This is a requirement of the JavaScript Proxy object. + /// If you need to asynchronously wait for the property set to complete, use + /// the `setHostProperty` method which returns a promise as described above. + /// Synchronous object property set property synchronously blocks until the + /// property is set. + /// + /// For example, suppose you have a COM object with the following interface. + /// + /// \snippet HostObjectSample.idl AddHostObjectInterface + /// + /// Add an instance of this interface into your JavaScript with + /// `AddHostObjectToScript`. In this case, name it `sample`. + /// + /// \snippet ScenarioAddHostObject.cpp AddHostObjectToScript + /// + /// In the HTML document, use the COM object using + /// `chrome.webview.hostObjects.sample`. + /// + /// \snippet assets\ScenarioAddHostObject.html HostObjectUsage + /// + /// Exposing host objects to script has security risk. For more information + /// about best practices, navigate to + /// [Best practices for developing secure WebView2 applications](/microsoft-edge/webview2/concepts/security). + HRESULT AddHostObjectToScript([in] LPCWSTR name, [in] VARIANT* object); + + /// Remove the host object specified by the name so that it is no longer + /// accessible from JavaScript code in the WebView. While new access + /// attempts are denied, if the object is already obtained by JavaScript code + /// in the WebView, the JavaScript code continues to have access to that + /// object. Run this method for a name that is already removed or never + /// added fails. + HRESULT RemoveHostObjectFromScript([in] LPCWSTR name); + + /// Opens the DevTools window for the current document in the WebView. Does + /// nothing if run when the DevTools window is already open. + HRESULT OpenDevToolsWindow(); + + /// Add an event handler for the `ContainsFullScreenElementChanged` event. + /// `ContainsFullScreenElementChanged` triggers when the + /// `ContainsFullScreenElement` property changes. An HTML element inside the + /// WebView may enter fullscreen to the size of the WebView or leave + /// fullscreen. This event is useful when, for example, a video element + /// requests to go fullscreen. The listener of + /// `ContainsFullScreenElementChanged` may resize the WebView in response. + /// + /// \snippet AppWindow.cpp ContainsFullScreenElementChanged + HRESULT add_ContainsFullScreenElementChanged( + [in] ICoreWebView2ContainsFullScreenElementChangedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with + /// `add_ContainsFullScreenElementChanged`. + HRESULT remove_ContainsFullScreenElementChanged( + [in] EventRegistrationToken token); + + /// Indicates if the WebView contains a fullscreen HTML element. + [propget] HRESULT ContainsFullScreenElement( + [out, retval] BOOL* containsFullScreenElement); + + /// Add an event handler for the `WebResourceRequested` event. + /// `WebResourceRequested` runs when the WebView is performing a URL request + /// to a matching URL and resource context filter that was added with + /// `AddWebResourceRequestedFilter`. At least one filter must be added for + /// the event to run. + /// + /// The web resource requested may be blocked until the event handler returns + /// if a deferral is not taken on the event args. If a deferral is taken, + /// then the web resource requested is blocked until the deferral is + /// completed. + /// + /// If this event is subscribed in the add_NewWindowRequested handler it should be called + /// after the new window is set. For more details see `ICoreWebView2NewWindowRequestedEventArgs::put_NewWindow`. + /// + /// Currently this only supports file, http, and https URI schemes. + /// + /// \snippet SettingsComponent.cpp WebResourceRequested0 + /// \snippet SettingsComponent.cpp WebResourceRequested1 + HRESULT add_WebResourceRequested( + [in] ICoreWebView2WebResourceRequestedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with `add_WebResourceRequested`. + HRESULT remove_WebResourceRequested( + [in] EventRegistrationToken token); + + /// Adds a URI and resource context filter for the `WebResourceRequested` + /// event. A web resource request with a resource context that matches this + /// filter's resource context and a URI that matches this filter's URI + /// wildcard string will be raised via the `WebResourceRequested` event. + /// + /// The `uri` parameter value is a wildcard string matched against the URI + /// of the web resource request. This is a glob style + /// wildcard string in which a `*` matches zero or more characters and a `?` + /// matches exactly one character. + /// These wildcard characters can be escaped using a backslash just before + /// the wildcard character in order to represent the literal `*` or `?`. + /// + /// The matching occurs over the URI as a whole string and not limiting + /// wildcard matches to particular parts of the URI. + /// The wildcard filter is compared to the URI after the URI has been + /// normalized, any URI fragment has been removed, and non-ASCII hostnames + /// have been converted to punycode. + /// + /// Specifying a `nullptr` for the uri is equivalent to an empty string which + /// matches no URIs. + /// + /// For more information about resource context filters, navigate to + /// [COREWEBVIEW2_WEB_RESOURCE_CONTEXT](/microsoft-edge/webview2/reference/win32/icorewebview2#corewebview2_web_resource_context). + /// + /// | URI Filter String | Request URI | Match | Notes | + /// | ---- | ---- | ---- | ---- | + /// | `*` | `https://contoso.com/a/b/c` | Yes | A single * will match all URIs | + /// | `*://contoso.com/*` | `https://contoso.com/a/b/c` | Yes | Matches everything in contoso.com across all schemes | + /// | `*://contoso.com/*` | `https://example.com/?https://contoso.com/` | Yes | But also matches a URI with just the same text anywhere in the URI | + /// | `example` | `https://contoso.com/example` | No | The filter does not perform partial matches | + /// | `*example` | `https://contoso.com/example` | Yes | The filter matches across URI parts | + /// | `*example` | `https://contoso.com/path/?example` | Yes | The filter matches across URI parts | + /// | `*example` | `https://contoso.com/path/?query#example` | No | The filter is matched against the URI with no fragment | + /// | `*example` | `https://example` | No | The URI is normalized before filter matching so the actual URI used for comparison is `https://example/` | + /// | `*example/` | `https://example` | Yes | Just like above, but this time the filter ends with a / just like the normalized URI | + /// | `https://xn--qei.example/` | `https://❤.example/` | Yes | Non-ASCII hostnames are normalized to punycode before wildcard comparison | + /// | `https://❤.example/` | `https://xn--qei.example/` | No | Non-ASCII hostnames are normalized to punycode before wildcard comparison | + HRESULT AddWebResourceRequestedFilter( + [in] LPCWSTR const uri, + [in] COREWEBVIEW2_WEB_RESOURCE_CONTEXT const resourceContext); + + /// Removes a matching WebResource filter that was previously added for the + /// `WebResourceRequested` event. If the same filter was added multiple + /// times, then it must be removed as many times as it was added for the + /// removal to be effective. Returns `E_INVALIDARG` for a filter that was + /// never added. + HRESULT RemoveWebResourceRequestedFilter( + [in] LPCWSTR const uri, + [in] COREWEBVIEW2_WEB_RESOURCE_CONTEXT const resourceContext); + + /// Add an event handler for the `WindowCloseRequested` event. + /// `WindowCloseRequested` triggers when content inside the WebView + /// requested to close the window, such as after `window.close` is run. The + /// app should close the WebView and related app window if that makes sense + /// to the app. + /// + /// \snippet AppWindow.cpp WindowCloseRequested + HRESULT add_WindowCloseRequested( + [in] ICoreWebView2WindowCloseRequestedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with `add_WindowCloseRequested`. + HRESULT remove_WindowCloseRequested( + [in] EventRegistrationToken token); +} + +/// A continuation of the ICoreWebView2 interface. +[uuid(9E8F0CF8-E670-4B5E-B2BC-73E061E3184C), object, pointer_default(unique)] +interface ICoreWebView2_2 : ICoreWebView2 { + /// Add an event handler for the WebResourceResponseReceived event. + /// WebResourceResponseReceived is raised when the WebView receives the + /// response for a request for a web resource (any URI resolution performed by + /// the WebView; such as HTTP/HTTPS, file and data requests from redirects, + /// navigations, declarations in HTML, implicit favicon lookups, and fetch API + /// usage in the document). The host app can use this event to view the actual + /// request and response for a web resource. There is no guarantee about the + /// order in which the WebView processes the response and the host app's + /// handler runs. The app's handler will not block the WebView from processing + /// the response. + /// \snippet ScenarioAuthentication.cpp WebResourceResponseReceived + HRESULT add_WebResourceResponseReceived( + [in] ICoreWebView2WebResourceResponseReceivedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + /// Remove an event handler previously added with + /// add_WebResourceResponseReceived. + HRESULT remove_WebResourceResponseReceived( + [in] EventRegistrationToken token); + + /// Navigates using a constructed WebResourceRequest object. This lets you + /// provide post data or additional request headers during navigation. + /// The headers in the WebResourceRequest override headers + /// added by WebView2 runtime except for Cookie headers. + /// Method can only be either "GET" or "POST". Provided post data will only + /// be sent only if the method is "POST" and the uri scheme is HTTP(S). + /// \snippet ScenarioNavigateWithWebResourceRequest.cpp NavigateWithWebResourceRequest + HRESULT NavigateWithWebResourceRequest([in] ICoreWebView2WebResourceRequest* request); + + /// Add an event handler for the DOMContentLoaded event. + /// DOMContentLoaded is raised when the initial html document has been parsed. + /// This aligns with the document's DOMContentLoaded event in html. + /// + /// \snippet ScenarioDOMContentLoaded.cpp DOMContentLoaded + HRESULT add_DOMContentLoaded( + [in] ICoreWebView2DOMContentLoadedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with add_DOMContentLoaded. + HRESULT remove_DOMContentLoaded( + [in] EventRegistrationToken token); + + /// Gets the cookie manager object associated with this ICoreWebView2. + /// See ICoreWebView2CookieManager. + /// + /// \snippet ScenarioCookieManagement.cpp CookieManager + [propget] HRESULT CookieManager([out, retval] ICoreWebView2CookieManager** cookieManager); + + /// Exposes the CoreWebView2Environment used to create this CoreWebView2. + [propget] HRESULT Environment([out, retval] ICoreWebView2Environment** environment); +} + +/// A continuation of the ICoreWebView2_2 interface. +[uuid(A0D6DF20-3B92-416D-AA0C-437A9C727857), object, pointer_default(unique)] +interface ICoreWebView2_3 : ICoreWebView2_2 { + /// An app may call the `TrySuspend` API to have the WebView2 consume less memory. + /// This is useful when a Win32 app becomes invisible, or when a Universal Windows + /// Platform app is being suspended, during the suspended event handler before completing + /// the suspended event. + /// The CoreWebView2Controller's IsVisible property must be false when the API is called. + /// Otherwise, the API fails with `HRESULT_FROM_WIN32(ERROR_INVALID_STATE)`. + /// Suspending is similar to putting a tab to sleep in the Edge browser. Suspending pauses + /// WebView script timers and animations, minimizes CPU usage for the associated + /// browser renderer process and allows the operating system to reuse the memory that was + /// used by the renderer process for other processes. + /// Note that Suspend is best effort and considered completed successfully once the request + /// is sent to browser renderer process. If there is a running script, the script will continue + /// to run and the renderer process will be suspended after that script is done. + /// See [Sleeping Tabs FAQ](https://techcommunity.microsoft.com/t5/articles/sleeping-tabs-faq/m-p/1705434) + /// for conditions that might prevent WebView from being suspended. In those situations, + /// the completed handler will be invoked with isSuccessful as false and errorCode as S_OK. + /// The WebView will be automatically resumed when it becomes visible. Therefore, the + /// app normally does not have to call `Resume` explicitly. + /// The app can call `Resume` and then `TrySuspend` periodically for an invisible WebView so that + /// the invisible WebView can sync up with latest data and the page ready to show fresh content + /// when it becomes visible. + /// All WebView APIs can still be accessed when a WebView is suspended. Some APIs like Navigate + /// will auto resume the WebView. To avoid unexpected auto resume, check `IsSuspended` property + /// before calling APIs that might change WebView state. + /// + /// \snippet ViewComponent.cpp ToggleIsVisibleOnMinimize + /// + /// \snippet ViewComponent.cpp Suspend + /// + HRESULT TrySuspend([in] ICoreWebView2TrySuspendCompletedHandler* handler); + + /// Resumes the WebView so that it resumes activities on the web page. + /// This API can be called while the WebView2 controller is invisible. + /// The app can interact with the WebView immediately after `Resume`. + /// WebView will be automatically resumed when it becomes visible. + /// + /// \snippet ViewComponent.cpp ToggleIsVisibleOnMinimize + /// + /// \snippet ViewComponent.cpp Resume + /// + HRESULT Resume(); + + /// Whether WebView is suspended. + /// `TRUE` when WebView is suspended, from the time when TrySuspend has completed + /// successfully until WebView is resumed. + [propget] HRESULT IsSuspended([out, retval] BOOL* isSuspended); + + /// Sets a mapping between a virtual host name and a folder path to make available to web sites + /// via that host name. + /// + /// After setting the mapping, documents loaded in the WebView can use HTTP or HTTPS URLs at + /// the specified host name specified by hostName to access files in the local folder specified + /// by folderPath. + /// + /// This mapping applies to both top-level document and iframe navigations as well as subresource + /// references from a document. This also applies to web workers including dedicated/shared worker + /// and service worker, for loading either worker scripts or subresources + /// (importScripts(), fetch(), XHR, etc.) issued from within a worker. + /// For virtual host mapping to work with service worker, please keep the virtual host name + /// mappings consistent among all WebViews sharing the same browser instance. As service worker + /// works independently of WebViews, we merge mappings from all WebViews when resolving virtual + /// host name, inconsistent mappings between WebViews would lead unexpected behavior. + /// + /// Due to a current implementation limitation, media files accessed using virtual host name can be + /// very slow to load. + /// As the resource loaders for the current page might have already been created and running, + /// changes to the mapping might not be applied to the current page and a reload of the page is + /// needed to apply the new mapping. + /// + /// Both absolute and relative paths are supported for folderPath. Relative paths are interpreted + /// as relative to the folder where the exe of the app is in. + /// + /// Note that the folderPath length must not exceed the Windows MAX_PATH limit. + /// + /// accessKind specifies the level of access to resources under the virtual host from other sites. + /// + /// For example, after calling + /// ```cpp + /// SetVirtualHostNameToFolderMapping( + /// L"appassets.example", L"assets", + /// COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND_DENY); + /// ``` + /// navigating to `https://appassets.example/my-local-file.html` will + /// show the content from my-local-file.html in the assets subfolder located on disk under + /// the same path as the app's executable file. + /// + /// DOM elements that want to reference local files will have their host reference virtual host in the source. + /// If there are multiple folders being used, define one unique virtual host per folder. + /// For example, you can embed a local image like this + /// ```cpp + /// WCHAR c_navString[] = L""; + /// m_webView->NavigateToString(c_navString); + /// ``` + /// The example above shows the image wv2.png by resolving the folder mapping above. + /// + /// You should typically choose virtual host names that are never used by real sites. + /// If you own a domain such as example.com, another option is to use a subdomain reserved for + /// the app (like my-app.example.com). + /// + /// [RFC 6761](https://tools.ietf.org/html/rfc6761) has reserved several special-use domain + /// names that are guaranteed to not be used by real sites (for example, .example, .test, and + /// .invalid.) + /// + /// Note that using `.local` as the top-level domain name will work but can cause a delay + /// during navigations. You should avoid using `.local` if you can. + /// + /// Apps should use distinct domain names when mapping folder from different sources that + /// should be isolated from each other. For instance, the app might use app-file.example for + /// files that ship as part of the app, and book1.example might be used for files containing + /// books from a less trusted source that were previously downloaded and saved to the disk by + /// the app. + /// + /// The host name used in the APIs is canonicalized using Chromium's host name parsing logic + /// before being used internally. For more information see [HTML5 2.6 URLs](https://dev.w3.org/html5/spec-LC/urls.html). + /// + /// All host names that are canonicalized to the same string are considered identical. + /// For example, `EXAMPLE.COM` and `example.com` are treated as the same host name. + /// An international host name and its Punycode-encoded host name are considered the same host + /// name. There is no DNS resolution for host name and the trailing '.' is not normalized as + /// part of canonicalization. + /// + /// Therefore `example.com` and `example.com.` are treated as different host names. Similarly, + /// `virtual-host-name` and `virtual-host-name.example.com` are treated as different host names + /// even if the machine has a DNS suffix of `example.com`. + /// + /// Specify the minimal cross-origin access necessary to run the app. If there is not a need to + /// access local resources from other origins, use COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND_DENY. + /// + /// \snippet AppWindow.cpp AddVirtualHostNameToFolderMapping + /// + /// \snippet AppWindow.cpp LocalUrlUsage + HRESULT SetVirtualHostNameToFolderMapping( + [in] LPCWSTR hostName, + [in] LPCWSTR folderPath, + [in] COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND accessKind); + + /// Clears a host name mapping for local folder that was added by `SetVirtualHostNameToFolderMapping`. + HRESULT ClearVirtualHostNameToFolderMapping( + [in] LPCWSTR hostName); +} + +/// A continuation of the ICoreWebView2_3 interface to support FrameCreated and +/// DownloadStarting events. +[uuid(20d02d59-6df2-42dc-bd06-f98a694b1302), object, pointer_default(unique)] +interface ICoreWebView2_4 : ICoreWebView2_3 { + /// Raised when a new iframe is created. + /// Handle this event to get access to ICoreWebView2Frame objects. + /// Use ICoreWebView2Frame.add_Destroyed to listen for when this iframe goes + /// away. + HRESULT add_FrameCreated( + [in] ICoreWebView2FrameCreatedEventHandler * eventHandler, + [out] EventRegistrationToken * token); + + /// Remove an event handler previously added with add_FrameCreated. + HRESULT remove_FrameCreated([in] EventRegistrationToken token); + + /// Add an event handler for the `DownloadStarting` event. This event is + /// raised when a download has begun, blocking the default download dialog, + /// but not blocking the progress of the download. + /// + /// The host can choose to cancel a download, change the result file path, + /// and hide the default download dialog. + /// If the host chooses to cancel the download, the download is not saved, no + /// dialog is shown, and the state is changed to + /// COREWEBVIEW2_DOWNLOAD_STATE_INTERRUPTED with interrupt reason + /// COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_USER_CANCELED. Otherwise, the + /// download is saved to the default path after the event completes, + /// and default download dialog is shown if the host did not choose to hide it. + /// The host can change the visibility of the download dialog using the + /// `Handled` property. If the event is not handled, downloads complete + /// normally with the default dialog shown. + /// + /// \snippet ScenarioCustomDownloadExperience.cpp DownloadStarting + HRESULT add_DownloadStarting( + [in] ICoreWebView2DownloadStartingEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with `add_DownloadStarting`. + HRESULT remove_DownloadStarting( + [in] EventRegistrationToken token); +} + +/// A continuation of the ICoreWebView2_4 interface to support ClientCertificateRequested +/// event. +[uuid(bedb11b8-d63c-11eb-b8bc-0242ac130003), object, pointer_default(unique)] +interface ICoreWebView2_5 : ICoreWebView2_4 { + /// Add an event handler for the ClientCertificateRequested event. + /// The ClientCertificateRequested event is raised when the WebView2 + /// is making a request to an HTTP server that needs a client certificate + /// for HTTP authentication. + /// Read more about HTTP client certificates at + /// [RFC 8446 The Transport Layer Security (TLS) Protocol Version 1.3](https://tools.ietf.org/html/rfc8446). + /// + /// With this event you have several options for responding to client certificate requests: + /// + /// Scenario | Handled | Cancel | SelectedCertificate + /// ---------------------------------------------------------- | ------- | ------ | ------------------- + /// Respond to server with a certificate | True | False | MutuallyTrustedCertificate value + /// Respond to server without certificate | True | False | null + /// Display default client certificate selection dialog prompt | False | False | n/a + /// Cancel the request | n/a | True | n/a + /// + /// If you don't handle the event, WebView2 will + /// show the default client certificate selection dialog prompt to user. + /// + /// \snippet SettingsComponent.cpp ClientCertificateRequested1 + /// \snippet ScenarioClientCertificateRequested.cpp ClientCertificateRequested2 + HRESULT add_ClientCertificateRequested( + [in] ICoreWebView2ClientCertificateRequestedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with add_ClientCertificateRequested. + HRESULT remove_ClientCertificateRequested([in] EventRegistrationToken token); +} + +/// This interface is an extension of `ICoreWebView2_5` that manages opening +/// the browser task manager window. +[uuid(499aadac-d92c-4589-8a75-111bfc167795), object, pointer_default(unique)] +interface ICoreWebView2_6 : ICoreWebView2_5 { + /// Opens the Browser Task Manager view as a new window in the foreground. + /// If the Browser Task Manager is already open, this will bring it into + /// the foreground. WebView2 currently blocks the Shift+Esc shortcut for + /// opening the task manager. An end user can open the browser task manager + /// manually via the `Browser task manager` entry of the DevTools window's + /// title bar's context menu. + HRESULT OpenTaskManagerWindow(); +} + +/// This interface is an extension of `ICoreWebView2_6` that supports printing +/// to PDF. +[uuid(79c24d83-09a3-45ae-9418-487f32a58740), object, pointer_default(unique)] +interface ICoreWebView2_7 : ICoreWebView2_6 { + /// Print the current page to PDF asynchronously with the provided settings. + /// See `ICoreWebView2PrintSettings` for description of settings. Passing + /// nullptr for `printSettings` results in default print settings used. + /// + /// Use `resultFilePath` to specify the path to the PDF file. The host should + /// provide an absolute path, including file name. If the path + /// points to an existing file, the file will be overwritten. If the path is + /// not valid, the method fails with `E_INVALIDARG`. + /// + /// The async `PrintToPdf` operation completes when the data has been written + /// to the PDF file. At this time the + /// `ICoreWebView2PrintToPdfCompletedHandler` is invoked. If the + /// application exits before printing is complete, the file is not saved. + /// Only one `PrintToPdf` operation can be in progress at a time. If + /// `PrintToPdf` is called while a print to PDF job is in progress, the + /// completed handler is immediately invoked with `isSuccessful` set to FALSE. + /// + /// \snippet FileComponent.cpp PrintToPdf + HRESULT PrintToPdf( + [in] LPCWSTR resultFilePath, + [in] ICoreWebView2PrintSettings* printSettings, + [in] ICoreWebView2PrintToPdfCompletedHandler* handler); +} + +/// This interface is an extension of `ICoreWebView2_7` that supports media features. +[uuid(E9632730-6E1E-43AB-B7B8-7B2C9E62E094), object, pointer_default(unique)] +interface ICoreWebView2_8 : ICoreWebView2_7 { + /// Adds an event handler for the `IsMutedChanged` event. + /// `IsMutedChanged` is raised when the IsMuted property changes value. + /// + /// \snippet AudioComponent.cpp IsMutedChanged + HRESULT add_IsMutedChanged( + [in] ICoreWebView2IsMutedChangedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with `add_IsMutedChanged`. + HRESULT remove_IsMutedChanged( + [in] EventRegistrationToken token); + + /// Indicates whether all audio output from this CoreWebView2 is muted or not. + /// + /// \snippet AudioComponent.cpp ToggleIsMuted + [propget] HRESULT IsMuted([out, retval] BOOL* value); + + /// Sets the `IsMuted` property. + /// + /// \snippet AudioComponent.cpp ToggleIsMuted + [propput] HRESULT IsMuted([in] BOOL value); + + /// Adds an event handler for the `IsDocumentPlayingAudioChanged` event. + /// `IsDocumentPlayingAudioChanged` is raised when the IsDocumentPlayingAudio property changes value. + /// + /// \snippet AudioComponent.cpp IsDocumentPlayingAudioChanged + HRESULT add_IsDocumentPlayingAudioChanged( + [in] ICoreWebView2IsDocumentPlayingAudioChangedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with `add_IsDocumentPlayingAudioChanged`. + HRESULT remove_IsDocumentPlayingAudioChanged( + [in] EventRegistrationToken token); + + /// Indicates whether any audio output from this CoreWebView2 is playing. + /// This property will be true if audio is playing even if IsMuted is true. + /// + /// \snippet AudioComponent.cpp IsDocumentPlayingAudio + [propget] HRESULT IsDocumentPlayingAudio([out, retval] BOOL* value); +} + +/// This interface is an extension of `ICoreWebView2_8` that default download +/// dialog positioning and anchoring. +[uuid(4d7b2eab-9fdc-468d-b998-a9260b5ed651), object, pointer_default(unique)] +interface ICoreWebView2_9 : ICoreWebView2_8 { + /// Raised when the `IsDefaultDownloadDialogOpen` property changes. This event + /// comes after the `DownloadStarting` event. Setting the `Handled` property + /// on the `DownloadStartingEventArgs` disables the default download dialog + /// and ensures that this event is never raised. + HRESULT add_IsDefaultDownloadDialogOpenChanged( + [in] ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler* handler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with + /// `add_IsDefaultDownloadDialogOpenChanged`. + HRESULT remove_IsDefaultDownloadDialogOpenChanged( + [in] EventRegistrationToken token); + + /// `TRUE` if the default download dialog is currently open. The value of this + /// property changes only when the default download dialog is explicitly + /// opened or closed. Hiding the WebView implicitly hides the dialog, but does + /// not change the value of this property. + [propget] HRESULT IsDefaultDownloadDialogOpen([out, retval] BOOL* value); + + /// Open the default download dialog. If the dialog is opened before there + /// are recent downloads, the dialog shows all past downloads for the + /// current profile. Otherwise, the dialog shows only the recent downloads + /// with a "See more" button for past downloads. Calling this method raises + /// the `IsDefaultDownloadDialogOpenChanged` event if the dialog was closed. + /// No effect if the dialog is already open. + /// + /// \snippet ViewComponent.cpp ToggleDefaultDownloadDialog + HRESULT OpenDefaultDownloadDialog(); + + /// Close the default download dialog. Calling this method raises the + /// `IsDefaultDownloadDialogOpenChanged` event if the dialog was open. No + /// effect if the dialog is already closed. + HRESULT CloseDefaultDownloadDialog(); + + /// Get the default download dialog corner alignment. + [propget] HRESULT DefaultDownloadDialogCornerAlignment( + [out, retval] COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT* value); + + /// Set the default download dialog corner alignment. The dialog can be + /// aligned to any of the WebView corners (see + /// COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT). When the WebView + /// or dialog changes size, the dialog keeps its position relative to the + /// corner. The dialog may become partially or completely outside of the + /// WebView bounds if the WebView is small enough. Set the margin relative to + /// the corner with the `DefaultDownloadDialogMargin` property. + /// + /// \snippet ViewComponent.cpp SetDefaultDownloadDialogPosition + [propput] HRESULT DefaultDownloadDialogCornerAlignment( + [in] COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT value); + + /// Get the default download dialog margin. + [propget] HRESULT DefaultDownloadDialogMargin([out, retval] POINT* value); + + /// Set the default download dialog margin relative to the WebView corner + /// specified by `DefaultDownloadDialogCornerAlignment`. The margin is a + /// point that describes the vertical and horizontal distances between the + /// chosen WebView corner and the default download dialog corner nearest to + /// it. Positive values move the dialog towards the center of the WebView from + /// the chosen WebView corner, and negative values move the dialog away from + /// it. Use (0, 0) to align the dialog to the WebView corner with no margin. + [propput] HRESULT DefaultDownloadDialogMargin([in] POINT value); +} + +/// This interface is an extension of `ICoreWebView2_9` that supports +/// BasicAuthenticationRequested event. +[uuid(b1690564-6f5a-4983-8e48-31d1143fecdb), object, pointer_default(unique)] +interface ICoreWebView2_10 : ICoreWebView2_9 { + /// Add an event handler for the BasicAuthenticationRequested event. + /// BasicAuthenticationRequested event is raised when WebView encounters a + /// Basic HTTP Authentication request as described in + /// https://developer.mozilla.org/docs/Web/HTTP/Authentication, an NTLM + /// authentication or a Proxy Authentication request. + /// + /// The host can provide a response with credentials for the authentication or + /// cancel the request. If the host doesn't set the Cancel property to true or + /// set either UserName or Password properties on the Response property, then + /// WebView2 will show the default authentication challenge dialog prompt to + /// the user. + /// + /// \snippet ScenarioAuthentication.cpp BasicAuthenticationRequested + HRESULT add_BasicAuthenticationRequested( + [in] ICoreWebView2BasicAuthenticationRequestedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with add_BasicAuthenticationRequested. + HRESULT remove_BasicAuthenticationRequested( + [in] EventRegistrationToken token); +} + +/// This interface is an extension of `ICoreWebView2_10` that supports sessionId +/// for CDP method calls and ContextMenuRequested event. +[uuid(0be78e56-c193-4051-b943-23b460c08bdb), object, pointer_default(unique)] +interface ICoreWebView2_11 : ICoreWebView2_10 { + /// Runs an asynchronous `DevToolsProtocol` method for a specific session of + /// an attached target. + /// There could be multiple `DevToolsProtocol` targets in a WebView. + /// Besides the top level page, iframes from different origin and web workers + /// are also separate targets. Attaching to these targets allows interaction with them. + /// When the DevToolsProtocol is attached to a target, the connection is identified + /// by a sessionId. + /// To use this API, you must set the `flatten` parameter to true when calling + /// `Target.attachToTarget` or `Target.setAutoAttach` `DevToolsProtocol` method. + /// Using `Target.setAutoAttach` is recommended as that would allow you to attach + /// to dedicated worker targets, which are not discoverable via other APIs like + /// `Target.getTargets`. + /// For more information about targets and sessions, navigate to + /// [DevTools Protocol Viewer](https://chromedevtools.github.io/devtools-protocol/tot/Target). + /// For more information about available methods, navigate to + /// [DevTools Protocol Viewer](https://chromedevtools.github.io/devtools-protocol/tot) + /// The `sessionId` parameter is the sessionId for an attached target. + /// nullptr or empty string is treated as the session for the default target for the top page. + /// The `methodName` parameter is the full name of the method in the + /// `{domain}.{method}` format. The `parametersAsJson` parameter is a JSON + /// formatted string containing the parameters for the corresponding method. + /// The `Invoke` method of the `handler` is run when the method + /// asynchronously completes. `Invoke` is run with the return object of the + /// method as a JSON string. This function returns E_INVALIDARG if the `methodName` is + /// unknown or the `parametersAsJson` has an error. In the case of such an error, the + /// `returnObjectAsJson` parameter of the handler will include information + /// about the error. + /// + /// \snippet ScriptComponent.cpp DevToolsProtocolMethodMultiSession + /// + /// \snippet ScriptComponent.cpp CallDevToolsProtocolMethodForSession + HRESULT CallDevToolsProtocolMethodForSession( + [in] LPCWSTR sessionId, + [in] LPCWSTR methodName, + [in] LPCWSTR parametersAsJson, + [in] ICoreWebView2CallDevToolsProtocolMethodCompletedHandler* handler); + + /// Add an event handler for the `ContextMenuRequested` event. + /// `ContextMenuRequested` event is raised when a context menu is requested by the user + /// and the content inside WebView hasn't disabled context menus. + /// The host has the option to create their own context menu with the information provided in + /// the event or can add items to or remove items from WebView context menu. + /// If the host doesn't handle the event, WebView will display the default context menu. + /// + /// \snippet SettingsComponent.cpp EnableCustomMenu + HRESULT add_ContextMenuRequested( + [in] ICoreWebView2ContextMenuRequestedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with `add_ContextMenuRequested`. + HRESULT remove_ContextMenuRequested( + [in] EventRegistrationToken token); +} + +/// This interface is an extension of `ICoreWebView2_11` that supports +/// StatusBarTextChanged event. +[uuid(35D69927-BCFA-4566-9349-6B3E0D154CAC), object, pointer_default(unique)] +interface ICoreWebView2_12 : ICoreWebView2_11 { + /// Add an event handler for the `StatusBarTextChanged` event. + /// `StatusBarTextChanged` fires when the WebView is showing a status message, + /// a URL, or an empty string (an indication to hide the status bar). + /// \snippet SettingsComponent.cpp StatusBarTextChanged + HRESULT add_StatusBarTextChanged( + [in] ICoreWebView2StatusBarTextChangedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with `add_StatusBarTextChanged`. + HRESULT remove_StatusBarTextChanged([in] EventRegistrationToken token); + + /// The status message text. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + [propget] HRESULT StatusBarText([out, retval] LPWSTR* value); +} + +/// This interface is an extension of `ICoreWebView2_12` that supports Profile +/// API. +[uuid(F75F09A8-667E-4983-88D6-C8773F315E84), object, pointer_default(unique)] +interface ICoreWebView2_13 : ICoreWebView2_12 { + /// The associated `ICoreWebView2Profile` object. If this CoreWebView2 was created with a + /// CoreWebView2ControllerOptions, the CoreWebView2Profile will match those specified options. + /// Otherwise if this CoreWebView2 was created without a CoreWebView2ControllerOptions, then + /// this will be the default CoreWebView2Profile for the corresponding CoreWebView2Environment. + /// + /// \snippet AppWindow.cpp CoreWebView2Profile + [propget] HRESULT Profile([out, retval] ICoreWebView2Profile** value); +} + +/// This interface is an extension of `ICoreWebView2_13` that adds +/// ServerCertificate support. +[uuid(6DAA4F10-4A90-4753-8898-77C5DF534165), object, pointer_default(unique)] +interface ICoreWebView2_14 : ICoreWebView2_13 { + /// Add an event handler for the ServerCertificateErrorDetected event. + /// The ServerCertificateErrorDetected event is raised when the WebView2 + /// cannot verify server's digital certificate while loading a web page. + /// + /// This event will raise for all web resources and follows the `WebResourceRequested` event. + /// + /// If you don't handle the event, WebView2 will show the default TLS interstitial error page to the user + /// for navigations, and for non-navigations the web request is cancelled. + /// + /// WebView2 caches the response when action is `COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION_ALWAYS_ALLOW` + /// for the RequestUri's host and the server certificate in the session and the `ServerCertificateErrorDetected` + /// event won't be raised again. + /// + /// To raise the event again you must clear the cache using `ClearServerCertificateErrorActions`. + /// + /// \snippet SettingsComponent.cpp ServerCertificateErrorDetected1 + HRESULT add_ServerCertificateErrorDetected( + [in] ICoreWebView2ServerCertificateErrorDetectedEventHandler* + eventHandler, + [out] EventRegistrationToken* token); + /// Remove an event handler previously added with add_ServerCertificateErrorDetected. + HRESULT remove_ServerCertificateErrorDetected([in] EventRegistrationToken token); + + /// Clears all cached decisions to proceed with TLS certificate errors from the + /// ServerCertificateErrorDetected event for all WebView2's sharing the same session. + HRESULT ClearServerCertificateErrorActions( + [in] ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler* + handler); +} + +/// Receives `StatusBarTextChanged` events. +[uuid(A5E3B0D0-10DF-4156-BFAD-3B43867ACAC6), object, pointer_default(unique)] +interface ICoreWebView2StatusBarTextChangedEventHandler : IUnknown { + /// Called to provide the implementer with the event args for the + /// corresponding event. No event args exist and the `args` + /// parameter is set to `null`. + HRESULT Invoke( + [in] ICoreWebView2* sender, + [in] IUnknown* args); +} + +/// This interface is an extension of `ICoreWebView2_14` that supports status Favicons. +[uuid(517B2D1D-7DAE-4A66-A4F4-10352FFB9518), object, pointer_default(unique)] +interface ICoreWebView2_15 : ICoreWebView2_14 { + /// Add an event handler for the `FaviconChanged` event. + /// The `FaviconChanged` event is raised when the + /// [favicon](https://developer.mozilla.org/docs/Glossary/Favicon) + /// had a different URL then the previous URL. + /// The FaviconChanged event will be raised for first navigating to a new + /// document, whether or not a document declares a Favicon in HTML if the + /// favicon is different from the previous fav icon. The event will + /// be raised again if a favicon is declared in its HTML or has script + /// to set its favicon. The favicon information can then be retrieved with + /// `GetFavicon` and `FaviconUri`. + HRESULT add_FaviconChanged( + [in] ICoreWebView2FaviconChangedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove the event handler for `FaviconChanged` event. + HRESULT remove_FaviconChanged( + [in] EventRegistrationToken token); + + /// Get the current Uri of the favicon as a string. + /// If the value is null, then the return value is `E_POINTER`, otherwise it is `S_OK`. + /// If a page has no favicon then the value is an empty string. + [propget] HRESULT FaviconUri([out, retval] LPWSTR* value); + + /// Async function for getting the actual image data of the favicon. + /// The image is copied to the `imageStream` object in `ICoreWebView2GetFaviconCompletedHandler`. + /// If there is no image then no data would be copied into the imageStream. + /// The `format` is the file format to return the image stream. + /// `completedHandler` is executed at the end of the operation. + /// + /// \snippet SettingsComponent.cpp FaviconChanged + HRESULT GetFavicon( + [in] COREWEBVIEW2_FAVICON_IMAGE_FORMAT format, + [in] ICoreWebView2GetFaviconCompletedHandler* completedHandler); +} + +/// The caller implements this interface to handle the BasicAuthenticationRequested event. +[uuid(58b4d6c2-18d4-497e-b39b-9a96533fa278), object, pointer_default(unique)] +interface ICoreWebView2BasicAuthenticationRequestedEventHandler : IUnknown { + /// Called to provide the implementer with the event args for the + /// corresponding event. + HRESULT Invoke( + [in] ICoreWebView2* sender, + [in] ICoreWebView2BasicAuthenticationRequestedEventArgs* args); +} + +/// Implements the interface to receive `IsDefaultDownloadDialogOpenChanged` +/// events. +[uuid(3117da26-ae13-438d-bd46-edbeb2c4ce81), object, pointer_default(unique)] +interface ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler : IUnknown { + /// Provides the event args for the corresponding event. No event args exist + /// and the `args` parameter is set to `null`. + HRESULT Invoke([in] ICoreWebView2* sender, + [in] IUnknown* args); +} + +/// Receives the result of the `PrintToPdf` method. If the print to PDF +/// operation succeeds, `isSuccessful` is true. Otherwise, if the operation +/// failed, `isSuccessful` is set to false. An invalid path returns +/// `E_INVALIDARG`. +[uuid(ccf1ef04-fd8e-4d5f-b2de-0983e41b8c36), object, pointer_default(unique)] +interface ICoreWebView2PrintToPdfCompletedHandler : IUnknown { + + /// Provides the result of the corresponding asynchronous method. + HRESULT Invoke([in] HRESULT errorCode, BOOL isSuccessful); +} + +/// Settings used by the `PrintToPdf` method. Other programmatic printing is not +/// currently supported. +[uuid(377f3721-c74e-48ca-8db1-df68e51d60e2), object, pointer_default(unique)] +interface ICoreWebView2PrintSettings : IUnknown { + + /// The orientation can be portrait or landscape. The default orientation is + /// portrait. See `COREWEBVIEW2_PRINT_ORIENTATION`. + [propget] HRESULT Orientation( + [out, retval] COREWEBVIEW2_PRINT_ORIENTATION* orientation); + + /// Sets the `Orientation` property. + [propput] HRESULT Orientation( + [in] COREWEBVIEW2_PRINT_ORIENTATION orientation); + + /// The scale factor is a value between 0.1 and 2.0. The default is 1.0. + [propget] HRESULT ScaleFactor([out, retval] double* scaleFactor); + + /// Sets the `ScaleFactor` property. Returns `E_INVALIDARG` if an invalid + /// value is provided, and the current value is not changed. + [propput] HRESULT ScaleFactor([in] double scaleFactor); + + /// The page width in inches. The default width is 8.5 inches. + [propget] HRESULT PageWidth([out, retval] double* pageWidth); + + /// Sets the `PageWidth` property. Returns `E_INVALIDARG` if the page width is + /// less than or equal to zero, and the current value is not changed. + [propput] HRESULT PageWidth([in] double pageWidth); + + /// The page height in inches. The default height is 11 inches. + [propget] HRESULT PageHeight([out, retval] double* pageHeight); + + /// Sets the `PageHeight` property. Returns `E_INVALIDARG` if the page height + /// is less than or equal to zero, and the current value is not changed. + [propput] HRESULT PageHeight([in] double pageHeight); + + /// The top margin in inches. The default is 1 cm, or ~0.4 inches. + [propget] HRESULT MarginTop([out, retval] double* marginTop); + + /// Sets the `MarginTop` property. A margin cannot be less than zero. + /// Returns `E_INVALIDARG` if an invalid value is provided, and the current + /// value is not changed. + [propput] HRESULT MarginTop([in] double marginTop); + + /// The bottom margin in inches. The default is 1 cm, or ~0.4 inches. + [propget] HRESULT MarginBottom([out, retval] double* marginBottom); + + /// Sets the `MarginBottom` property. A margin cannot be less than zero. + /// Returns `E_INVALIDARG` if an invalid value is provided, and the current + /// value is not changed. + [propput] HRESULT MarginBottom([in] double marginBottom); + + /// The left margin in inches. The default is 1 cm, or ~0.4 inches. + [propget] HRESULT MarginLeft([out, retval] double* marginLeft); + + /// Sets the `MarginLeft` property. A margin cannot be less than zero. + /// Returns `E_INVALIDARG` if an invalid value is provided, and the current + /// value is not changed. + [propput] HRESULT MarginLeft([in] double marginLeft); + + /// The right margin in inches. The default is 1 cm, or ~0.4 inches. + [propget] HRESULT MarginRight([out, retval] double* marginRight); + + /// Set the `MarginRight` property.A margin cannot be less than zero. + /// Returns `E_INVALIDARG` if an invalid value is provided, and the current + /// value is not changed. + [propput] HRESULT MarginRight([in] double marginRight); + + /// `TRUE` if background colors and images should be printed. The default value + /// is `FALSE`. + [propget] HRESULT ShouldPrintBackgrounds( + [out, retval] BOOL* shouldPrintBackgrounds); + + /// Set the `ShouldPrintBackgrounds` property. + [propput] HRESULT ShouldPrintBackgrounds([in] BOOL shouldPrintBackgrounds); + + /// `TRUE` if only the current end user's selection of HTML in the document + /// should be printed. The default value is `FALSE`. + [propget] HRESULT ShouldPrintSelectionOnly( + [out, retval] BOOL* shouldPrintSelectionOnly); + + /// Set the `ShouldPrintSelectionOnly` property. + [propput] HRESULT ShouldPrintSelectionOnly( + [in] BOOL shouldPrintSelectionOnly); + + /// `TRUE` if header and footer should be printed. The default value is `FALSE`. + /// The header consists of the date and time of printing, and the title of the + /// page. The footer consists of the URI and page number. The height of the + /// header and footer is 0.5 cm, or ~0.2 inches. + [propget] HRESULT ShouldPrintHeaderAndFooter( + [out, retval] BOOL* shouldPrintHeaderAndFooter); + + /// Set the `ShouldPrintHeaderAndFooter` property. + [propput] HRESULT ShouldPrintHeaderAndFooter( + [in] BOOL shouldPrintHeaderAndFooter); + + /// The title in the header if `ShouldPrintHeaderAndFooter` is `TRUE`. The + /// default value is the title of the current document. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + [propget] HRESULT HeaderTitle([out, retval] LPWSTR* headerTitle); + + /// Set the `HeaderTitle` property. If an empty string or null value is + /// provided, no title is shown in the header. + [propput] HRESULT HeaderTitle([in] LPCWSTR headerTitle); + + /// The URI in the footer if `ShouldPrintHeaderAndFooter` is `TRUE`. The + /// default value is the current URI. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + [propget] HRESULT FooterUri([out, retval] LPWSTR* footerUri); + + /// Set the `FooterUri` property. If an empty string or null value is + /// provided, no URI is shown in the footer. + [propput] HRESULT FooterUri([in] LPCWSTR footerUri); +} + +/// The caller implements this interface to receive the TrySuspend result. +[uuid(00F206A7-9D17-4605-91F6-4E8E4DE192E3), object, pointer_default(unique)] +interface ICoreWebView2TrySuspendCompletedHandler : IUnknown { + + /// Provides the result of the TrySuspend operation. + /// See [Sleeping Tabs FAQ](https://techcommunity.microsoft.com/t5/articles/sleeping-tabs-faq/m-p/1705434) + /// for conditions that might prevent WebView from being suspended. In those situations, + /// isSuccessful will be false and errorCode is S_OK. + HRESULT Invoke([in] HRESULT errorCode, [in] BOOL isSuccessful); + +} + +/// The owner of the `CoreWebView2` object that provides support for resizing, +/// showing and hiding, focusing, and other functionality related to +/// windowing and composition. The `CoreWebView2Controller` owns the +/// `CoreWebView2`, and if all references to the `CoreWebView2Controller` go +/// away, the WebView is closed. +[uuid(4d00c0d1-9434-4eb6-8078-8697a560334f), object, pointer_default(unique)] +interface ICoreWebView2Controller : IUnknown { + + /// The `IsVisible` property determines whether to show or hide the WebView2. + /// If `IsVisible` is set to `FALSE`, the WebView2 is transparent and is + /// not rendered. However, this does not affect the window containing the + /// WebView2 (the `HWND` parameter that was passed to + /// `CreateCoreWebView2Controller`). If you want that window to disappear + /// too, run `ShowWindow` on it directly in addition to modifying the + /// `IsVisible` property. WebView2 as a child window does not get window + /// messages when the top window is minimized or restored. For performance + /// reasons, developers should set the `IsVisible` property of the WebView to + /// `FALSE` when the app window is minimized and back to `TRUE` when the app + /// window is restored. The app window does this by handling + /// `SIZE_MINIMIZED and SIZE_RESTORED` command upon receiving `WM_SIZE` + /// message. + /// + /// There are CPU and memory benefits when the page is hidden. For instance, + /// Chromium has code that throttles activities on the page like animations + /// and some tasks are run less frequently. Similarly, WebView2 will + /// purge some caches to reduce memory usage. + /// + /// \snippet ViewComponent.cpp ToggleIsVisible + [propget] HRESULT IsVisible([out, retval] BOOL* isVisible); + + /// Sets the `IsVisible` property. + /// + /// \snippet ViewComponent.cpp ToggleIsVisibleOnMinimize + [propput] HRESULT IsVisible([in] BOOL isVisible); + + /// The WebView bounds. Bounds are relative to the parent `HWND`. The app + /// has two ways to position a WebView. + /// + /// * Create a child `HWND` that is the WebView parent `HWND`. Position + /// the window where the WebView should be. Use `(0, 0)` for the + /// top-left corner (the offset) of the `Bounds` of the WebView. + /// * Use the top-most window of the app as the WebView parent HWND. For + /// example, to position WebView correctly in the app, set the top-left + /// corner of the Bound of the WebView. + /// + /// The values of `Bounds` are limited by the coordinate space of the host. + + [propget] HRESULT Bounds([out, retval] RECT* bounds); + + /// Sets the `Bounds` property. + /// + /// \snippet ViewComponent.cpp ResizeWebView + + [propput] HRESULT Bounds([in] RECT bounds); + + /// The zoom factor for the WebView. + /// + /// \> [!NOTE]\n\> Changing zoom factor may cause `window.innerWidth`, + /// `window.innerHeight`, both, and page layout to change. A zoom factor + /// that is applied by the host by running `ZoomFactor` becomes the new + /// default zoom for the WebView. The zoom factor applies across navigations + /// and is the zoom factor WebView is returned to when the user chooses + /// Ctrl+0. When the zoom factor is changed by the user (resulting in + /// the app receiving `ZoomFactorChanged`), that zoom applies only for the + /// current page. Any user applied zoom is only for the current page and is + /// reset on a navigation. Specifying a `zoomFactor` less than or equal to + /// `0` is not allowed. WebView also has an internal supported zoom factor + /// range. When a specified zoom factor is out of that range, it is + /// normalized to be within the range, and a `ZoomFactorChanged` event is + /// triggered for the real applied zoom factor. When the range normalization + /// happens, the `ZoomFactor` property reports the zoom factor specified + /// during the previous modification of the `ZoomFactor` property until the + /// `ZoomFactorChanged` event is received after WebView applies the + /// normalized zoom factor. + + [propget] HRESULT ZoomFactor([out, retval] double* zoomFactor); + + /// Sets the `ZoomFactor` property. + + [propput] HRESULT ZoomFactor([in] double zoomFactor); + + /// Adds an event handler for the `ZoomFactorChanged` event. + /// `ZoomFactorChanged` runs when the `ZoomFactor` property of the WebView + /// changes. The event may run because the `ZoomFactor` property was + /// modified, or due to the user manually modifying the zoom. When it is + /// modified using the `ZoomFactor` property, the internal zoom factor is + /// updated immediately and no `ZoomFactorChanged` event is triggered. + /// WebView associates the last used zoom factor for each site. It is + /// possible for the zoom factor to change when navigating to a different + /// page. When the zoom factor changes due to a navigation change, the + /// `ZoomFactorChanged` event runs right after the `ContentLoading` event. + /// + /// \snippet ViewComponent.cpp ZoomFactorChanged + + HRESULT add_ZoomFactorChanged( + [in] ICoreWebView2ZoomFactorChangedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with `add_ZoomFactorChanged`. + + HRESULT remove_ZoomFactorChanged( + [in] EventRegistrationToken token); + + /// Updates `Bounds` and `ZoomFactor` properties at the same time. This + /// operation is atomic from the perspective of the host. After returning + /// from this function, the `Bounds` and `ZoomFactor` properties are both + /// updated if the function is successful, or neither is updated if the + /// function fails. If `Bounds` and `ZoomFactor` are both updated by the + /// same scale (for example, `Bounds` and `ZoomFactor` are both doubled), + /// then the page does not display a change in `window.innerWidth` or + /// `window.innerHeight` and the WebView renders the content at the new size + /// and zoom without intermediate renderings. This function also updates + /// just one of `ZoomFactor` or `Bounds` by passing in the new value for one + /// and the current value for the other. + /// + /// \snippet ViewComponent.cpp SetBoundsAndZoomFactor + + HRESULT SetBoundsAndZoomFactor([in] RECT bounds, [in] double zoomFactor); + + /// Moves focus into WebView. WebView gets focus and focus is set to + /// correspondent element in the page hosted in the WebView. For + /// Programmatic reason, focus is set to previously focused element or the + /// default element if no previously focused element exists. For `Next` + /// reason, focus is set to the first element. For `Previous` reason, focus + /// is set to the last element. WebView changes focus through user + /// interaction including selecting into a WebView or Tab into it. For + /// tabbing, the app runs MoveFocus with Next or Previous to align with Tab + /// and Shift+Tab respectively when it decides the WebView is the next + /// element that may exist in a tab. Or, the app runs `IsDialogMessage` + /// as part of the associated message loop to allow the platform to auto + /// handle tabbing. The platform rotates through all windows with + /// `WS_TABSTOP`. When the WebView gets focus from `IsDialogMessage`, it is + /// internally put the focus on the first or last element for tab and + /// Shift+Tab respectively. + /// + /// \snippet App.cpp MoveFocus0 + /// + /// \snippet ControlComponent.cpp MoveFocus1 + /// + /// \snippet ControlComponent.cpp MoveFocus2 + + HRESULT MoveFocus([in] COREWEBVIEW2_MOVE_FOCUS_REASON reason); + + /// Adds an event handler for the `MoveFocusRequested` event. + /// `MoveFocusRequested` runs when user tries to tab out of the WebView. The + /// focus of the WebView has not changed when this event is run. + /// + /// \snippet ControlComponent.cpp MoveFocusRequested + + HRESULT add_MoveFocusRequested( + [in] ICoreWebView2MoveFocusRequestedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Removes an event handler previously added with `add_MoveFocusRequested`. + + HRESULT remove_MoveFocusRequested( + [in] EventRegistrationToken token); + + /// Adds an event handler for the `GotFocus` event. `GotFocus` runs when + /// WebView has focus. + + HRESULT add_GotFocus( + [in] ICoreWebView2FocusChangedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Removes an event handler previously added with `add_GotFocus`. + + HRESULT remove_GotFocus( + [in] EventRegistrationToken token); + + /// Adds an event handler for the `LostFocus` event. `LostFocus` runs when + /// WebView loses focus. In the case where `MoveFocusRequested` event is + /// run, the focus is still on WebView when `MoveFocusRequested` event runs. + /// `LostFocus` only runs afterwards when code of the app or default action + /// of `MoveFocusRequested` event set focus away from WebView. + + HRESULT add_LostFocus( + [in] ICoreWebView2FocusChangedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Removes an event handler previously added with `add_LostFocus`. + + HRESULT remove_LostFocus( + [in] EventRegistrationToken token); + + /// Adds an event handler for the `AcceleratorKeyPressed` event. + /// `AcceleratorKeyPressed` runs when an accelerator key or key combo is + /// pressed or released while the WebView is focused. A key is considered an + /// accelerator if either of the following conditions are true. + /// + /// * Ctrl or Alt is currently being held. + /// * The pressed key does not map to a character. + /// + /// A few specific keys are never considered accelerators, such as Shift. + /// The `Escape` key is always considered an accelerator. + /// + /// Auto-repeated key events caused by holding the key down also triggers + /// this event. Filter out the auto-repeated key events by verifying the + /// `KeyEventLParam` or `PhysicalKeyStatus` event args. + /// + /// In windowed mode, the event handler is run synchronously. Until you + /// run `Handled()` on the event args or the event handler returns, the + /// browser process is blocked and outgoing cross-process COM requests fail + /// with `RPC_E_CANTCALLOUT_ININPUTSYNCCALL`. All `CoreWebView2` API methods + /// work, however. + /// + /// In windowless mode, the event handler is run asynchronously. Further + /// input do not reach the browser until the event handler returns or + /// `Handled()` is run, but the browser process is not blocked, and outgoing + /// COM requests work normally. + /// + /// It is recommended to run `Handled(TRUE)` as early as are able to know + /// that you want to handle the accelerator key. + /// + /// \snippet ControlComponent.cpp AcceleratorKeyPressed + + HRESULT add_AcceleratorKeyPressed( + [in] ICoreWebView2AcceleratorKeyPressedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Removes an event handler previously added with + /// `add_AcceleratorKeyPressed`. + + HRESULT remove_AcceleratorKeyPressed( + [in] EventRegistrationToken token); + + /// The parent window provided by the app that this WebView is using to + /// render content. This API initially returns the window passed into + /// `CreateCoreWebView2Controller`. + + [propget] HRESULT ParentWindow([out, retval] HWND* parentWindow); + + /// Sets the parent window for the WebView. This causes the WebView to + /// re-parent the main WebView window to the newly provided window. + + [propput] HRESULT ParentWindow([in] HWND parentWindow); + + /// This is a notification separate from `Bounds` that tells WebView that the + /// main WebView parent (or any ancestor) `HWND` moved. This is needed + /// for accessibility and certain dialogs in WebView to work correctly. + /// + /// \snippet ViewComponent.cpp NotifyParentWindowPositionChanged + + HRESULT NotifyParentWindowPositionChanged(); + + /// Closes the WebView and cleans up the underlying browser instance. + /// Cleaning up the browser instance releases the resources powering the + /// WebView. The browser instance is shut down if no other WebViews are + /// using it. + /// + /// After running `Close`, most methods will fail and event handlers stop + /// running. Specifically, the WebView releases the associated references to + /// any associated event handlers when `Close` is run. + /// + /// `Close` is implicitly run when the `CoreWebView2Controller` loses the + /// final reference and is destructed. But it is best practice to + /// explicitly run `Close` to avoid any accidental cycle of references + /// between the WebView and the app code. Specifically, if you capture a + /// reference to the WebView in an event handler you create a reference cycle + /// between the WebView and the event handler. Run `Close` to break the + /// cycle by releasing all event handlers. But to avoid the situation, it is + /// best to both explicitly run `Close` on the WebView and to not capture a + /// reference to the WebView to ensure the WebView is cleaned up correctly. + /// `Close` is synchronous and won't trigger the `beforeunload` event. + /// + /// \snippet AppWindow.cpp Close + HRESULT Close(); + + /// Gets the `CoreWebView2` associated with this `CoreWebView2Controller`. + + [propget] HRESULT CoreWebView2([out, retval] ICoreWebView2** coreWebView2); +} + +/// A continuation of the ICoreWebView2Controller interface. +[uuid(c979903e-d4ca-4228-92eb-47ee3fa96eab), object, pointer_default(unique)] +interface ICoreWebView2Controller2 : ICoreWebView2Controller { + /// The `DefaultBackgroundColor` property is the color WebView renders + /// underneath all web content. This means WebView renders this color when + /// there is no web content loaded such as before the initial navigation or + /// between navigations. This also means web pages with undefined css + /// background properties or background properties containing transparent + /// pixels will render their contents over this color. Web pages with defined + /// and opaque background properties that span the page will obscure the + /// `DefaultBackgroundColor` and display normally. The default value for this + /// property is white to resemble the native browser experience. + /// + /// The Color is specified by the COREWEBVIEW2_COLOR that represents an RGBA + /// value. The `A` represents an Alpha value, meaning + /// `DefaultBackgroundColor` can be transparent. In the case of a transparent + /// `DefaultBackgroundColor` WebView will render hosting app content as the + /// background. This Alpha value is not supported on Windows 7. Any `A` value + /// other than 255 will result in E_INVALIDARG on Windows 7. + /// It is supported on all other WebView compatible platforms. + /// + /// Semi-transparent colors are not currently supported by this API and + /// setting `DefaultBackgroundColor` to a semi-transparent color will fail + /// with E_INVALIDARG. The only supported alpha values are 0 and 255, all + /// other values will result in E_INVALIDARG. + /// `DefaultBackgroundColor` can only be an opaque color or transparent. + /// + /// \snippet ViewComponent.cpp DefaultBackgroundColor + [propget] HRESULT DefaultBackgroundColor( + [out, retval] COREWEBVIEW2_COLOR* backgroundColor); + + /// Sets the `DefaultBackgroundColor` property. + [propput] HRESULT DefaultBackgroundColor( + [in] COREWEBVIEW2_COLOR backgroundColor); +} + +/// A continuation of the ICoreWebView2Controller2 interface. +[uuid(f9614724-5d2b-41dc-aef7-73d62b51543b), object, pointer_default(unique)] +interface ICoreWebView2Controller3 : ICoreWebView2Controller2 { + /// The rasterization scale for the WebView. The rasterization scale is the + /// combination of the monitor DPI scale and text scaling set by the user. + /// This value should be updated when the DPI scale of the app's top level + /// window changes (i.e. monitor DPI scale changes or window changes monitor) + /// or when the text scale factor of the system changes. + /// + /// \snippet AppWindow.cpp DPIChanged + /// + /// \snippet AppWindow.cpp TextScaleChanged1 + /// + /// \snippet AppWindow.cpp TextScaleChanged2 + /// + /// Rasterization scale applies to the WebView content, as well as + /// popups, context menus, scroll bars, and so on. Normal app scaling + /// scenarios should use the ZoomFactor property or SetBoundsAndZoomFactor + /// API which only scale the rendered HTML content and not popups, context + /// menus, scroll bars, and so on. + /// + /// \snippet ViewComponent.cpp RasterizationScale + [propget] HRESULT RasterizationScale([out, retval] double* scale); + /// Set the rasterization scale property. + [propput] HRESULT RasterizationScale([in] double scale); + + /// ShouldDetectMonitorScaleChanges property determines whether the WebView + /// attempts to track monitor DPI scale changes. When true, the WebView will + /// track monitor DPI scale changes, update the RasterizationScale property, + /// and raises RasterizationScaleChanged event. When false, the WebView will + /// not track monitor DPI scale changes, and the app must update the + /// RasterizationScale property itself. RasterizationScaleChanged event will + /// never raise when ShouldDetectMonitorScaleChanges is false. Apps that want + /// to set their own rasterization scale should set this property to false to + /// avoid the WebView2 updating the RasterizationScale property to match the + /// monitor DPI scale. + [propget] HRESULT ShouldDetectMonitorScaleChanges([out, retval] BOOL* value); + /// Set the ShouldDetectMonitorScaleChanges property. + [propput] HRESULT ShouldDetectMonitorScaleChanges([in] BOOL value); + + /// Add an event handler for the RasterizationScaleChanged event. + /// The event is raised when the WebView detects that the monitor DPI scale + /// has changed, ShouldDetectMonitorScaleChanges is true, and the WebView has + /// changed the RasterizationScale property. + /// + /// \snippet ViewComponent.cpp RasterizationScaleChanged + HRESULT add_RasterizationScaleChanged( + [in] ICoreWebView2RasterizationScaleChangedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + /// Remove an event handler previously added with + /// add_RasterizationScaleChanged. + HRESULT remove_RasterizationScaleChanged( + [in] EventRegistrationToken token); + + /// BoundsMode affects how setting the Bounds and RasterizationScale + /// properties work. Bounds mode can either be in COREWEBVIEW2_BOUNDS_MODE_USE_RAW_PIXELS + /// mode or COREWEBVIEW2_BOUNDS_MODE_USE_RASTERIZATION_SCALE mode. + /// + /// When the mode is in COREWEBVIEW2_BOUNDS_MODE_USE_RAW_PIXELS, setting the bounds + /// property will set the size of the WebView in raw screen pixels. Changing + /// the rasterization scale in this mode won't change the raw pixel size of + /// the WebView and will only change the rasterization scale. + /// + /// When the mode is in COREWEBVIEW2_BOUNDS_MODE_USE_RASTERIZATION_SCALE, setting the + /// bounds property will change the logical size of the WebView which can be + /// described by the following equation: + /// ```text + /// Logical size * rasterization scale = Raw Pixel size + /// ``` + /// In this case, changing the rasterization scale will keep the logical size + /// the same and change the raw pixel size. + /// + /// \snippet ViewComponent.cpp BoundsMode + [propget] HRESULT BoundsMode( + [out, retval] COREWEBVIEW2_BOUNDS_MODE* boundsMode); + /// Set the BoundsMode property. + [propput] HRESULT BoundsMode([in] COREWEBVIEW2_BOUNDS_MODE boundsMode); +} + +/// This is the ICoreWebView2Controller4 interface. +/// The ICoreWebView2Controller4 provides interface to enable/disable external drop. +[uuid(97d418d5-a426-4e49-a151-e1a10f327d9e), object, pointer_default(unique)] +interface ICoreWebView2Controller4 : ICoreWebView2Controller3 { + /// Gets the `AllowExternalDrop` property which is used to configure the + /// capability that dragging objects from outside the bounds of webview2 and + /// dropping into webview2 is allowed or disallowed. The default value is + /// TRUE. + /// + /// \snippet SettingsComponent.cpp ToggleAllowExternalDrop + [propget] HRESULT AllowExternalDrop([ out, retval ] BOOL * value); + /// Sets the `AllowExternalDrop` property which is used to configure the + /// capability that dragging objects from outside the bounds of webview2 and + /// dropping into webview2 is allowed or disallowed. + /// + /// \snippet SettingsComponent.cpp ToggleAllowExternalDrop + [propput] HRESULT AllowExternalDrop([in] BOOL value); +} + +/// This interface is an extension of the ICoreWebView2Controller interface to +/// support visual hosting. An object implementing the +/// ICoreWebView2CompositionController interface will also implement +/// ICoreWebView2Controller. Callers are expected to use +/// ICoreWebView2Controller for resizing, visibility, focus, and so on, and +/// then use ICoreWebView2CompositionController to connect to a composition +/// tree and provide input meant for the WebView. +[uuid(3df9b733-b9ae-4a15-86b4-eb9ee9826469), object, pointer_default(unique)] +interface ICoreWebView2CompositionController : IUnknown { + /// The RootVisualTarget is a visual in the hosting app's visual tree. This + /// visual is where the WebView will connect its visual tree. The app uses + /// this visual to position the WebView within the app. The app still needs + /// to use the Bounds property to size the WebView. The RootVisualTarget + /// property can be an IDCompositionVisual or a + /// Windows::UI::Composition::ContainerVisual. WebView will connect its visual + /// tree to the provided visual before returning from the property setter. The + /// app needs to commit on its device setting the RootVisualTarget property. + /// The RootVisualTarget property supports being set to nullptr to disconnect + /// the WebView from the app's visual tree. + /// \snippet ViewComponent.cpp SetRootVisualTarget + /// \snippet ViewComponent.cpp BuildDCompTree + [propget] HRESULT RootVisualTarget([out, retval] IUnknown** target); + /// Set the RootVisualTarget property. + [propput] HRESULT RootVisualTarget([in] IUnknown* target); + + /// If eventKind is COREWEBVIEW2_MOUSE_EVENT_KIND_HORIZONTAL_WHEEL or + /// COREWEBVIEW2_MOUSE_EVENT_KIND_WHEEL, then mouseData specifies the amount of + /// wheel movement. A positive value indicates that the wheel was rotated + /// forward, away from the user; a negative value indicates that the wheel was + /// rotated backward, toward the user. One wheel click is defined as + /// WHEEL_DELTA, which is 120. + /// If eventKind is COREWEBVIEW2_MOUSE_EVENT_KIND_X_BUTTON_DOUBLE_CLICK + /// COREWEBVIEW2_MOUSE_EVENT_KIND_X_BUTTON_DOWN, or + /// COREWEBVIEW2_MOUSE_EVENT_KIND_X_BUTTON_UP, then mouseData specifies which X + /// buttons were pressed or released. This value should be 1 if the first X + /// button is pressed/released and 2 if the second X button is + /// pressed/released. + /// If eventKind is COREWEBVIEW2_MOUSE_EVENT_KIND_LEAVE, then virtualKeys, + /// mouseData, and point should all be zero. + /// If eventKind is any other value, then mouseData should be zero. + /// Point is expected to be in the client coordinate space of the WebView. + /// To track mouse events that start in the WebView and can potentially move + /// outside of the WebView and host application, calling SetCapture and + /// ReleaseCapture is recommended. + /// To dismiss hover popups, it is also recommended to send + /// COREWEBVIEW2_MOUSE_EVENT_KIND_LEAVE messages. + /// \snippet ViewComponent.cpp SendMouseInput + HRESULT SendMouseInput( + [in] COREWEBVIEW2_MOUSE_EVENT_KIND eventKind, + [in] COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS virtualKeys, + [in] UINT32 mouseData, + [in] POINT point); + + /// SendPointerInput accepts touch or pen pointer input of types defined in + /// COREWEBVIEW2_POINTER_EVENT_KIND. Any pointer input from the system must be + /// converted into an ICoreWebView2PointerInfo first. + HRESULT SendPointerInput( + [in] COREWEBVIEW2_POINTER_EVENT_KIND eventKind, + [in] ICoreWebView2PointerInfo* pointerInfo); + + /// The current cursor that WebView thinks it should be. The cursor should be + /// set in WM_SETCURSOR through \::SetCursor or set on the corresponding + /// parent/ancestor HWND of the WebView through \::SetClassLongPtr. The HCURSOR + /// can be freed so CopyCursor/DestroyCursor is recommended to keep your own + /// copy if you are doing more than immediately setting the cursor. + [propget] HRESULT Cursor([out, retval] HCURSOR* cursor); + + /// The current system cursor ID reported by the underlying rendering engine + /// for WebView. For example, most of the time, when the cursor is over text, + /// this will return the int value for IDC_IBEAM. The systemCursorId is only + /// valid if the rendering engine reports a default Windows cursor resource + /// value. Navigate to + /// [LoadCursorW](/windows/win32/api/winuser/nf-winuser-loadcursorw) for more + /// details. Otherwise, if custom CSS cursors are being used, this will return + /// 0. To actually use systemCursorId in LoadCursor or LoadImage, + /// MAKEINTRESOURCE must be called on it first. + /// + /// \snippet ViewComponent.cpp SystemCursorId + [propget] HRESULT SystemCursorId([out, retval] UINT32* systemCursorId); + + /// Add an event handler for the CursorChanged event. + /// The event is raised when WebView thinks the cursor should be changed. For + /// example, when the mouse cursor is currently the default cursor but is then + /// moved over text, it may try to change to the IBeam cursor. + /// + /// It is expected for the developer to send + /// COREWEBVIEW2_MOUSE_EVENT_KIND_LEAVE messages (in addition to + /// COREWEBVIEW2_MOUSE_EVENT_KIND_MOVE messages) through the SendMouseInput + /// API. This is to ensure that the mouse is actually within the WebView that + /// sends out CursorChanged events. + /// + /// \snippet ViewComponent.cpp CursorChanged + HRESULT add_CursorChanged( + [in] ICoreWebView2CursorChangedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + /// Remove an event handler previously added with add_CursorChanged. + HRESULT remove_CursorChanged( + [in] EventRegistrationToken token); +} + +/// A continuation of the ICoreWebView2CompositionController interface. +[uuid(0b6a3d24-49cb-4806-ba20-b5e0734a7b26), object, pointer_default(unique)] +interface ICoreWebView2CompositionController2 : ICoreWebView2CompositionController { + /// Returns the Automation Provider for the WebView. This object implements + /// IRawElementProviderSimple. + [propget] HRESULT AutomationProvider([out, retval] IUnknown** provider); +} + + +/// This interface is the continuation of the +/// ICoreWebView2CompositionController2 interface to manage drag and drop. +[uuid(9570570e-4d76-4361-9ee1-f04d0dbdfb1e), object, pointer_default(unique)] +interface ICoreWebView2CompositionController3 : ICoreWebView2CompositionController2 { + /// This function corresponds to [IDropTarget::DragEnter](/windows/win32/api/oleidl/nf-oleidl-idroptarget-dragenter). + /// + /// This function has a dependency on AllowExternalDrop property of + /// CoreWebView2Controller and return E_FAIL to callers to indicate this + /// operation is not allowed if AllowExternalDrop property is set to false. + /// + /// The hosting application must register as an IDropTarget and implement + /// and forward DragEnter calls to this function. + /// + /// point parameter must be modified to include the WebView's offset and be in + /// the WebView's client coordinates (Similar to how SendMouseInput works). + /// + /// \snippet DropTarget.cpp DragEnter + HRESULT DragEnter( + [in] IDataObject* dataObject, + [in] DWORD keyState, + [in] POINT point, + [out, retval] DWORD* effect); + + /// This function corresponds to [IDropTarget::DragLeave](/windows/win32/api/oleidl/nf-oleidl-idroptarget-dragleave). + /// + /// This function has a dependency on AllowExternalDrop property of + /// CoreWebView2Controller and return E_FAIL to callers to indicate this + /// operation is not allowed if AllowExternalDrop property is set to false. + /// + /// The hosting application must register as an IDropTarget and implement + /// and forward DragLeave calls to this function. + /// + /// \snippet DropTarget.cpp DragLeave + HRESULT DragLeave(); + + /// This function corresponds to [IDropTarget::DragOver](/windows/win32/api/oleidl/nf-oleidl-idroptarget-dragover). + /// + /// This function has a dependency on AllowExternalDrop property of + /// CoreWebView2Controller and return E_FAIL to callers to indicate this + /// operation is not allowed if AllowExternalDrop property is set to false. + /// + /// The hosting application must register as an IDropTarget and implement + /// and forward DragOver calls to this function. + /// + /// point parameter must be modified to include the WebView's offset and be in + /// the WebView's client coordinates (Similar to how SendMouseInput works). + /// + /// \snippet DropTarget.cpp DragOver + HRESULT DragOver( + [in] DWORD keyState, + [in] POINT point, + [out, retval] DWORD* effect); + + /// This function corresponds to [IDropTarget::Drop](/windows/win32/api/oleidl/nf-oleidl-idroptarget-drop). + /// + /// This function has a dependency on AllowExternalDrop property of + /// CoreWebView2Controller and return E_FAIL to callers to indicate this + /// operation is not allowed if AllowExternalDrop property is set to false. + /// + /// The hosting application must register as an IDropTarget and implement + /// and forward Drop calls to this function. + /// + /// point parameter must be modified to include the WebView's offset and be in + /// the WebView's client coordinates (Similar to how SendMouseInput works). + /// + /// \snippet DropTarget.cpp Drop + HRESULT Drop( + [in] IDataObject* dataObject, + [in] DWORD keyState, + [in] POINT point, + [out, retval] DWORD* effect); +} + +/// This interface is used to complete deferrals on event args that support +/// getting deferrals using the `GetDeferral` method. + +[uuid(c10e7f7b-b585-46f0-a623-8befbf3e4ee0), object, pointer_default(unique)] +interface ICoreWebView2Deferral : IUnknown { + + /// Completes the associated deferred event. Complete should only be run + /// once for each deferral taken. + + HRESULT Complete(); +} + +/// Defines properties that enable, disable, or modify WebView features. +/// Changes to `IsGeneralAutofillEnabled` and `IsPasswordAutosaveEnabled` +/// apply immediately, while other setting changes made after `NavigationStarting` +/// event do not apply until the next top-level navigation. + +[uuid(e562e4f0-d7fa-43ac-8d71-c05150499f00), object, pointer_default(unique)] +interface ICoreWebView2Settings : IUnknown { + + /// Controls if running JavaScript is enabled in all future navigations in + /// the WebView. This only affects scripts in the document. Scripts + /// injected with `ExecuteScript` runs even if script is disabled. + /// The default value is `TRUE`. + /// + /// \snippet SettingsComponent.cpp IsScriptEnabled + [propget] HRESULT IsScriptEnabled( + [out, retval] BOOL* isScriptEnabled); + + /// Sets the `IsScriptEnabled` property. + [propput] HRESULT IsScriptEnabled([in] BOOL isScriptEnabled); + + /// The `IsWebMessageEnabled` property is used when loading a new HTML + /// document. If set to `TRUE`, communication from the host to the top-level + /// HTML document of the WebView is allowed using `PostWebMessageAsJson`, + /// `PostWebMessageAsString`, and message event of `window.chrome.webview`. + /// For more information, navigate to PostWebMessageAsJson. Communication + /// from the top-level HTML document of the WebView to the host is allowed + /// using the postMessage function of `window.chrome.webview` and + /// `add_WebMessageReceived` method. For more information, navigate to + /// [add_WebMessageReceived](/microsoft-edge/webview2/reference/win32/icorewebview2#add_webmessagereceived). + /// If set to false, then communication is disallowed. `PostWebMessageAsJson` + /// and `PostWebMessageAsString` fails with `E_ACCESSDENIED` and + /// `window.chrome.webview.postMessage` fails by throwing an instance of an + /// `Error` object. The default value is `TRUE`. + /// + /// \snippet ScenarioWebMessage.cpp IsWebMessageEnabled + [propget] HRESULT IsWebMessageEnabled( + [out, retval] BOOL* isWebMessageEnabled); + + /// Sets the `IsWebMessageEnabled` property. + [propput] HRESULT IsWebMessageEnabled([in] BOOL isWebMessageEnabled); + + /// `AreDefaultScriptDialogsEnabled` is used when loading a new HTML + /// document. If set to `FALSE`, WebView2 does not render the default JavaScript + /// dialog box (Specifically those displayed by the JavaScript alert, + /// confirm, prompt functions and `beforeunload` event). Instead, if an + /// event handler is set using `add_ScriptDialogOpening`, WebView sends an + /// event that contains all of the information for the dialog and allow the + /// host app to show a custom UI. + /// The default value is `TRUE`. + [propget] HRESULT AreDefaultScriptDialogsEnabled( + [out, retval] BOOL* areDefaultScriptDialogsEnabled); + + /// Sets the `AreDefaultScriptDialogsEnabled` property. + [propput] HRESULT AreDefaultScriptDialogsEnabled( + [in] BOOL areDefaultScriptDialogsEnabled); + + /// `IsStatusBarEnabled` controls whether the status bar is displayed. The + /// status bar is usually displayed in the lower left of the WebView and + /// shows things such as the URI of a link when the user hovers over it and + /// other information. + /// The default value is `TRUE`. + /// The status bar UI can be altered by web content and should not be considered secure. + [propget] HRESULT IsStatusBarEnabled([out, retval] BOOL* isStatusBarEnabled); + + /// Sets the `IsStatusBarEnabled` property. + [propput] HRESULT IsStatusBarEnabled([in] BOOL isStatusBarEnabled); + + /// `AreDevToolsEnabled` controls whether the user is able to use the context + /// menu or keyboard shortcuts to open the DevTools window. + /// The default value is `TRUE`. + [propget] HRESULT AreDevToolsEnabled([out, retval] BOOL* areDevToolsEnabled); + + /// Sets the `AreDevToolsEnabled` property. + [propput] HRESULT AreDevToolsEnabled([in] BOOL areDevToolsEnabled); + + /// The `AreDefaultContextMenusEnabled` property is used to prevent default + /// context menus from being shown to user in WebView. + /// The default value is `TRUE`. + /// + /// \snippet SettingsComponent.cpp DisableContextMenu + [propget] HRESULT AreDefaultContextMenusEnabled([out, retval] BOOL* enabled); + + /// Sets the `AreDefaultContextMenusEnabled` property. + [propput] HRESULT AreDefaultContextMenusEnabled([in] BOOL enabled); + + /// The `AreHostObjectsAllowed` property is used to control whether host + /// objects are accessible from the page in WebView. + /// The default value is `TRUE`. + /// + /// \snippet SettingsComponent.cpp HostObjectsAccess + [propget] HRESULT AreHostObjectsAllowed([out, retval] BOOL* allowed); + + /// Sets the `AreHostObjectsAllowed` property. + + [propput] HRESULT AreHostObjectsAllowed([in] BOOL allowed); + + /// The `IsZoomControlEnabled` property is used to prevent the user from + /// impacting the zoom of the WebView. When disabled, the user is not able + /// to zoom using Ctrl++, Ctrl+-, or Ctrl+mouse wheel, but the zoom + /// is set using `ZoomFactor` API. The default value is `TRUE`. + /// + /// \snippet SettingsComponent.cpp DisableZoomControl + + [propget] HRESULT IsZoomControlEnabled([out, retval] BOOL* enabled); + + /// Sets the `IsZoomControlEnabled` property. + + [propput] HRESULT IsZoomControlEnabled([in] BOOL enabled); + + /// The `IsBuiltInErrorPageEnabled` property is used to disable built in + /// error page for navigation failure and render process failure. When + /// disabled, a blank page is displayed when the related error happens. + /// The default value is `TRUE`. + /// + /// \snippet SettingsComponent.cpp BuiltInErrorPageEnabled + [propget] HRESULT IsBuiltInErrorPageEnabled([out, retval] BOOL* enabled); + + /// Sets the `IsBuiltInErrorPageEnabled` property. + [propput] HRESULT IsBuiltInErrorPageEnabled([in] BOOL enabled); +} + +/// A continuation of the ICoreWebView2Settings interface that manages the user agent. + +[uuid(ee9a0f68-f46c-4e32-ac23-ef8cac224d2a), object, pointer_default(unique)] +interface ICoreWebView2Settings2 : ICoreWebView2Settings { + /// Returns the User Agent. The default value is the default User Agent of the + /// Microsoft Edge browser. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + /// + /// \snippet SettingsComponent.cpp UserAgent + [propget] HRESULT UserAgent([out, retval] LPWSTR* userAgent); + /// Sets the `UserAgent` property. This property may be overridden if + /// the User-Agent header is set in a request. If the parameter is empty + /// the User Agent will not be updated and the current User Agent will remain. + /// Returns `HRESULT_FROM_WIN32(ERROR_INVALID_STATE)` if the owning WebView is + /// closed. + [propput] HRESULT UserAgent([in] LPCWSTR userAgent); +} + +/// A continuation of the ICoreWebView2Settings interface that manages whether +/// browser accelerator keys are enabled. +[uuid(fdb5ab74-af33-4854-84f0-0a631deb5eba), object, pointer_default(unique)] +interface ICoreWebView2Settings3 : ICoreWebView2Settings2 { + /// When this setting is set to FALSE, it disables all accelerator keys that + /// access features specific to a web browser, including but not limited to: + /// - Ctrl-F and F3 for Find on Page + /// - Ctrl-P for Print + /// - Ctrl-R and F5 for Reload + /// - Ctrl-Plus and Ctrl-Minus for zooming + /// - Ctrl-Shift-C and F12 for DevTools + /// - Special keys for browser functions, such as Back, Forward, and Search + /// + /// It does not disable accelerator keys related to movement and text editing, + /// such as: + /// - Home, End, Page Up, and Page Down + /// - Ctrl-X, Ctrl-C, Ctrl-V + /// - Ctrl-A for Select All + /// - Ctrl-Z for Undo + /// + /// Those accelerator keys will always be enabled unless they are handled in + /// the `AcceleratorKeyPressed` event. + /// + /// This setting has no effect on the `AcceleratorKeyPressed` event. The event + /// will be fired for all accelerator keys, whether they are enabled or not. + /// + /// The default value for `AreBrowserAcceleratorKeysEnabled` is TRUE. + /// + /// \snippet SettingsComponent.cpp AreBrowserAcceleratorKeysEnabled + [propget] HRESULT AreBrowserAcceleratorKeysEnabled( + [out, retval] BOOL* areBrowserAcceleratorKeysEnabled); + + /// Sets the `AreBrowserAcceleratorKeysEnabled` property. + [propput] HRESULT AreBrowserAcceleratorKeysEnabled( + [in] BOOL areBrowserAcceleratorKeysEnabled); +} + +/// A continuation of the ICoreWebView2Settings interface to manage autofill. +[uuid(cb56846c-4168-4d53-b04f-03b6d6796ff2), object, pointer_default(unique)] +interface ICoreWebView2Settings4 : ICoreWebView2Settings3 { + /// IsPasswordAutosaveEnabled controls whether autosave for password + /// information is enabled. The IsPasswordAutosaveEnabled property behaves + /// independently of the IsGeneralAutofillEnabled property. When IsPasswordAutosaveEnabled is + /// false, no new password data is saved and no Save/Update Password prompts are displayed. + /// However, if there was password data already saved before disabling this setting, + /// then that password information is auto-populated, suggestions are shown and clicking on + /// one will populate the fields. + /// When IsPasswordAutosaveEnabled is true, password information is auto-populated, + /// suggestions are shown and clicking on one will populate the fields, new data + /// is saved, and a Save/Update Password prompt is displayed. + /// It will apply immediately after setting. + /// The default value is `FALSE`. + /// This property is linked with `CoreWebView2Profile.IsPasswordAutosaveEnabled`, so + /// changing one will change the other. And all WebView2s that created with the same + /// `CoreWebView2Profile` will share this property, so for the WebView2s with the same + /// profile, their `CoreWebView2Settings.IsPasswordAutosaveEnabled` and + /// `CoreWebView2Profile.IsPasswordAutosaveEnabled` are always in sync. + /// + /// \snippet SettingsComponent.cpp PasswordAutosaveEnabled + [propget] HRESULT IsPasswordAutosaveEnabled([out, retval] BOOL* value); + + /// Set the IsPasswordAutosaveEnabled property. + [propput] HRESULT IsPasswordAutosaveEnabled([in] BOOL value); + + /// IsGeneralAutofillEnabled controls whether autofill for information + /// like names, street and email addresses, phone numbers, and arbitrary input + /// is enabled. This excludes password and credit card information. When + /// IsGeneralAutofillEnabled is false, no suggestions appear, and no new information + /// is saved. When IsGeneralAutofillEnabled is true, information is saved, suggestions + /// appear and clicking on one will populate the form fields. + /// It will apply immediately after setting. + /// The default value is `TRUE`. + /// This property is linked with `CoreWebView2Profile.IsGeneralAutofillEnabled`, so + /// changing one will change the other. And all WebView2s that created with the same + /// `CoreWebView2Profile` will share this property, so for the WebView2s with the same + /// profile, their `CoreWebView2Settings.IsGeneralAutofillEnabled` and + /// `CoreWebView2Profile.IsGeneralAutofillEnabled` are always in sync. + /// + /// \snippet SettingsComponent.cpp GeneralAutofillEnabled + [propget] HRESULT IsGeneralAutofillEnabled([out, retval] BOOL* value); + + /// Set the IsGeneralAutofillEnabled property. + [propput] HRESULT IsGeneralAutofillEnabled([in] BOOL value); +} + +/// A continuation of the ICoreWebView2Settings interface to manage pinch zoom. +[uuid(183e7052-1d03-43a0-ab99-98e043b66b39), object, pointer_default(unique)] +interface ICoreWebView2Settings5 : ICoreWebView2Settings4 { + /// Pinch-zoom, referred to as "Page Scale" zoom, is performed as a post-rendering step, + /// it changes the page scale factor property and scales the surface the web page is + /// rendered onto when user performs a pinch zooming action. It does not change the layout + /// but rather changes the viewport and clips the web content, the content outside of the + /// viewport isn't visible onscreen and users can't reach this content using mouse. + /// + /// The `IsPinchZoomEnabled` property enables or disables the ability of + /// the end user to use a pinching motion on touch input enabled devices + /// to scale the web content in the WebView2. It defaults to `TRUE`. + /// When set to `FALSE`, the end user cannot pinch zoom after the next navigation. + /// Disabling/Enabling `IsPinchZoomEnabled` only affects the end user's ability to use + /// pinch motions and does not change the page scale factor. + /// This API only affects the Page Scale zoom and has no effect on the + /// existing browser zoom properties (`IsZoomControlEnabled` and `ZoomFactor`) + /// or other end user mechanisms for zooming. + /// + /// \snippet SettingsComponent.cpp TogglePinchZoomEnabled + [propget] HRESULT IsPinchZoomEnabled([out, retval] BOOL* enabled); + /// Set the `IsPinchZoomEnabled` property + [propput] HRESULT IsPinchZoomEnabled([in] BOOL enabled); +} + +/// A continuation of the ICoreWebView2Settings interface to manage swipe navigation. +[uuid(11cb3acd-9bc8-43b8-83bf-f40753714f87), object, pointer_default(unique)] +interface ICoreWebView2Settings6 : ICoreWebView2Settings5 { + /// The `IsSwipeNavigationEnabled` property enables or disables the ability of the + /// end user to use swiping gesture on touch input enabled devices to + /// navigate in WebView2. It defaults to `TRUE`. + /// + /// When this property is `TRUE`, then all configured navigation gestures are enabled: + /// 1. Swiping left and right to navigate forward and backward is always configured. + /// 2. Swiping down to refresh is off by default and not exposed via our API currently, + /// it requires the "--pull-to-refresh" option to be included in the additional browser + /// arguments to be configured. (See put_AdditionalBrowserArguments.) + /// + /// When set to `FALSE`, the end user cannot swipe to navigate or pull to refresh. + /// This API only affects the overscrolling navigation functionality and has no + /// effect on the scrolling interaction used to explore the web content shown + /// in WebView2. + /// + /// Disabling/Enabling IsSwipeNavigationEnabled takes effect after the + /// next navigation. + /// + /// \snippet SettingsComponent.cpp ToggleSwipeNavigationEnabled + [propget] HRESULT IsSwipeNavigationEnabled([out, retval] BOOL* enabled); + /// Set the `IsSwipeNavigationEnabled` property + [propput] HRESULT IsSwipeNavigationEnabled([in] BOOL enabled); +} + +/// A continuation of the ICoreWebView2Settings interface to hide Pdf toolbar items. +[uuid(488dc902-35ef-42d2-bc7d-94b65c4bc49c), object, pointer_default(unique)] +interface ICoreWebView2Settings7 : ICoreWebView2Settings6 { + /// `HiddenPdfToolbarItems` is used to customize the PDF toolbar items. By default, it is COREWEBVIEW2_PDF_TOOLBAR_ITEMS_NONE and so it displays all of the items. + /// Changes to this property apply to all CoreWebView2s in the same environment and using the same profile. + /// Changes to this setting apply only after the next navigation. + /// \snippet SettingsComponent.cpp ToggleHidePdfToolbarItems + [propget] HRESULT HiddenPdfToolbarItems([out, retval] COREWEBVIEW2_PDF_TOOLBAR_ITEMS* hidden_pdf_toolbar_items); + + /// Set the `HiddenPdfToolbarItems` property. + [propput] HRESULT HiddenPdfToolbarItems([in] COREWEBVIEW2_PDF_TOOLBAR_ITEMS hidden_pdf_toolbar_items); +} + +/// Event args for the `ProcessFailed` event. + +[uuid(8155a9a4-1474-4a86-8cae-151b0fa6b8ca), object, pointer_default(unique)] +interface ICoreWebView2ProcessFailedEventArgs : IUnknown { + + /// The kind of process failure that has occurred. `processFailedKind` is + /// `COREWEBVIEW2_PROCESS_FAILED_KIND_RENDER_PROCESS_EXITED` if the + /// failed process is the main frame's renderer, even if there were subframes + /// rendered by such process; all frames are gone when this happens. + [propget] HRESULT ProcessFailedKind( + [out, retval] COREWEBVIEW2_PROCESS_FAILED_KIND* processFailedKind); +} + +/// Receives `ProcessFailed` events. +[uuid(79e0aea4-990b-42d9-aa1d-0fcc2e5bc7f1), object, pointer_default(unique)] +interface ICoreWebView2ProcessFailedEventHandler : IUnknown { + + /// Provides the event args for the corresponding event. + + HRESULT Invoke( + [in] ICoreWebView2* sender, + [in] ICoreWebView2ProcessFailedEventArgs* args); +} + +/// Implements the interface to receive `ZoomFactorChanged` events. Use the +/// `ICoreWebView2Controller.ZoomFactor` property to get the modified zoom +/// factor. + +[uuid(b52d71d6-c4df-4543-a90c-64a3e60f38cb), object, pointer_default(unique)] +interface ICoreWebView2ZoomFactorChangedEventHandler : IUnknown { + + /// Provides the event args for the corresponding event. No event args exist + /// and the `args` parameter is set to `null`. + + HRESULT Invoke([in] ICoreWebView2Controller* sender, [in] IUnknown* args); +} + +/// Iterator for a collection of HTTP headers. For more information, navigate +/// to ICoreWebView2HttpRequestHeaders and ICoreWebView2HttpResponseHeaders. +/// +/// \snippet ScenarioWebViewEventMonitor.cpp HttpRequestHeaderIterator +[uuid(0702fc30-f43b-47bb-ab52-a42cb552ad9f), object, pointer_default(unique)] +interface ICoreWebView2HttpHeadersCollectionIterator : IUnknown { + + /// Get the name and value of the current HTTP header of the iterator. If + /// the previous `MoveNext` operation set the `hasNext` parameter to `FALSE`, + /// this method fails. + /// + /// The caller must free the returned strings with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + + HRESULT GetCurrentHeader([out] LPWSTR* name, [out] LPWSTR* value); + + /// `TRUE` when the iterator has not run out of headers. If the collection + /// over which the iterator is iterating is empty or if the iterator has gone + /// past the end of the collection then this is `FALSE`. + + [propget] HRESULT HasCurrentHeader([out, retval] BOOL* hasCurrent); + + /// Move the iterator to the next HTTP header in the collection. + /// + /// \> [!NOTE]\n \> If no more HTTP headers exist, the `hasNext` parameter is set to + /// `FALSE`. After this occurs the `GetCurrentHeader` method fails. + + HRESULT MoveNext([out, retval] BOOL* hasNext); +} + +/// HTTP request headers. Used to inspect the HTTP request on +/// `WebResourceRequested` event and `NavigationStarting` event. +/// +/// \> [!NOTE]\n\> It is possible to modify the HTTP request from a `WebResourceRequested` +/// event, but not from a `NavigationStarting` event. +[uuid(e86cac0e-5523-465c-b536-8fb9fc8c8c60), object, pointer_default(unique)] +interface ICoreWebView2HttpRequestHeaders : IUnknown { + + /// Gets the header value matching the name. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + + HRESULT GetHeader([in] LPCWSTR name, [out, retval] LPWSTR* value); + + /// Gets the header value matching the name using an iterator. + + HRESULT GetHeaders([in] LPCWSTR name, [out, retval] ICoreWebView2HttpHeadersCollectionIterator** iterator); + + /// Verifies that the headers contain an entry that matches the header name. + + HRESULT Contains([in] LPCWSTR name, [out, retval] BOOL* contains); + + /// Adds or updates header that matches the name. + + HRESULT SetHeader([in] LPCWSTR name, [in] LPCWSTR value); + + /// Removes header that matches the name. + + HRESULT RemoveHeader([in] LPCWSTR name); + + /// Gets an iterator over the collection of request headers. + + HRESULT GetIterator( + [out, retval] ICoreWebView2HttpHeadersCollectionIterator** iterator); +} + +/// HTTP response headers. Used to construct a `WebResourceResponse` for the +/// `WebResourceRequested` event. +[uuid(03c5ff5a-9b45-4a88-881c-89a9f328619c), object, pointer_default(unique)] +interface ICoreWebView2HttpResponseHeaders : IUnknown { + + /// Appends header line with name and value. + + HRESULT AppendHeader([in] LPCWSTR name, [in] LPCWSTR value); + + /// Verifies that the headers contain entries that match the header name. + + HRESULT Contains([in] LPCWSTR name, [out, retval] BOOL* contains); + + /// Gets the first header value in the collection matching the name. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + + HRESULT GetHeader([in] LPCWSTR name, [out, retval] LPWSTR* value); + + /// Gets the header values matching the name. + + HRESULT GetHeaders([in] LPCWSTR name, [out, retval] ICoreWebView2HttpHeadersCollectionIterator** iterator); + + /// Gets an iterator over the collection of entire response headers. + + HRESULT GetIterator( + [out, retval] ICoreWebView2HttpHeadersCollectionIterator** iterator); +} + +/// An HTTP request used with the `WebResourceRequested` event. +[uuid(97055cd4-512c-4264-8b5f-e3f446cea6a5), object, pointer_default(unique)] +interface ICoreWebView2WebResourceRequest : IUnknown { + + /// The request URI. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + + [propget] HRESULT Uri([out, retval] LPWSTR* uri); + + /// Sets the `Uri` property. + + [propput] HRESULT Uri([in] LPCWSTR uri); + + /// The HTTP request method. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + + [propget] HRESULT Method([out, retval] LPWSTR* method); + + /// Sets the `Method` property. + + [propput] HRESULT Method([in] LPCWSTR method); + + /// The HTTP request message body as stream. POST data should be here. If a + /// stream is set, which overrides the message body, the stream must have + /// all the content data available by the time the `WebResourceRequested` + /// event deferral of this response is completed. Stream should be agile or + /// be created from a background STA to prevent performance impact to the UI + /// thread. `Null` means no content data. `IStream` semantics apply + /// (return `S_OK` to `Read` runs until all data is exhausted). + + [propget] HRESULT Content([out, retval] IStream** content); + + /// Sets the `Content` property. + + [propput] HRESULT Content([in] IStream* content); + + /// The mutable HTTP request headers + + [propget] HRESULT Headers([out, retval] ICoreWebView2HttpRequestHeaders** headers); +} + +/// An HTTP response used with the `WebResourceRequested` event. +[uuid(aafcc94f-fa27-48fd-97df-830ef75aaec9), object, pointer_default(unique)] +interface ICoreWebView2WebResourceResponse : IUnknown { + + /// HTTP response content as stream. Stream must have all the content data + /// available by the time the `WebResourceRequested` event deferral of this + /// response is completed. Stream should be agile or be created from a + /// background thread to prevent performance impact to the UI thread. `Null` + /// means no content data. `IStream` semantics apply (return `S_OK` to + /// `Read` runs until all data is exhausted). + + [propget] HRESULT Content([out, retval] IStream** content); + + /// Sets the `Content` property. + + [propput] HRESULT Content([in] IStream* content); + + /// Overridden HTTP response headers. + + [propget] HRESULT Headers([out, retval] ICoreWebView2HttpResponseHeaders** headers); + + /// The HTTP response status code. + + [propget] HRESULT StatusCode([out, retval] int* statusCode); + + /// Sets the `StatusCode` property. + + [propput] HRESULT StatusCode([in] int statusCode); + + /// The HTTP response reason phrase. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + + [propget] HRESULT ReasonPhrase([out, retval] LPWSTR* reasonPhrase); + + /// Sets the `ReasonPhrase` property. + + [propput] HRESULT ReasonPhrase([in] LPCWSTR reasonPhrase); +} + +/// Event args for the `NavigationStarting` event. +[uuid(5b495469-e119-438a-9b18-7604f25f2e49), object, pointer_default(unique)] +interface ICoreWebView2NavigationStartingEventArgs : IUnknown { + + /// The uri of the requested navigation. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + + [propget] HRESULT Uri([out, retval] LPWSTR* uri); + + /// `TRUE` when the navigation was initiated through a user gesture as + /// opposed to programmatic navigation by page script. Navigations initiated + /// via WebView2 APIs are considered as user initiated. + + [propget] HRESULT IsUserInitiated([out, retval] BOOL* isUserInitiated); + + /// `TRUE` when the navigation is redirected. + + [propget] HRESULT IsRedirected([out, retval] BOOL* isRedirected); + + /// The HTTP request headers for the navigation. + /// + /// \> [!NOTE]\n\> You are not able to modify the HTTP request headers in a + /// `NavigationStarting` event. + + [propget] HRESULT RequestHeaders([out, retval] ICoreWebView2HttpRequestHeaders** requestHeaders); + + /// The host may set this flag to cancel the navigation. If set, the + /// navigation is not longer present and the content of the current page is + /// intact. For performance reasons, `GET` HTTP requests may happen, while + /// the host is responding. You may set cookies and use part of a request + /// for the navigation. Cancellation for navigation to `about:blank` or + /// frame navigation to `srcdoc` is not supported. Such attempts are + /// ignored. A cancelled navigation will fire a `NavigationCompleted` event + /// with a `WebErrorStatus` of + /// `COREWEBVIEW2_WEB_ERROR_STATUS_OPERATION_CANCELED`. + + [propget] HRESULT Cancel([out, retval] BOOL* cancel); + + /// Sets the `Cancel` property. + + [propput] HRESULT Cancel([in] BOOL cancel); + + /// The ID of the navigation. + + [propget] HRESULT NavigationId([out, retval] UINT64* navigationId); +} + +/// The AdditionalAllowedFrameAncestors API that enable developers to provide additional allowed frame ancestors. +[uuid(9086BE93-91AA-472D-A7E0-579F2BA006AD), object, pointer_default(unique)] +interface ICoreWebView2NavigationStartingEventArgs2 : ICoreWebView2NavigationStartingEventArgs { + + /// Get additional allowed frame ancestors set by the host app. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + [propget] HRESULT AdditionalAllowedFrameAncestors([out, retval] LPWSTR* value); + + /// The app may set this property to allow a frame to be embedded by additional ancestors besides what is allowed by + /// http header [X-Frame-Options](https://developer.mozilla.org/docs/Web/HTTP/Headers/X-Frame-Options) + /// and [Content-Security-Policy frame-ancestors directive](https://developer.mozilla.org/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors). + /// If set, a frame ancestor is allowed if it is allowed by the additional allowed frame + /// ancestors or original http header from the site. + /// Whether an ancestor is allowed by the additional allowed frame ancestors is done the same way as if the site provided + /// it as the source list of the Content-Security-Policy frame-ancestors directive. + /// For example, if `https://example.com` and `https://www.example.com` are the origins of the top + /// page and intermediate iframes that embed a nested site-embedding iframe, and you fully trust + /// those origins, you should set this property to `https://example.com https://www.example.com`. + /// This property gives the app the ability to use iframe to embed sites that otherwise + /// could not be embedded in an iframe in trusted app pages. + /// This could potentially subject the embedded sites to [Clickjacking](https://en.wikipedia.org/wiki/Clickjacking) + /// attack from the code running in the embedding web page. Therefore, you should only + /// set this property with origins of fully trusted embedding page and any intermediate iframes. + /// Whenever possible, you should use the list of specific origins of the top and intermediate + /// frames instead of wildcard characters for this property. + /// This API is to provide limited support for app scenarios that used to be supported by + /// `` element in other solutions like JavaScript UWP apps and Electron. + /// You should limit the usage of this property to trusted pages, and specific navigation + /// target url, by checking the `Source` of the WebView2, and `Uri` of the event args. + /// + /// This property is ignored for top level document navigation. + /// + /// \snippet ScriptComponent.cpp AdditionalAllowedFrameAncestors_1 + /// + /// \snippet ScriptComponent.cpp AdditionalAllowedFrameAncestors_2 + [propput] HRESULT AdditionalAllowedFrameAncestors([in] LPCWSTR value); + +} + +/// Receives `NavigationStarting` events. +[uuid(9adbe429-f36d-432b-9ddc-f8881fbd76e3), object, pointer_default(unique)] +interface ICoreWebView2NavigationStartingEventHandler : IUnknown { + + /// Provides the event args for the corresponding event. + + HRESULT Invoke( + [in] ICoreWebView2* sender, + [in] ICoreWebView2NavigationStartingEventArgs* args); +} + +/// Event args for the `ContentLoading` event. +[uuid(0c8a1275-9b6b-4901-87ad-70df25bafa6e), object, pointer_default(unique)] +interface ICoreWebView2ContentLoadingEventArgs : IUnknown { + + /// `TRUE` if the loaded content is an error page. + + [propget] HRESULT IsErrorPage([out, retval] BOOL* isErrorPage); + + /// The ID of the navigation. + + [propget] HRESULT NavigationId([out, retval] UINT64* navigationId); +} + +/// Receives `ContentLoading` events. +[uuid(364471e7-f2be-4910-bdba-d72077d51c4b), object, pointer_default(unique)] +interface ICoreWebView2ContentLoadingEventHandler : IUnknown { + + /// Provides the event args for the corresponding event. + + HRESULT Invoke([in] ICoreWebView2* sender, [in] ICoreWebView2ContentLoadingEventArgs* args); +} + +/// Event args for the `SourceChanged` event. +[uuid(31e0e545-1dba-4266-8914-f63848a1f7d7), object, pointer_default(unique)] +interface ICoreWebView2SourceChangedEventArgs : IUnknown { + + /// `TRUE` if the page being navigated to is a new document. + + [propget] HRESULT IsNewDocument([out, retval] BOOL* isNewDocument); +} + +/// Receives `SourceChanged` events. +[uuid(3c067f9f-5388-4772-8b48-79f7ef1ab37c), object, pointer_default(unique)] +interface ICoreWebView2SourceChangedEventHandler : IUnknown { + + /// Provides the event args for the corresponding event. + + HRESULT Invoke([in] ICoreWebView2* sender, [in] ICoreWebView2SourceChangedEventArgs* args); +} + +/// Receives `HistoryChanged` events. +[uuid(c79a420c-efd9-4058-9295-3e8b4bcab645), object, pointer_default(unique)] +interface ICoreWebView2HistoryChangedEventHandler : IUnknown { + + /// Provides the event args for the corresponding event. No event args exist + /// and the `args` parameter is set to `null`. + + HRESULT Invoke([in] ICoreWebView2* sender, [in] IUnknown* args); +} + +/// Event args for the `ScriptDialogOpening` event. +[uuid(7390bb70-abe0-4843-9529-f143b31b03d6), object, pointer_default(unique)] +interface ICoreWebView2ScriptDialogOpeningEventArgs : IUnknown { + + /// The URI of the page that requested the dialog box. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + + [propget] HRESULT Uri([out, retval] LPWSTR* uri); + + /// The kind of JavaScript dialog box. `alert`, `confirm`, `prompt`, or + /// `beforeunload`. + + [propget] HRESULT Kind([out, retval] COREWEBVIEW2_SCRIPT_DIALOG_KIND* kind); + + /// The message of the dialog box. From JavaScript this is the first + /// parameter passed to `alert`, `confirm`, and `prompt` and is empty for + /// `beforeunload`. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + + [propget] HRESULT Message([out, retval] LPWSTR* message); + + /// The host may run this to respond with **OK** to `confirm`, `prompt`, and + /// `beforeunload` dialogs. Do not run this method to indicate cancel. + /// From JavaScript, this means that the `confirm` and `beforeunload` function + /// returns `TRUE` if `Accept` is run. And for the prompt function it returns + /// the value of `ResultText` if `Accept` is run and otherwise returns + /// `FALSE`. + + HRESULT Accept(); + + /// The second parameter passed to the JavaScript prompt dialog. + /// The result of the prompt JavaScript function uses this value as the + /// default value. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + + [propget] HRESULT DefaultText([out, retval] LPWSTR* defaultText); + + /// The return value from the JavaScript prompt function if `Accept` is run. + /// This value is ignored for dialog kinds other than prompt. If `Accept` + /// is not run, this value is ignored and `FALSE` is returned from prompt. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + + [propget] HRESULT ResultText([out, retval] LPWSTR* resultText); + + /// Sets the `ResultText` property. + + [propput] HRESULT ResultText([in] LPCWSTR resultText); + + /// Returns an `ICoreWebView2Deferral` object. Use this operation to + /// complete the event at a later time. + + HRESULT GetDeferral([out, retval] ICoreWebView2Deferral** deferral); +} + +/// Receives `ScriptDialogOpening` events. +[uuid(ef381bf9-afa8-4e37-91c4-8ac48524bdfb), object, pointer_default(unique)] +interface ICoreWebView2ScriptDialogOpeningEventHandler : IUnknown { + + /// Provides the event args for the corresponding event. + + HRESULT Invoke( + [in] ICoreWebView2* sender, + [in] ICoreWebView2ScriptDialogOpeningEventArgs* args); +} + +/// Event args for the `NavigationCompleted` event. +[uuid(30d68b7d-20d9-4752-a9ca-ec8448fbb5c1), object, pointer_default(unique)] +interface ICoreWebView2NavigationCompletedEventArgs : IUnknown { + + /// `TRUE` when the navigation is successful. `FALSE` for a navigation that + /// ended up in an error page (failures due to no network, DNS lookup + /// failure, HTTP server responds with 4xx), but may also be `FALSE` for + /// additional scenarios such as `window.stop()` run on navigated page. + + [propget] HRESULT IsSuccess([out, retval] BOOL* isSuccess); + + /// The error code if the navigation failed. + + [propget] HRESULT WebErrorStatus([out, retval] COREWEBVIEW2_WEB_ERROR_STATUS* + webErrorStatus); + + /// The ID of the navigation. + + [propget] HRESULT NavigationId([out, retval] UINT64* navigationId); +} + +/// This is an interface for the StatusCode property of +/// ICoreWebView2NavigationCompletedEventArgs +[uuid(FDF8B738-EE1E-4DB2-A329-8D7D7B74D792), object, pointer_default(unique)] +interface ICoreWebView2NavigationCompletedEventArgs2 : ICoreWebView2NavigationCompletedEventArgs { + /// The HTTP status code of the navigation if it involved an HTTP request. + /// For instance, this will usually be 200 if the request was successful, 404 + /// if a page was not found, etc. See + /// https://developer.mozilla.org/docs/Web/HTTP/Status for a list of + /// common status codes. + /// + /// The `HttpStatusCode` property will be 0 in the following cases: + /// * The navigation did not involve an HTTP request. For instance, if it was + /// a navigation to a file:// URL, or if it was a same-document navigation. + /// * The navigation failed before a response was received. For instance, if + /// the hostname was not found, or if there was a network error. + /// + /// In those cases, you can get more information from the `IsSuccess` and + /// `WebErrorStatus` properties. + /// + /// If the navigation receives a successful HTTP response, but the navigated + /// page calls `window.stop()` before it finishes loading, then + /// `HttpStatusCode` may contain a success code like 200, but `IsSuccess` will + /// be FALSE and `WebErrorStatus` will be + /// `COREWEBVIEW2_WEB_ERROR_STATUS_CONNECTION_ABORTED`. + /// + /// Since WebView2 handles HTTP continuations and redirects automatically, it + /// is unlikely for `HttpStatusCode` to ever be in the 1xx or 3xx ranges. + [propget] HRESULT HttpStatusCode([out, retval] int* http_status_code); +} + +/// Receives `NavigationCompleted` events. +[uuid(d33a35bf-1c49-4f98-93ab-006e0533fe1c), object, pointer_default(unique)] +interface ICoreWebView2NavigationCompletedEventHandler : IUnknown { + + /// Provides the event args for the corresponding event. + + HRESULT Invoke( + [in] ICoreWebView2* sender, + [in] ICoreWebView2NavigationCompletedEventArgs* args); +} + +/// Event args for the `PermissionRequested` event. +[uuid(973ae2ef-ff18-4894-8fb2-3c758f046810), object, pointer_default(unique)] +interface ICoreWebView2PermissionRequestedEventArgs : IUnknown { + + /// The origin of the web content that requests the permission. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + + [propget] HRESULT Uri([out, retval] LPWSTR* uri); + + /// The type of the permission that is requested. + + [propget] HRESULT PermissionKind([out, retval] COREWEBVIEW2_PERMISSION_KIND* permissionKind); + + /// `TRUE` when the permission request was initiated through a user gesture. + /// + /// \> [!NOTE]\n\> Being initiated through a user gesture does not mean that user intended + /// to access the associated resource. + + [propget] HRESULT IsUserInitiated([out, retval] BOOL* isUserInitiated); + + /// The status of a permission request, (for example is the request is granted). + /// The default value is `COREWEBVIEW2_PERMISSION_STATE_DEFAULT`. + + [propget] HRESULT State([out, retval] COREWEBVIEW2_PERMISSION_STATE* state); + + /// Sets the `State` property. + + [propput] HRESULT State([in] COREWEBVIEW2_PERMISSION_STATE state); + + /// Gets an `ICoreWebView2Deferral` object. Use the deferral object to make + /// the permission decision at a later time. + + HRESULT GetDeferral([out, retval] ICoreWebView2Deferral** deferral); +} + +/// Receives `PermissionRequested` events. +[uuid(15e1c6a3-c72a-4df3-91d7-d097fbec6bfd), object, pointer_default(unique)] +interface ICoreWebView2PermissionRequestedEventHandler : IUnknown { + + /// Provides the event args for the corresponding event. + + HRESULT Invoke( + [in] ICoreWebView2* sender, + [in] ICoreWebView2PermissionRequestedEventArgs* args); +} + +/// Receives the result of the `AddScriptToExecuteOnDocumentCreated` method. +[uuid(b99369f3-9b11-47b5-bc6f-8e7895fcea17), object, pointer_default(unique)] +interface ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler : IUnknown { + + /// Provide the completion status and result of the corresponding + /// asynchronous method. + + HRESULT Invoke([in] HRESULT errorCode, [in] LPCWSTR id); +} + +/// Receives the result of the `ExecuteScript` method. +[uuid(49511172-cc67-4bca-9923-137112f4c4cc), object, pointer_default(unique)] +interface ICoreWebView2ExecuteScriptCompletedHandler : IUnknown { + + /// Provide the implementer with the completion status and result of the + /// corresponding asynchronous method. + + HRESULT Invoke([in] HRESULT errorCode, [in] LPCWSTR resultObjectAsJson); +} + +/// Event args for the `WebResourceRequested` event. +[uuid(453e667f-12c7-49d4-be6d-ddbe7956f57a), object, pointer_default(unique)] +interface ICoreWebView2WebResourceRequestedEventArgs : IUnknown { + + /// The Web resource request. The request object may be missing some headers + /// that are added by network stack at a later time. + + [propget] HRESULT Request([out, retval] ICoreWebView2WebResourceRequest** request); + + /// A placeholder for the web resource response object. If this object is + /// set, the web resource request is completed with the specified response. + + [propget] HRESULT Response([out, retval] ICoreWebView2WebResourceResponse** response); + + /// Sets the `Response` property. Create an empty web resource response + /// object with `CreateWebResourceResponse` and then modify it to construct + /// the response. + + [propput] HRESULT Response([in] ICoreWebView2WebResourceResponse* response); + + /// Obtain an `ICoreWebView2Deferral` object and put the event into a + /// deferred state. Use the `ICoreWebView2Deferral` object to complete the + /// request at a later time. + + HRESULT GetDeferral([out, retval] ICoreWebView2Deferral** deferral); + + /// The web resource request context. + + [propget] HRESULT ResourceContext([out, retval] COREWEBVIEW2_WEB_RESOURCE_CONTEXT* context); +} + +/// Runs when a URL request (through network, file, and so on) is made in +/// the webview for a Web resource matching resource context filter and URL +/// specified in `AddWebResourceRequestedFilter`. The host views and modifies +/// the request or provide a response in a similar pattern to HTTP, in which +/// case the request immediately completed. This may not contain any request +/// headers that are added by the network stack, such as an `Authorization` +/// header. +[uuid(ab00b74c-15f1-4646-80e8-e76341d25d71), object, pointer_default(unique)] +interface ICoreWebView2WebResourceRequestedEventHandler : IUnknown { + + /// Provides the event args for the corresponding event. + + HRESULT Invoke( + [in] ICoreWebView2* sender, + [in] ICoreWebView2WebResourceRequestedEventArgs* args); +} + +/// Receives the result of the `CapturePreview` method. The result is written +/// to the stream provided in the `CapturePreview` method. + +[uuid(697e05e9-3d8f-45fa-96f4-8ffe1ededaf5), object, pointer_default(unique)] +interface ICoreWebView2CapturePreviewCompletedHandler : IUnknown { + + /// Provides the completion status of the corresponding asynchronous method. + + HRESULT Invoke([in] HRESULT errorCode); +} + +/// Receives `GotFocus` and `LostFocus` events. + +[uuid(05ea24bd-6452-4926-9014-4b82b498135d), object, pointer_default(unique)] +interface ICoreWebView2FocusChangedEventHandler : IUnknown { + + /// Provides the event args for the corresponding event. No event args exist + /// and the `args` parameter is set to `null`. + + HRESULT Invoke( + [in] ICoreWebView2Controller* sender, + [in] IUnknown* args); +} + +/// Event args for the `MoveFocusRequested` event. + +[uuid(2d6aa13b-3839-4a15-92fc-d88b3c0d9c9d), object, pointer_default(unique)] +interface ICoreWebView2MoveFocusRequestedEventArgs : IUnknown { + + /// The reason for WebView to run the `MoveFocusRequested` event. + + [propget] HRESULT Reason([out, retval] COREWEBVIEW2_MOVE_FOCUS_REASON* reason); + + /// Indicates whether the event has been handled by the app. If the app has + /// moved the focus to another desired location, it should set the `Handled` + /// property to `TRUE`. When the `Handled` property is `FALSE` after the + /// event handler returns, default action is taken. The default action is to + /// try to find the next tab stop child window in the app and try to move + /// focus to that window. If no other window exists to move focus, focus is + /// cycled within the web content of the WebView. + + [propget] HRESULT Handled([out, retval] BOOL* value); + + /// Sets the `Handled` property. + + [propput] HRESULT Handled([in] BOOL value); +} + +/// Receives `MoveFocusRequested` events. + +[uuid(69035451-6dc7-4cb8-9bce-b2bd70ad289f), object, pointer_default(unique)] +interface ICoreWebView2MoveFocusRequestedEventHandler : IUnknown { + + /// Provides the event args for the corresponding event. + + HRESULT Invoke( + [in] ICoreWebView2Controller* sender, + [in] ICoreWebView2MoveFocusRequestedEventArgs* args); +} + +/// Event args for the `WebMessageReceived` event. +[uuid(0f99a40c-e962-4207-9e92-e3d542eff849), object, pointer_default(unique)] +interface ICoreWebView2WebMessageReceivedEventArgs : IUnknown { + + /// The URI of the document that sent this web message. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + + [propget] HRESULT Source([out, retval] LPWSTR* source); + + /// The message posted from the WebView content to the host converted to a + /// JSON string. Run this operation to communicate using JavaScript objects. + /// + /// For example, the following `postMessage` runs result in the following + /// `WebMessageAsJson` values. + /// + /// ```json + /// postMessage({'a': 'b'}) L"{\"a\": \"b\"}" + /// postMessage(1.2) L"1.2" + /// postMessage('example') L"\"example\"" + /// ``` + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + + [propget] HRESULT WebMessageAsJson([out, retval] LPWSTR* webMessageAsJson); + + /// If the message posted from the WebView content to the host is a string + /// type, this method returns the value of that string. If the message + /// posted is some other kind of JavaScript type this method fails with the + /// following error. + /// + /// ```text + /// E_INVALIDARG + /// ``` + /// + /// Run this operation to communicate using simple strings. + /// + /// For example, the following `postMessage` runs result in the following + /// `WebMessageAsString` values. + /// + /// ```json + /// postMessage({'a': 'b'}) E_INVALIDARG + /// postMessage(1.2) E_INVALIDARG + /// postMessage('example') L"example" + /// ``` + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + + HRESULT TryGetWebMessageAsString([out, retval] LPWSTR* webMessageAsString); +} + +/// Receives `WebMessageReceived` events. +[uuid(57213f19-00e6-49fa-8e07-898ea01ecbd2), object, pointer_default(unique)] +interface ICoreWebView2WebMessageReceivedEventHandler : IUnknown { + + /// Provides the event args for the corresponding event. + + HRESULT Invoke( + [in] ICoreWebView2* sender, + [in] ICoreWebView2WebMessageReceivedEventArgs* args); +} + +/// Event args for the `DevToolsProtocolEventReceived` event. +[uuid(653c2959-bb3a-4377-8632-b58ada4e66c4), object, pointer_default(unique)] +interface ICoreWebView2DevToolsProtocolEventReceivedEventArgs : IUnknown { + + /// The parameter object of the corresponding `DevToolsProtocol` event + /// represented as a JSON string. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + + [propget] HRESULT ParameterObjectAsJson([out, retval] LPWSTR* + parameterObjectAsJson); +} + +/// This is a continuation of the `ICoreWebView2DevToolsProtocolEventReceivedEventArgs` +/// interface that provides the session ID of the target where the event originates from. +[uuid(2DC4959D-1494-4393-95BA-BEA4CB9EBD1B), object, pointer_default(unique)] +interface ICoreWebView2DevToolsProtocolEventReceivedEventArgs2 : ICoreWebView2DevToolsProtocolEventReceivedEventArgs { + + /// The sessionId of the target where the event originates from. + /// Empty string is returned as sessionId if the event comes from the default + /// session for the top page. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + /// + /// \snippet ScriptComponent.cpp DevToolsProtocolEventReceivedSessionId + [propget] HRESULT SessionId([out, retval] LPWSTR* sessionId); +} + +/// Receives `DevToolsProtocolEventReceived` events from the WebView. +[uuid(e2fda4be-5456-406c-a261-3d452138362c), object, pointer_default(unique)] +interface ICoreWebView2DevToolsProtocolEventReceivedEventHandler : IUnknown { + + /// Provides the event args for the corresponding event. + + HRESULT Invoke( + [in] ICoreWebView2* sender, + [in] ICoreWebView2DevToolsProtocolEventReceivedEventArgs* args); +} + +/// Receives `CallDevToolsProtocolMethod` completion results. +[uuid(5c4889f0-5ef6-4c5a-952c-d8f1b92d0574), object, pointer_default(unique)] +interface ICoreWebView2CallDevToolsProtocolMethodCompletedHandler : IUnknown { + + /// Provides the completion status and result of the corresponding + /// asynchronous method. + + HRESULT Invoke([in] HRESULT errorCode, [in] LPCWSTR returnObjectAsJson); +} + +/// Receives the `CoreWebView2Controller` created using `CreateCoreWebView2Controller`. + +[uuid(6c4819f3-c9b7-4260-8127-c9f5bde7f68c), object, pointer_default(unique)] +interface ICoreWebView2CreateCoreWebView2ControllerCompletedHandler : IUnknown { + + /// Provides the completion status and result of the corresponding + /// asynchronous method. + + HRESULT Invoke(HRESULT errorCode, ICoreWebView2Controller* createdController); +} + +/// The caller implements this interface to receive the CoreWebView2Controller +/// created via CreateCoreWebView2CompositionController. +[uuid(02fab84b-1428-4fb7-ad45-1b2e64736184), object, pointer_default(unique)] +interface ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler : IUnknown { + /// Called to provide the implementer with the completion status and result + /// of the corresponding asynchronous method call. + HRESULT Invoke( + HRESULT errorCode, + ICoreWebView2CompositionController* webView); +} + +/// Event args for the `NewWindowRequested` event. The event is run when +/// content inside webview requested to a open a new window (through +/// `window.open()` and so on). +[uuid(34acb11c-fc37-4418-9132-f9c21d1eafb9), object, pointer_default(unique)] +interface ICoreWebView2NewWindowRequestedEventArgs : IUnknown { + + /// The target uri of the new window requested. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + + [propget] HRESULT Uri([out, retval] LPWSTR* uri); + + /// Sets a CoreWebView2 as a result of the NewWindowRequested event. If the + /// `NewWindow` is set, the top-level window returns as the opened `WindowProxy`. + /// The NewWindow property should be set to a CoreWebView2 that has not been + /// navigated previously. Don't use methods that cause navigation or interact + /// with the DOM on this CoreWebView2. Setting event handlers, changing + /// Settings properties, or other methods are fine to call. Changes to + /// settings should be made before `put_NewWindow` is called to ensure that + /// those settings take effect for the newly setup WebView. Once the + /// NewWindow is set the underlying web contents of this CoreWebView2 will be + /// replaced and navigated as appropriate for the new window. + /// After setting new window it cannot be changed and error will be return otherwise. + /// + /// The methods which should affect the new web contents like + /// AddScriptToExecuteOnDocumentCreated and add_WebResourceRequested + /// have to be called after setting NewWindow. + /// + /// The new WebView must have the same profile as the opener WebView. + + [propput] HRESULT NewWindow([in] ICoreWebView2* newWindow); + + /// Gets the new window. + + [propget] HRESULT NewWindow([out, retval] ICoreWebView2** newWindow); + + /// Sets whether the `NewWindowRequested` event is handled by host. If this + /// is `FALSE` and no `NewWindow` is set, the WebView opens a popup window + /// and it returns as opened `WindowProxy`. If set to `TRUE` and no + /// `NewWindow` is set for `window.open`, the opened `WindowProxy` is for an + /// testing window object and no window loads. + /// The default value is `FALSE`. + + [propput] HRESULT Handled([in] BOOL handled); + + /// Gets whether the `NewWindowRequested` event is handled by host. + + [propget] HRESULT Handled([out, retval] BOOL* handled); + + /// `TRUE` when the new window request was initiated through a user gesture. + /// Examples of user initiated requests are: + /// + /// - Selecting an anchor tag with target + /// - Programmatic window open from a script that directly run as a result of + /// user interaction such as via onclick handlers. + /// + /// Non-user initiated requests are programmatic window opens from a script + /// that are not directly triggered by user interaction, such as those that + /// run while loading a new page or via timers. + /// The Microsoft Edge popup blocker is disabled for WebView so the app is + /// able to use this flag to block non-user initiated popups. + + [propget] HRESULT IsUserInitiated([out, retval] BOOL* isUserInitiated); + + /// Obtain an `ICoreWebView2Deferral` object and put the event into a + /// deferred state. Use the `ICoreWebView2Deferral` object to complete the + /// window open request at a later time. While this event is deferred the + /// opener window returns a `WindowProxy` to an un-navigated window, which + /// navigates when the deferral is complete. + + HRESULT GetDeferral([out, retval] ICoreWebView2Deferral** deferral); + + /// Window features specified by the `window.open`. The features should be + /// considered for positioning and sizing of new webview windows. + + [propget] HRESULT WindowFeatures([out, retval] ICoreWebView2WindowFeatures** value); +} + +/// This is a continuation of the `ICoreWebView2NewWindowRequestedEventArgs` interface. +[uuid(bbc7baed-74c6-4c92-b63a-7f5aeae03de3), object, pointer_default(unique)] +interface ICoreWebView2NewWindowRequestedEventArgs2 : ICoreWebView2NewWindowRequestedEventArgs { + /// Gets the name of the new window. This window can be created via `window.open(url, windowName)`, + /// where the windowName parameter corresponds to `Name` property. + /// If no windowName is passed to `window.open`, then the `Name` property + /// will be set to an empty string. Additionally, if window is opened through other means, + /// such as `...` or ``, + /// then the `Name` property will be set accordingly. In the case of target=_blank, + /// the `Name` property will be an empty string. + /// Opening a window via ctrl+clicking a link would result in the `Name` property + /// being set to an empty string. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + [propget] HRESULT Name([out, retval] LPWSTR* value); +} + +/// The window features for a WebView popup window. The fields match the +/// `windowFeatures` passed to `window.open` as specified in +/// [Window features](https://developer.mozilla.org/docs/Web/API/Window/open#Window_features) +/// on MDN. +/// +/// There is no requirement for you to respect the values. If your app does +/// not have corresponding UI features (for example, no toolbar) or if all +/// instance of WebView are opened in tabs and do not have distinct size or +/// positions, then your app does not respect the values. You may want to +/// respect values, but perhaps only some apply to the UI of you app. +/// Accordingly, you may respect all, some, or none of the properties as +/// appropriate for your app. For all numeric properties, if the value that is +/// passed to `window.open` is outside the range of an unsigned 32bit int, the +/// resulting value is the absolute value of the maximum for unsigned 32bit +/// integer. If you are not able to parse the value an integer, it is +/// considered `0`. If the value is a floating point value, it is rounded down +/// to an integer. +/// +/// In runtime versions 98 or later, the values of `ShouldDisplayMenuBar`, +/// `ShouldDisplayStatus`, `ShouldDisplayToolbar`, and `ShouldDisplayScrollBars` +/// will not directly depend on the equivalent fields in the `windowFeatures` +/// string. Instead, they will all be false if the window is expected to be a +/// popup, and true if it is not. +[uuid(5eaf559f-b46e-4397-8860-e422f287ff1e), object, pointer_default(unique)] +interface ICoreWebView2WindowFeatures : IUnknown { + + /// Specifies left and top values. + + [propget] HRESULT HasPosition([out, retval] BOOL* value); + + /// Specifies height and width values. + + [propget] HRESULT HasSize([out, retval] BOOL* value); + + /// Specifies the left position of the window. If `HasPosition` is set to + /// `FALSE`, this field is ignored. + + [propget] HRESULT Left([out, retval] UINT32* value); + + /// Specifies the top position of the window. If `HasPosition` is set to + /// `FALSE`, this field is ignored. + + [propget] HRESULT Top([out, retval] UINT32* value); + + /// Specifies the height of the window. Minimum value is `100`. If + /// `HasSize` is set to `FALSE`, this field is ignored. + + [propget] HRESULT Height([out, retval] UINT32* value); + + /// Specifies the width of the window. Minimum value is `100`. If `HasSize` + /// is set to `FALSE`, this field is ignored. + + [propget] HRESULT Width([out, retval] UINT32* value); + + /// Indicates that the menu bar is displayed. + + [propget] HRESULT ShouldDisplayMenuBar([out, retval] BOOL* value); + + /// Indicates that the status bar is displayed. + + [propget] HRESULT ShouldDisplayStatus([out, retval] BOOL* value); + + /// Indicates that the browser toolbar is displayed. + + [propget] HRESULT ShouldDisplayToolbar([out, retval] BOOL* value); + + /// Indicates that the scroll bars are displayed. + + [propget] HRESULT ShouldDisplayScrollBars([out, retval] BOOL* value); +} + +/// Receives `NewWindowRequested` events. +[uuid(d4c185fe-c81c-4989-97af-2d3fa7ab5651), object, pointer_default(unique)] +interface ICoreWebView2NewWindowRequestedEventHandler : IUnknown { + + /// Provides the event args for the corresponding event. + + HRESULT Invoke( + [in] ICoreWebView2* sender, + [in] ICoreWebView2NewWindowRequestedEventArgs* args); +} + +/// Receives `DocumentTitleChanged` events. Use the `DocumentTitle` property +/// to get the modified title. + +[uuid(f5f2b923-953e-4042-9f95-f3a118e1afd4), object, pointer_default(unique)] +interface ICoreWebView2DocumentTitleChangedEventHandler : IUnknown { + + /// Provides the event args for the corresponding event. No event args exist + /// and the `args` parameter is set to `null`. + + HRESULT Invoke([in] ICoreWebView2* sender, [in] IUnknown* args); +} + +/// Event args for the `AcceleratorKeyPressed` event. + +[uuid(9f760f8a-fb79-42be-9990-7b56900fa9c7), object, pointer_default(unique)] +interface ICoreWebView2AcceleratorKeyPressedEventArgs : IUnknown { + + /// The key event type that caused the event to run. + + [propget] HRESULT KeyEventKind([out, retval] COREWEBVIEW2_KEY_EVENT_KIND* keyEventKind); + + /// The Win32 virtual key code of the key that was pressed or released. It + /// is one of the Win32 virtual key constants such as `VK_RETURN` or an + /// (uppercase) ASCII value such as `A`. Verify whether Ctrl or Alt + /// are pressed by running `GetKeyState(VK_CONTROL)` or + /// `GetKeyState(VK_MENU)`. + + [propget] HRESULT VirtualKey([out, retval] UINT* virtualKey); + + /// The `LPARAM` value that accompanied the window message. For more + /// information, navigate to [WM_KEYDOWN](/windows/win32/inputdev/wm-keydown) + /// and [WM_KEYUP](/windows/win32/inputdev/wm-keyup). + + [propget] HRESULT KeyEventLParam([out, retval] INT* lParam); + + /// A structure representing the information passed in the `LPARAM` of the + /// window message. + + [propget] HRESULT PhysicalKeyStatus( + [out, retval] COREWEBVIEW2_PHYSICAL_KEY_STATUS* physicalKeyStatus); + + /// During `AcceleratorKeyPressedEvent` handler invocation the WebView is + /// blocked waiting for the decision of if the accelerator is handled by the + /// host (or not). If the `Handled` property is set to `TRUE` then this + /// prevents the WebView from performing the default action for this + /// accelerator key. Otherwise the WebView performs the default action for + /// the accelerator key. + + [propget] HRESULT Handled([out, retval] BOOL* handled); + + /// Sets the `Handled` property. + + [propput] HRESULT Handled([in] BOOL handled); +} + +/// Receives `AcceleratorKeyPressed` events. + +[uuid(b29c7e28-fa79-41a8-8e44-65811c76dcb2), object, pointer_default(unique)] +interface ICoreWebView2AcceleratorKeyPressedEventHandler : IUnknown { + + /// Provides the event args for the corresponding event. + + HRESULT Invoke( + [in] ICoreWebView2Controller* sender, + [in] ICoreWebView2AcceleratorKeyPressedEventArgs* args); +} + +/// Receives `NewBrowserVersionAvailable` events. +[uuid(f9a2976e-d34e-44fc-adee-81b6b57ca914), object, pointer_default(unique)] +interface ICoreWebView2NewBrowserVersionAvailableEventHandler : IUnknown { + + /// Provides the event args for the corresponding event. + + HRESULT Invoke([in] ICoreWebView2Environment* sender, + [in] IUnknown* args); +} + +/// Receives `BrowserProcessExited` events. +[uuid(fa504257-a216-4911-a860-fe8825712861), object, pointer_default(unique)] +interface ICoreWebView2BrowserProcessExitedEventHandler : IUnknown { + /// Provides the event args for the corresponding event. + HRESULT Invoke( + [in] ICoreWebView2Environment* sender, + [in] ICoreWebView2BrowserProcessExitedEventArgs* args); +} + +/// Receives `ContainsFullScreenElementChanged` events. + +[uuid(e45d98b1-afef-45be-8baf-6c7728867f73), object, pointer_default(unique)] +interface ICoreWebView2ContainsFullScreenElementChangedEventHandler : IUnknown { + + /// Provides the event args for the corresponding event. No event args exist + /// and the `args` parameter is set to `null`. + + HRESULT Invoke([in] ICoreWebView2* sender, [in] IUnknown* args); +} + +/// Receives `WindowCloseRequested` events. +[uuid(5c19e9e0-092f-486b-affa-ca8231913039), object, pointer_default(unique)] +interface ICoreWebView2WindowCloseRequestedEventHandler : IUnknown { + + /// Provides the event args for the corresponding event. No event args exist + /// and the `args` parameter is set to `null`. + + HRESULT Invoke([in] ICoreWebView2* sender, [in] IUnknown* args); +} + +/// Receives `WebResourceResponseReceived` events. +[uuid(7DE9898A-24F5-40C3-A2DE-D4F458E69828), object, pointer_default(unique)] +interface ICoreWebView2WebResourceResponseReceivedEventHandler : IUnknown { + /// Provides the event args for the corresponding event. + HRESULT Invoke( + [in] ICoreWebView2* sender, + [in] ICoreWebView2WebResourceResponseReceivedEventArgs* args); +} + +/// Event args for the `BrowserProcessExited` event. +[uuid(1f00663f-af8c-4782-9cdd-dd01c52e34cb), object, pointer_default(unique)] +interface ICoreWebView2BrowserProcessExitedEventArgs : IUnknown { + /// The kind of browser process exit that has occurred. + [propget] HRESULT BrowserProcessExitKind( + [out, retval] COREWEBVIEW2_BROWSER_PROCESS_EXIT_KIND* browserProcessExitKind); + + /// The process ID of the browser process that has exited. + [propget] HRESULT BrowserProcessId([out, retval] UINT32* value); +} + +/// Event args for the WebResourceResponseReceived event. +[uuid(D1DB483D-6796-4B8B-80FC-13712BB716F4), object, pointer_default(unique)] +interface ICoreWebView2WebResourceResponseReceivedEventArgs : IUnknown { + /// The request object for the web resource, as committed. This includes + /// headers added by the network stack that were not be included during the + /// associated WebResourceRequested event, such as Authentication headers. + /// Modifications to this object have no effect on how the request is + /// processed as it has already been sent. + [propget] HRESULT Request([out, retval] ICoreWebView2WebResourceRequest** request); + /// View of the response object received for the web resource. + [propget] HRESULT Response([out, retval] ICoreWebView2WebResourceResponseView** response); +} + +/// View of the HTTP representation for a web resource response. The properties +/// of this object are not mutable. This response view is used with the +/// WebResourceResponseReceived event. +[uuid(79701053-7759-4162-8F7D-F1B3F084928D), object, pointer_default(unique)] +interface ICoreWebView2WebResourceResponseView : IUnknown { + /// The HTTP response headers as received. + [propget] HRESULT Headers( + [out, retval] ICoreWebView2HttpResponseHeaders** headers); + /// The HTTP response status code. + [propget] HRESULT StatusCode([out, retval] int* statusCode); + /// The HTTP response reason phrase. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + [propget] HRESULT ReasonPhrase([out, retval] LPWSTR* reasonPhrase); + + /// Get the response content asynchronously. The handler will receive the + /// response content stream. + /// + /// This method returns null if content size is more than 123MB or for navigations that become downloads + /// or if response is downloadable content type (e.g., application/octet-stream). + /// See `add_DownloadStarting` event to handle the response. + /// + /// If this method is being called again before a first call has completed, + /// the handler will be invoked at the same time the handlers from prior calls + /// are invoked. + /// If this method is being called after a first call has completed, the + /// handler will be invoked immediately. + /// \snippet ScenarioWebViewEventMonitor.cpp GetContent + HRESULT GetContent( + [in] ICoreWebView2WebResourceResponseViewGetContentCompletedHandler* handler); +} + +/// Receives the result of the +/// `ICoreWebView2WebResourceResponseView::GetContent` method. +[uuid(875738E1-9FA2-40E3-8B74-2E8972DD6FE7), object, pointer_default(unique)] +interface ICoreWebView2WebResourceResponseViewGetContentCompletedHandler : IUnknown { + /// Provides the completion status and result of the corresponding + /// asynchronous method call. A failure `errorCode` will be passed if the + /// content failed to load. `E_ABORT` means the response loading was blocked + /// (e.g., by CORS policy); `ERROR_CANCELLED` means the response loading was + /// cancelled. `ERROR_NO_DATA` means the response has no content data, + /// `content` is `null` in this case. Note content (if any) is ignored for + /// redirects, 204 No Content, 205 Reset Content, and HEAD-request responses. + HRESULT Invoke([in] HRESULT errorCode, [in] IStream* content); +} + +/// Event args for the DOMContentLoaded event. +[uuid(16B1E21A-C503-44F2-84C9-70ABA5031283), object, pointer_default(unique)] +interface ICoreWebView2DOMContentLoadedEventArgs : IUnknown { + /// The ID of the navigation which corresponds to other navigation ID properties on other navigation events. + [propget] HRESULT NavigationId([out, retval] UINT64* navigationId); +} + +/// Receives `DOMContentLoaded` events. +[uuid(4BAC7E9C-199E-49ED-87ED-249303ACF019), object, pointer_default(unique)] +interface ICoreWebView2DOMContentLoadedEventHandler : IUnknown { + /// Provides the event args for the corresponding event. + HRESULT Invoke( + [in] ICoreWebView2* sender, + [in] ICoreWebView2DOMContentLoadedEventArgs* args); +} + +/// Provides a set of properties that are used to manage an +/// ICoreWebView2Cookie. +/// +/// \snippet ScenarioCookieManagement.cpp CookieObject +[uuid(AD26D6BE-1486-43E6-BF87-A2034006CA21), object, pointer_default(unique)] +interface ICoreWebView2Cookie : IUnknown { + /// Cookie name. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + [propget] HRESULT Name([out, retval] LPWSTR* name); + + /// Cookie value. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + [propget] HRESULT Value([out, retval] LPWSTR* value); + /// Set the cookie value property. + [propput] HRESULT Value([in] LPCWSTR value); + + /// The domain for which the cookie is valid. + /// The default is the host that this cookie has been received from. + /// Note that, for instance, ".bing.com", "bing.com", and "www.bing.com" are + /// considered different domains. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + [propget] HRESULT Domain([out, retval] LPWSTR* domain); + + /// The path for which the cookie is valid. The default is "/", which means + /// this cookie will be sent to all pages on the Domain. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + [propget] HRESULT Path([out, retval] LPWSTR* path); + + /// The expiration date and time for the cookie as the number of seconds since the UNIX epoch. + /// The default is -1.0, which means cookies are session cookies by default. + [propget] HRESULT Expires([out, retval] double* expires); + /// Set the Expires property. Cookies are session cookies and will not be + /// persistent if Expires is set to -1.0. NaN, infinity, and any negative + /// value set other than -1.0 is disallowed. + [propput] HRESULT Expires([in] double expires); + + /// Whether this cookie is http-only. + /// True if a page script or other active content cannot access this + /// cookie. The default is false. + [propget] HRESULT IsHttpOnly([out, retval] BOOL* isHttpOnly); + /// Set the IsHttpOnly property. + [propput] HRESULT IsHttpOnly([in] BOOL isHttpOnly); + + /// SameSite status of the cookie which represents the enforcement mode of the cookie. + /// The default is COREWEBVIEW2_COOKIE_SAME_SITE_KIND_LAX. + [propget] HRESULT SameSite([out, retval] COREWEBVIEW2_COOKIE_SAME_SITE_KIND* sameSite); + /// Set the SameSite property. + [propput] HRESULT SameSite([in] COREWEBVIEW2_COOKIE_SAME_SITE_KIND sameSite); + + /// The security level of this cookie. True if the client is only to return + /// the cookie in subsequent requests if those requests use HTTPS. + /// The default is false. + /// Note that cookie that requests COREWEBVIEW2_COOKIE_SAME_SITE_KIND_NONE but + /// is not marked Secure will be rejected. + [propget] HRESULT IsSecure([out, retval] BOOL* isSecure); + /// Set the IsSecure property. + [propput] HRESULT IsSecure([in] BOOL isSecure); + + /// Whether this is a session cookie. The default is false. + [propget] HRESULT IsSession([out, retval] BOOL* isSession); +} + +/// Creates, adds or updates, gets, or or view the cookies. The changes would +/// apply to the context of the user profile. That is, other WebViews under the +/// same user profile could be affected. +[uuid(177CD9E7-B6F5-451A-94A0-5D7A3A4C4141), object, pointer_default(unique)] +interface ICoreWebView2CookieManager : IUnknown { + /// Create a cookie object with a specified name, value, domain, and path. + /// One can set other optional properties after cookie creation. + /// This only creates a cookie object and it is not added to the cookie + /// manager until you call AddOrUpdateCookie. + /// Leading or trailing whitespace(s), empty string, and special characters + /// are not allowed for name. + /// See ICoreWebView2Cookie for more details. + HRESULT CreateCookie( + [in] LPCWSTR name, + [in] LPCWSTR value, + [in] LPCWSTR domain, + [in] LPCWSTR path, + [out, retval] ICoreWebView2Cookie** cookie); + + /// Creates a cookie whose params matches those of the specified cookie. + HRESULT CopyCookie( + [in] ICoreWebView2Cookie* cookieParam, + [out, retval] ICoreWebView2Cookie** cookie); + + /// Gets a list of cookies matching the specific URI. + /// If uri is empty string or null, all cookies under the same profile are + /// returned. + /// You can modify the cookie objects by calling + /// ICoreWebView2CookieManager::AddOrUpdateCookie, and the changes + /// will be applied to the webview. + /// \snippet ScenarioCookieManagement.cpp GetCookies + HRESULT GetCookies( + [in] LPCWSTR uri, + [in] ICoreWebView2GetCookiesCompletedHandler* handler); + + /// Adds or updates a cookie with the given cookie data; may overwrite + /// cookies with matching name, domain, and path if they exist. + /// This method will fail if the domain of the given cookie is not specified. + /// \snippet ScenarioCookieManagement.cpp AddOrUpdateCookie + HRESULT AddOrUpdateCookie([in] ICoreWebView2Cookie* cookie); + + /// Deletes a cookie whose name and domain/path pair + /// match those of the specified cookie. + HRESULT DeleteCookie([in] ICoreWebView2Cookie* cookie); + + /// Deletes cookies with matching name and uri. + /// Cookie name is required. + /// All cookies with the given name where domain + /// and path match provided URI are deleted. + HRESULT DeleteCookies([in] LPCWSTR name, [in] LPCWSTR uri); + + /// Deletes cookies with matching name and domain/path pair. + /// Cookie name is required. + /// If domain is specified, deletes only cookies with the exact domain. + /// If path is specified, deletes only cookies with the exact path. + HRESULT DeleteCookiesWithDomainAndPath([in] LPCWSTR name, [in] LPCWSTR domain, [in] LPCWSTR path); + + /// Deletes all cookies under the same profile. + /// This could affect other WebViews under the same user profile. + HRESULT DeleteAllCookies(); +} + +/// A list of cookie objects. See `ICoreWebView2Cookie`. +/// \snippet ScenarioCookieManagement.cpp GetCookies +[uuid(F7F6F714-5D2A-43C6-9503-346ECE02D186), object, pointer_default(unique)] +interface ICoreWebView2CookieList : IUnknown { + /// The number of cookies contained in the ICoreWebView2CookieList. + [propget] HRESULT Count([out, retval] UINT* count); + + /// Gets the cookie object at the given index. + HRESULT GetValueAtIndex([in] UINT index, [out, retval] ICoreWebView2Cookie** cookie); +} + +/// Receives the result of the `GetCookies` method. The result is written to +/// the cookie list provided in the `GetCookies` method call. +[uuid(5A4F5069-5C15-47C3-8646-F4DE1C116670), object, pointer_default(unique)] +interface ICoreWebView2GetCookiesCompletedHandler : IUnknown { + /// Provides the completion status of the corresponding asynchronous method + /// call. + HRESULT Invoke(HRESULT result, ICoreWebView2CookieList* cookieList); +} + +/// Provides access to the certificate metadata +[uuid(e7188076-bcc3-11eb-8529-0242ac130003), object, pointer_default(unique)] +interface ICoreWebView2ClientCertificate : IUnknown { + /// Subject of the certificate. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + [propget] HRESULT Subject([out, retval] LPWSTR* value); + /// Name of the certificate authority that issued the certificate. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + [propget] HRESULT Issuer([out, retval] LPWSTR* value); + /// The valid start date and time for the certificate as the number of seconds since + /// the UNIX epoch. + [propget] HRESULT ValidFrom([out, retval] double* value); + /// The valid expiration date and time for the certificate as the number of seconds since + /// the UNIX epoch. + [propget] HRESULT ValidTo([out, retval] double* value); + /// DER encoded serial number of the certificate. + /// Read more about DER at [RFC 7468 DER] + /// (https://tools.ietf.org/html/rfc7468#appendix-B). + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + [propget] HRESULT DerEncodedSerialNumber([out, retval] LPWSTR* value); + /// Display name for a certificate. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + [propget] HRESULT DisplayName([out, retval] LPWSTR* value); + /// PEM encoded data for the certificate. + /// Returns Base64 encoding of DER encoded certificate. + /// Read more about PEM at [RFC 1421 Privacy Enhanced Mail] + /// (https://tools.ietf.org/html/rfc1421). + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + HRESULT ToPemEncoding([out, retval] LPWSTR* pemEncodedData); + /// Collection of PEM encoded client certificate issuer chain. + /// In this collection first element is the current certificate followed by + /// intermediate1, intermediate2...intermediateN-1. Root certificate is the + /// last element in collection. + [propget] HRESULT PemEncodedIssuerCertificateChain([out, retval] + ICoreWebView2StringCollection** value); + /// Kind of a certificate (eg., smart card, pin, other). + [propget] HRESULT Kind([out, retval] + COREWEBVIEW2_CLIENT_CERTIFICATE_KIND* value); +} + +/// A collection of client certificate object. +[uuid(ef5674d2-bcc3-11eb-8529-0242ac130003), object, pointer_default(unique)] +interface ICoreWebView2ClientCertificateCollection : IUnknown { + /// The number of client certificates contained in the + /// ICoreWebView2ClientCertificateCollection. + [propget] HRESULT Count([out, retval] UINT* value); + /// Gets the certificate object at the given index. + HRESULT GetValueAtIndex([in] UINT index, + [out, retval] ICoreWebView2ClientCertificate** certificate); +} + +/// A collection of strings. +[uuid(f41f3f8a-bcc3-11eb-8529-0242ac130003), object, pointer_default(unique)] +interface ICoreWebView2StringCollection : IUnknown { + /// The number of strings contained in ICoreWebView2StringCollection. + [propget] HRESULT Count([out, retval] UINT* value); + + /// Gets the value at a given index. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + HRESULT GetValueAtIndex([in] UINT index, [out, retval] LPWSTR* value); +} + +/// An event handler for the `ClientCertificateRequested` event. +[uuid(d7175ba2-bcc3-11eb-8529-0242ac130003), object, pointer_default(unique)] +interface ICoreWebView2ClientCertificateRequestedEventHandler : IUnknown { + /// Provides the event args for the corresponding event. + HRESULT Invoke([in] ICoreWebView2* sender, + [in] ICoreWebView2ClientCertificateRequestedEventArgs* args); +} + +/// Event args for the `ClientCertificateRequested` event. +[uuid(bc59db28-bcc3-11eb-8529-0242ac130003), object, pointer_default(unique)] +interface ICoreWebView2ClientCertificateRequestedEventArgs : IUnknown { + /// Host name of the server that requested client certificate authentication. + /// Normalization rules applied to the hostname are: + /// * Convert to lowercase characters for ascii characters. + /// * Punycode is used for representing non ascii characters. + /// * Strip square brackets for IPV6 address. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + [propget] HRESULT Host([out, retval] LPWSTR* value); + + /// Port of the server that requested client certificate authentication. + [propget] HRESULT Port([out, retval] int* value); + + /// Returns true if the server that issued this request is an http proxy. + /// Returns false if the server is the origin server. + [propget] HRESULT IsProxy([out, retval] BOOL* value); + + /// Returns the `ICoreWebView2StringCollection`. + /// The collection contains distinguished names of certificate authorities + /// allowed by the server. + [propget] HRESULT AllowedCertificateAuthorities([out, retval] + ICoreWebView2StringCollection** value); + + /// Returns the `ICoreWebView2ClientCertificateCollection` when client + /// certificate authentication is requested. The collection contains mutually + /// trusted CA certificates. + [propget] HRESULT MutuallyTrustedCertificates([out, retval] + ICoreWebView2ClientCertificateCollection** value); + + /// Returns the selected certificate. + [propget] HRESULT SelectedCertificate([out, retval] + ICoreWebView2ClientCertificate** value); + + /// Sets the certificate to respond to the server. + [propput] HRESULT SelectedCertificate( + [in] ICoreWebView2ClientCertificate* value); + + /// You may set this flag to cancel the certificate selection. If canceled, + /// the request is aborted regardless of the `Handled` property. By default the + /// value is `FALSE`. + [propget] HRESULT Cancel([out, retval] BOOL* value); + + /// Sets the `Cancel` property. + [propput] HRESULT Cancel([in] BOOL value); + + /// You may set this flag to `TRUE` to respond to the server with or + /// without a certificate. If this flag is `TRUE` with a `SelectedCertificate` + /// it responds to the server with the selected certificate otherwise respond to the + /// server without a certificate. By default the value of `Handled` and `Cancel` are `FALSE` + /// and display default client certificate selection dialog prompt to allow the user to + /// choose a certificate. The `SelectedCertificate` is ignored unless `Handled` is set `TRUE`. + [propget] HRESULT Handled([out, retval] BOOL* value); + + /// Sets the `Handled` property. + [propput] HRESULT Handled([in] BOOL value); + + /// Returns an `ICoreWebView2Deferral` object. Use this operation to + /// complete the event at a later time. + HRESULT GetDeferral([out, retval] ICoreWebView2Deferral** deferral); +} + +/// This mostly represents a combined win32 +/// POINTER_INFO/POINTER_TOUCH_INFO/POINTER_PEN_INFO object. It takes fields +/// from all three and excludes some win32 specific data types like HWND and +/// HANDLE. Note, sourceDevice is taken out but we expect the PointerDeviceRect +/// and DisplayRect to cover the existing use cases of sourceDevice. +/// Another big difference is that any of the point or rect locations are +/// expected to be in WebView physical coordinates. That is, coordinates +/// relative to the WebView and no DPI scaling applied. +// +// The PointerId, PointerFlags, ButtonChangeKind, PenFlags, PenMask, TouchFlags, +// and TouchMask are all #defined flags or enums in the +// POINTER_INFO/POINTER_TOUCH_INFO/POINTER_PEN_INFO structure. We define those +// properties here as UINT32 or INT32 and expect the developer to know how to +// populate those values based on the Windows definitions. +[uuid(e6995887-d10d-4f5d-9359-4ce46e4f96b9), object, pointer_default(unique)] +interface ICoreWebView2PointerInfo : IUnknown { + /// Get the PointerKind of the pointer event. This corresponds to the + /// pointerKind property of the POINTER_INFO struct. The values are defined by + /// the POINTER_INPUT_KIND enum in the Windows SDK (winuser.h). Supports + /// PT_PEN and PT_TOUCH. + [propget] HRESULT PointerKind([out, retval] DWORD* pointerKind); + /// Set the PointerKind of the pointer event. This corresponds to the + /// pointerKind property of the POINTER_INFO struct. The values are defined by + /// the POINTER_INPUT_KIND enum in the Windows SDK (winuser.h). Supports + /// PT_PEN and PT_TOUCH. + [propput] HRESULT PointerKind([in] DWORD pointerKind); + + /// Get the PointerId of the pointer event. This corresponds to the pointerId + /// property of the POINTER_INFO struct as defined in the Windows SDK + /// (winuser.h). + [propget] HRESULT PointerId([out, retval] UINT32* pointerId); + /// Set the PointerId of the pointer event. This corresponds to the pointerId + /// property of the POINTER_INFO struct as defined in the Windows SDK + /// (winuser.h). + [propput] HRESULT PointerId([in] UINT32 pointerId); + + /// Get the FrameID of the pointer event. This corresponds to the frameId + /// property of the POINTER_INFO struct as defined in the Windows SDK + /// (winuser.h). + [propget] HRESULT FrameId([out, retval] UINT32* frameId); + /// Set the FrameID of the pointer event. This corresponds to the frameId + /// property of the POINTER_INFO struct as defined in the Windows SDK + /// (winuser.h). + [propput] HRESULT FrameId([in] UINT32 frameId); + + /// Get the PointerFlags of the pointer event. This corresponds to the + /// pointerFlags property of the POINTER_INFO struct. The values are defined + /// by the POINTER_FLAGS constants in the Windows SDK (winuser.h). + [propget] HRESULT PointerFlags([out, retval] UINT32* pointerFlags); + /// Set the PointerFlags of the pointer event. This corresponds to the + /// pointerFlags property of the POINTER_INFO struct. The values are defined + /// by the POINTER_FLAGS constants in the Windows SDK (winuser.h). + [propput] HRESULT PointerFlags([in] UINT32 pointerFlags); + + /// Get the PointerDeviceRect of the sourceDevice property of the + /// POINTER_INFO struct as defined in the Windows SDK (winuser.h). + [propget] HRESULT PointerDeviceRect([out, retval] RECT* pointerDeviceRect); + /// Set the PointerDeviceRect of the sourceDevice property of the + /// POINTER_INFO struct as defined in the Windows SDK (winuser.h). + [propput] HRESULT PointerDeviceRect([in] RECT pointerDeviceRect); + + /// Get the DisplayRect of the sourceDevice property of the POINTER_INFO + /// struct as defined in the Windows SDK (winuser.h). + [propget] HRESULT DisplayRect([out, retval] RECT* displayRect); + /// Set the DisplayRect of the sourceDevice property of the POINTER_INFO + /// struct as defined in the Windows SDK (winuser.h). + [propput] HRESULT DisplayRect([in] RECT displayRect); + + /// Get the PixelLocation of the pointer event. This corresponds to the + /// ptPixelLocation property of the POINTER_INFO struct as defined in the + /// Windows SDK (winuser.h). + [propget] HRESULT PixelLocation([out, retval] POINT* pixelLocation); + /// Set the PixelLocation of the pointer event. This corresponds to the + /// ptPixelLocation property of the POINTER_INFO struct as defined in the + /// Windows SDK (winuser.h). + [propput] HRESULT PixelLocation([in] POINT pixelLocation); + + /// Get the HimetricLocation of the pointer event. This corresponds to the + /// ptHimetricLocation property of the POINTER_INFO struct as defined in the + /// Windows SDK (winuser.h). + [propget] HRESULT HimetricLocation([out, retval] POINT* himetricLocation); + /// Set the HimetricLocation of the pointer event. This corresponds to the + /// ptHimetricLocation property of the POINTER_INFO struct as defined in the + /// Windows SDK (winuser.h). + [propput] HRESULT HimetricLocation([in] POINT himetricLocation); + + /// Get the PixelLocationRaw of the pointer event. This corresponds to the + /// ptPixelLocationRaw property of the POINTER_INFO struct as defined in the + /// Windows SDK (winuser.h). + [propget] HRESULT PixelLocationRaw([out, retval] POINT* pixelLocationRaw); + /// Set the PixelLocationRaw of the pointer event. This corresponds to the + /// ptPixelLocationRaw property of the POINTER_INFO struct as defined in the + /// Windows SDK (winuser.h). + [propput] HRESULT PixelLocationRaw([in] POINT pixelLocationRaw); + + /// Get the HimetricLocationRaw of the pointer event. This corresponds to the + /// ptHimetricLocationRaw property of the POINTER_INFO struct as defined in + /// the Windows SDK (winuser.h). + [propget] HRESULT HimetricLocationRaw([out, retval] POINT* himetricLocationRaw); + /// Set the HimetricLocationRaw of the pointer event. This corresponds to the + /// ptHimetricLocationRaw property of the POINTER_INFO struct as defined in + /// the Windows SDK (winuser.h). + [propput] HRESULT HimetricLocationRaw([in] POINT himetricLocationRaw); + + /// Get the Time of the pointer event. This corresponds to the dwTime property + /// of the POINTER_INFO struct as defined in the Windows SDK (winuser.h). + [propget] HRESULT Time([out, retval] DWORD* time); + /// Set the Time of the pointer event. This corresponds to the dwTime property + /// of the POINTER_INFO struct as defined in the Windows SDK (winuser.h). + [propput] HRESULT Time([in] DWORD time); + + /// Get the HistoryCount of the pointer event. This corresponds to the + /// historyCount property of the POINTER_INFO struct as defined in the Windows + /// SDK (winuser.h). + [propget] HRESULT HistoryCount([out, retval] UINT32* historyCount); + /// Set the HistoryCount of the pointer event. This corresponds to the + /// historyCount property of the POINTER_INFO struct as defined in the Windows + /// SDK (winuser.h). + [propput] HRESULT HistoryCount([in] UINT32 historyCount); + + /// Get the InputData of the pointer event. This corresponds to the InputData + /// property of the POINTER_INFO struct as defined in the Windows SDK + /// (winuser.h). + [propget] HRESULT InputData([out, retval] INT32* inputData); + /// Set the InputData of the pointer event. This corresponds to the InputData + /// property of the POINTER_INFO struct as defined in the Windows SDK + /// (winuser.h). + [propput] HRESULT InputData([in] INT32 inputData); + + /// Get the KeyStates of the pointer event. This corresponds to the + /// dwKeyStates property of the POINTER_INFO struct as defined in the Windows + /// SDK (winuser.h). + [propget] HRESULT KeyStates([out, retval] DWORD* keyStates); + /// Set the KeyStates of the pointer event. This corresponds to the + /// dwKeyStates property of the POINTER_INFO struct as defined in the Windows + /// SDK (winuser.h). + [propput] HRESULT KeyStates([in] DWORD keyStates); + + /// Get the PerformanceCount of the pointer event. This corresponds to the + /// PerformanceCount property of the POINTER_INFO struct as defined in the + /// Windows SDK (winuser.h). + [propget] HRESULT PerformanceCount([out, retval] UINT64* performanceCount); + /// Set the PerformanceCount of the pointer event. This corresponds to the + /// PerformanceCount property of the POINTER_INFO struct as defined in the + /// Windows SDK (winuser.h). + [propput] HRESULT PerformanceCount([in] UINT64 performanceCount); + + /// Get the ButtonChangeKind of the pointer event. This corresponds to the + /// ButtonChangeKind property of the POINTER_INFO struct. The values are + /// defined by the POINTER_BUTTON_CHANGE_KIND enum in the Windows SDK + /// (winuser.h). + [propget] HRESULT ButtonChangeKind([out, retval] INT32* buttonChangeKind); + /// Set the ButtonChangeKind of the pointer event. This corresponds to the + /// ButtonChangeKind property of the POINTER_INFO struct. The values are + /// defined by the POINTER_BUTTON_CHANGE_KIND enum in the Windows SDK + /// (winuser.h). + [propput] HRESULT ButtonChangeKind([in] INT32 buttonChangeKind); + + // Pen specific attributes + + /// Get the PenFlags of the pointer event. This corresponds to the penFlags + /// property of the POINTER_PEN_INFO struct. The values are defined by the + /// PEN_FLAGS constants in the Windows SDK (winuser.h). + [propget] HRESULT PenFlags([out, retval] UINT32* penFLags); + /// Set the PenFlags of the pointer event. This corresponds to the penFlags + /// property of the POINTER_PEN_INFO struct. The values are defined by the + /// PEN_FLAGS constants in the Windows SDK (winuser.h). + [propput] HRESULT PenFlags([in] UINT32 penFLags); + + /// Get the PenMask of the pointer event. This corresponds to the penMask + /// property of the POINTER_PEN_INFO struct. The values are defined by the + /// PEN_MASK constants in the Windows SDK (winuser.h). + [propget] HRESULT PenMask([out, retval] UINT32* penMask); + /// Set the PenMask of the pointer event. This corresponds to the penMask + /// property of the POINTER_PEN_INFO struct. The values are defined by the + /// PEN_MASK constants in the Windows SDK (winuser.h). + [propput] HRESULT PenMask([in] UINT32 penMask); + + /// Get the PenPressure of the pointer event. This corresponds to the pressure + /// property of the POINTER_PEN_INFO struct as defined in the Windows SDK + /// (winuser.h). + [propget] HRESULT PenPressure([out, retval] UINT32* penPressure); + /// Set the PenPressure of the pointer event. This corresponds to the pressure + /// property of the POINTER_PEN_INFO struct as defined in the Windows SDK + /// (winuser.h). + [propput] HRESULT PenPressure([in] UINT32 penPressure); + + /// Get the PenRotation of the pointer event. This corresponds to the rotation + /// property of the POINTER_PEN_INFO struct as defined in the Windows SDK + /// (winuser.h). + [propget] HRESULT PenRotation([out, retval] UINT32* penRotation); + /// Set the PenRotation of the pointer event. This corresponds to the rotation + /// property of the POINTER_PEN_INFO struct as defined in the Windows SDK + /// (winuser.h). + [propput] HRESULT PenRotation([in] UINT32 penRotation); + + /// Get the PenTiltX of the pointer event. This corresponds to the tiltX + /// property of the POINTER_PEN_INFO struct as defined in the Windows SDK + /// (winuser.h). + [propget] HRESULT PenTiltX([out, retval] INT32* penTiltX); + /// Set the PenTiltX of the pointer event. This corresponds to the tiltX + /// property of the POINTER_PEN_INFO struct as defined in the Windows SDK + /// (winuser.h). + [propput] HRESULT PenTiltX([in] INT32 penTiltX); + + /// Get the PenTiltY of the pointer event. This corresponds to the tiltY + /// property of the POINTER_PEN_INFO struct as defined in the Windows SDK + /// (winuser.h). + [propget] HRESULT PenTiltY([out, retval] INT32* penTiltY); + /// Set the PenTiltY of the pointer event. This corresponds to the tiltY + /// property of the POINTER_PEN_INFO struct as defined in the Windows SDK + /// (winuser.h). + [propput] HRESULT PenTiltY([in] INT32 penTiltY); + + // Touch specific attributes + + /// Get the TouchFlags of the pointer event. This corresponds to the + /// touchFlags property of the POINTER_TOUCH_INFO struct. The values are + /// defined by the TOUCH_FLAGS constants in the Windows SDK (winuser.h). + [propget] HRESULT TouchFlags([out, retval] UINT32* touchFlags); + /// Set the TouchFlags of the pointer event. This corresponds to the + /// touchFlags property of the POINTER_TOUCH_INFO struct. The values are + /// defined by the TOUCH_FLAGS constants in the Windows SDK (winuser.h). + [propput] HRESULT TouchFlags([in] UINT32 touchFlags); + + /// Get the TouchMask of the pointer event. This corresponds to the + /// touchMask property of the POINTER_TOUCH_INFO struct. The values are + /// defined by the TOUCH_MASK constants in the Windows SDK (winuser.h). + [propget] HRESULT TouchMask([out, retval] UINT32* touchMask); + /// Set the TouchMask of the pointer event. This corresponds to the + /// touchMask property of the POINTER_TOUCH_INFO struct. The values are + /// defined by the TOUCH_MASK constants in the Windows SDK (winuser.h). + [propput] HRESULT TouchMask([in] UINT32 touchMask); + + /// Get the TouchContact of the pointer event. This corresponds to the + /// rcContact property of the POINTER_TOUCH_INFO struct as defined in the + /// Windows SDK (winuser.h). + [propget] HRESULT TouchContact([out, retval] RECT* touchContact); + /// Set the TouchContact of the pointer event. This corresponds to the + /// rcContact property of the POINTER_TOUCH_INFO struct as defined in the + /// Windows SDK (winuser.h). + [propput] HRESULT TouchContact([in] RECT touchContact); + + /// Get the TouchContactRaw of the pointer event. This corresponds to the + /// rcContactRaw property of the POINTER_TOUCH_INFO struct as defined in the + /// Windows SDK (winuser.h). + [propget] HRESULT TouchContactRaw([out, retval] RECT* touchContactRaw); + /// Set the TouchContactRaw of the pointer event. This corresponds to the + /// rcContactRaw property of the POINTER_TOUCH_INFO struct as defined in the + /// Windows SDK (winuser.h). + [propput] HRESULT TouchContactRaw([in] RECT touchContactRaw); + + /// Get the TouchOrientation of the pointer event. This corresponds to the + /// orientation property of the POINTER_TOUCH_INFO struct as defined in the + /// Windows SDK (winuser.h). + [propget] HRESULT TouchOrientation([out, retval] UINT32* touchOrientation); + /// Set the TouchOrientation of the pointer event. This corresponds to the + /// orientation property of the POINTER_TOUCH_INFO struct as defined in the + /// Windows SDK (winuser.h). + [propput] HRESULT TouchOrientation([in] UINT32 touchOrientation); + + /// Get the TouchPressure of the pointer event. This corresponds to the + /// pressure property of the POINTER_TOUCH_INFO struct as defined in the + /// Windows SDK (winuser.h). + [propget] HRESULT TouchPressure([out, retval] UINT32* touchPressure); + /// Set the TouchPressure of the pointer event. This corresponds to the + /// pressure property of the POINTER_TOUCH_INFO struct as defined in the + /// Windows SDK (winuser.h). + [propput] HRESULT TouchPressure([in] UINT32 touchPressure); +} + +/// The caller implements this interface to receive CursorChanged events. Use +/// the Cursor property to get the new cursor. +[uuid(9da43ccc-26e1-4dad-b56c-d8961c94c571), object, pointer_default(unique)] +interface ICoreWebView2CursorChangedEventHandler : IUnknown { + /// Called to provide the implementer with the event args for the + /// corresponding event. There are no event args and the args + /// parameter will be null. + HRESULT Invoke([in] ICoreWebView2CompositionController* sender, [in] IUnknown* args); +} + +/// Receives `RasterizationScaleChanged` events. Use the `RasterizationScale` +/// property to get the modified scale. + +[uuid(9c98c8b1-ac53-427e-a345-3049b5524bbe), object, pointer_default(unique)] +interface ICoreWebView2RasterizationScaleChangedEventHandler : IUnknown { + /// Called to provide the implementer with the event args for the + /// corresponding event. There are no event args and the args + /// parameter will be null. + HRESULT Invoke( + [in] ICoreWebView2Controller* sender, + [in] IUnknown* args); +} + +/// Represents the WebView2 Environment. WebViews created from an environment +/// run on the browser process specified with environment parameters and +/// objects created from an environment should be used in the same +/// environment. Using it in different environments are not guaranteed to be +/// compatible and may fail. + +[uuid(b96d755e-0319-4e92-a296-23436f46a1fc), object, pointer_default(unique)] +interface ICoreWebView2Environment : IUnknown { + + /// Asynchronously create a new WebView. + /// + /// `parentWindow` is the `HWND` in which the WebView should be displayed and + /// from which receive input. The WebView adds a child window to the + /// provided window before this function returns. Z-order and other things + /// impacted by sibling window order are affected accordingly. If you want to + /// move the WebView to a different parent after it has been created, you must + /// call put_ParentWindow to update tooltip positions, accessibility trees, + /// and such. + /// + /// HWND_MESSAGE is a valid parameter for `parentWindow` for an invisible + /// WebView for Windows 8 and above. In this case the window will never + /// become visible. You are not able to reparent the window after you have + /// created the WebView. This is not supported in Windows 7 or below. + /// Passing this parameter in Windows 7 or below will return + /// ERROR_INVALID_WINDOW_HANDLE in the controller callback. + /// + /// It is recommended that the app set Application User Model ID for the + /// process or the app window. If none is set, during WebView creation a + /// generated Application User Model ID is set to root window of + /// `parentWindow`. + /// + /// \snippet AppWindow.cpp CreateCoreWebView2Controller + /// + /// It is recommended that the app handles restart manager messages, to + /// gracefully restart it in the case when the app is using the WebView2 + /// Runtime from a certain installation and that installation is being + /// uninstalled. For example, if a user installs a version of the WebView2 + /// Runtime and opts to use another version of the WebView2 Runtime for + /// testing the app, and then uninstalls the 1st version of the WebView2 + /// Runtime without closing the app, the app restarts to allow + /// un-installation to succeed. + /// + /// \snippet AppWindow.cpp RestartManager + /// + /// The app should retry `CreateCoreWebView2Controller` upon failure, unless the + /// error code is `HRESULT_FROM_WIN32(ERROR_INVALID_STATE)`. + /// When the app retries `CreateCoreWebView2Controller` upon failure, it is + /// recommended that the app restarts from creating a new WebView2 + /// Environment. If a WebView2 Runtime update happens, the version + /// associated with a WebView2 Environment may have been removed and causing + /// the object to no longer work. Creating a new WebView2 Environment works + /// since it uses the latest version. + /// + /// WebView creation fails with `HRESULT_FROM_WIN32(ERROR_INVALID_STATE)` if a + /// running instance using the same user data folder exists, and the Environment + /// objects have different `EnvironmentOptions`. For example, if a WebView was + /// created with one language, an attempt to create a WebView with a different + /// language using the same user data folder will fail. + /// + /// The creation will fail with `E_ABORT` if `parentWindow` is destroyed + /// before the creation is finished. If this is caused by a call to + /// `DestroyWindow`, the creation completed handler will be invoked before + /// `DestroyWindow` returns, so you can use this to cancel creation and clean + /// up resources synchronously when quitting a thread. + + HRESULT CreateCoreWebView2Controller( + HWND parentWindow, + ICoreWebView2CreateCoreWebView2ControllerCompletedHandler* handler); + + /// Create a new web resource response object. The `headers` parameter is + /// the raw response header string delimited by newline. It is also possible + /// to create this object with null headers string and then use the + /// `ICoreWebView2HttpResponseHeaders` to construct the headers line by line. + /// For more information about other parameters, navigate to + /// [ICoreWebView2WebResourceResponse](/microsoft-edge/webview2/reference/win32/icorewebview2webresourceresponse). + /// + /// \snippet SettingsComponent.cpp WebResourceRequested0 + /// \snippet SettingsComponent.cpp WebResourceRequested1 + HRESULT CreateWebResourceResponse( + [in] IStream* content, + [in] int statusCode, + [in] LPCWSTR reasonPhrase, + [in] LPCWSTR headers, + [out, retval] ICoreWebView2WebResourceResponse** response); + + /// The browser version info of the current `ICoreWebView2Environment`, + /// including channel name if it is not the WebView2 Runtime. It matches the + /// format of the `GetAvailableCoreWebView2BrowserVersionString` API. + /// Channel names are `beta`, `dev`, and `canary`. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + /// + /// \snippet AppWindow.cpp GetBrowserVersionString + [propget] HRESULT BrowserVersionString([out, retval] LPWSTR* versionInfo); + + /// Add an event handler for the `NewBrowserVersionAvailable` event. + /// `NewBrowserVersionAvailable` runs when a newer version of the WebView2 + /// Runtime is installed and available using WebView2. To use the newer + /// version of the browser you must create a new environment and WebView. + /// The event only runs for new version from the same WebView2 Runtime from + /// which the code is running. When not running with installed WebView2 + /// Runtime, no event is run. + /// + /// Because a user data folder is only able to be used by one browser + /// process at a time, if you want to use the same user data folder in the + /// WebView using the new version of the browser, you must close the + /// environment and instance of WebView that are using the older version of + /// the browser first. Or simply prompt the user to restart the app. + /// + /// \snippet AppWindow.cpp NewBrowserVersionAvailable + HRESULT add_NewBrowserVersionAvailable( + [in] ICoreWebView2NewBrowserVersionAvailableEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with `add_NewBrowserVersionAvailable`. + HRESULT remove_NewBrowserVersionAvailable( + [in] EventRegistrationToken token); +} + +/// A continuation of the ICoreWebView2Environment interface. +[uuid(41F3632B-5EF4-404F-AD82-2D606C5A9A21), object, pointer_default(unique)] +interface ICoreWebView2Environment2 : ICoreWebView2Environment { + /// Create a new web resource request object. + /// URI parameter must be absolute URI. + /// The headers string is the raw request header string delimited by CRLF + /// (optional in last header). + /// It's also possible to create this object with null headers string + /// and then use the ICoreWebView2HttpRequestHeaders to construct the headers + /// line by line. + /// For information on other parameters see ICoreWebView2WebResourceRequest. + /// + /// \snippet ScenarioNavigateWithWebResourceRequest.cpp NavigateWithWebResourceRequest + HRESULT CreateWebResourceRequest([in] LPCWSTR uri, + [in] LPCWSTR method, + [in] IStream* postData, + [in] LPCWSTR headers, + [out, retval] ICoreWebView2WebResourceRequest** request); +} + +/// A continuation of the ICoreWebView2Environment2 interface. +[uuid(80a22ae3-be7c-4ce2-afe1-5a50056cdeeb), object, pointer_default(unique)] +interface ICoreWebView2Environment3 : ICoreWebView2Environment2 { + /// Asynchronously create a new WebView for use with visual hosting. + /// + /// parentWindow is the HWND in which the app will connect the visual tree of + /// the WebView. This will be the HWND that the app will receive pointer/ + /// mouse input meant for the WebView (and will need to use SendMouseInput/ + /// SendPointerInput to forward). If the app moves the WebView visual tree to + /// underneath a different window, then it needs to call put_ParentWindow to + /// update the new parent HWND of the visual tree. + /// + /// HWND_MESSAGE is not a valid parameter for `parentWindow` for visual hosting. + /// The underlying implementation of supporting HWND_MESSAGE would break + /// accessibility for visual hosting. This is supported in windowed + /// WebViews - see CreateCoreWebView2Controller. + /// + /// Use put_RootVisualTarget on the created CoreWebView2CompositionController to + /// provide a visual to host the browser's visual tree. + /// + /// It is recommended that the application set Application User Model ID for + /// the process or the application window. If none is set, during WebView + /// creation a generated Application User Model ID is set to root window of + /// parentWindow. + /// \snippet AppWindow.cpp CreateCoreWebView2Controller + /// + /// It is recommended that the application handles restart manager messages + /// so that it can be restarted gracefully in the case when the app is using + /// Edge for WebView from a certain installation and that installation is + /// being uninstalled. For example, if a user installs Edge from Dev channel + /// and opts to use Edge from that channel for testing the app, and then + /// uninstalls Edge from that channel without closing the app, the app will + /// be restarted to allow uninstallation of the dev channel to succeed. + /// \snippet AppWindow.cpp RestartManager + /// + /// The app should retry `CreateCoreWebView2CompositionController` upon failure, + /// unless the error code is `HRESULT_FROM_WIN32(ERROR_INVALID_STATE)`. + /// When the app retries `CreateCoreWebView2CompositionController` + /// upon failure, it is recommended that the app restarts from creating a new + /// WebView2 Environment. If a WebView2 Runtime update happens, the version + /// associated with a WebView2 Environment may have been removed and causing + /// the object to no longer work. Creating a new WebView2 Environment works + /// since it uses the latest version. + /// + /// WebView creation fails with `HRESULT_FROM_WIN32(ERROR_INVALID_STATE)` if a + /// running instance using the same user data folder exists, and the Environment + /// objects have different `EnvironmentOptions`. For example, if a WebView was + /// created with one language, an attempt to create a WebView with a different + /// language using the same user data folder will fail. + /// + /// The creation will fail with `E_ABORT` if `parentWindow` is destroyed + /// before the creation is finished. If this is caused by a call to + /// `DestroyWindow`, the creation completed handler will be invoked before + /// `DestroyWindow` returns, so you can use this to cancel creation and clean + /// up resources synchronously when quitting a thread. + /// + /// CreateCoreWebView2CompositionController is supported in the following versions of Windows: + /// + /// - Windows 11 + /// - Windows 10 + /// - Windows Server 2019 + /// - Windows Server 2016 + /// + HRESULT CreateCoreWebView2CompositionController( + HWND parentWindow, + ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler* handler); + + /// Create an empty ICoreWebView2PointerInfo. The returned + /// ICoreWebView2PointerInfo needs to be populated with all of the relevant + /// info before calling SendPointerInput. + HRESULT CreateCoreWebView2PointerInfo( + [out, retval] ICoreWebView2PointerInfo** pointerInfo); +} + +/// A continuation of the ICoreWebView2Environment3 interface. +[uuid(20944379-6dcf-41d6-a0a0-abc0fc50de0d), object, pointer_default(unique)] +interface ICoreWebView2Environment4 : ICoreWebView2Environment3 { + /// Returns the Automation Provider for the WebView that matches the provided + /// window. Host apps are expected to implement + /// IRawElementProviderHwndOverride. When GetOverrideProviderForHwnd is + /// called, the app can pass the HWND to GetAutomationProviderForWindow to + /// find the matching WebView Automation Provider. + HRESULT GetAutomationProviderForWindow([in] HWND hwnd, + [out, retval] IUnknown** provider); +} + +/// A continuation of the `ICoreWebView2Environment4` interface that supports +/// the `BrowserProcessExited` event. +[uuid(319e423d-e0d7-4b8d-9254-ae9475de9b17), object, pointer_default(unique)] +interface ICoreWebView2Environment5 : ICoreWebView2Environment4 { + /// Add an event handler for the `BrowserProcessExited` event. + /// The `BrowserProcessExited` event is raised when the collection of WebView2 + /// Runtime processes for the browser process of this environment terminate + /// due to browser process failure or normal shutdown (for example, when all + /// associated WebViews are closed), after all resources have been released + /// (including the user data folder). To learn about what these processes are, + /// go to [Process model](/microsoft-edge/webview2/concepts/process-model). + /// + /// A handler added with this method is called until removed with + /// `remove_BrowserProcessExited`, even if a new browser process is bound to + /// this environment after earlier `BrowserProcessExited` events are raised. + /// + /// Multiple app processes can share a browser process by creating their webviews + /// from a `ICoreWebView2Environment` with the same user data folder. When the entire + /// collection of WebView2Runtime processes for the browser process exit, all + /// associated `ICoreWebView2Environment` objects receive the `BrowserProcessExited` + /// event. Multiple processes sharing the same browser process need to coordinate + /// their use of the shared user data folder to avoid race conditions and + /// unnecessary waits. For example, one process should not clear the user data + /// folder at the same time that another process recovers from a crash by recreating + /// its WebView controls; one process should not block waiting for the event if + /// other app processes are using the same browser process (the browser process will + /// not exit until those other processes have closed their webviews too). + /// + /// Note this is an event from the `ICoreWebView2Environment3` interface, not + /// the `ICoreWebView2` one. The difference between `BrowserProcessExited` and + /// `ICoreWebView2`'s `ProcessFailed` is that `BrowserProcessExited` is + /// raised for any **browser process** exit (expected or unexpected, after all + /// associated processes have exited too), while `ProcessFailed` is raised for + /// **unexpected** process exits of any kind (browser, render, GPU, and all + /// other types), or for main frame **render process** unresponsiveness. To + /// learn more about the WebView2 Process Model, go to + /// [Process model](/microsoft-edge/webview2/concepts/process-model). + /// + /// In the case the browser process crashes, both `BrowserProcessExited` and + /// `ProcessFailed` events are raised, but the order is not guaranteed. These + /// events are intended for different scenarios. It is up to the app to + /// coordinate the handlers so they do not try to perform reliability recovery + /// while also trying to move to a new WebView2 Runtime version or remove the + /// user data folder. + /// + /// \snippet AppWindow.cpp Close + HRESULT add_BrowserProcessExited( + [in] ICoreWebView2BrowserProcessExitedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with `add_BrowserProcessExited`. + HRESULT remove_BrowserProcessExited([in] EventRegistrationToken token); +} + +/// This interface is an extension of the ICoreWebView2Environment that supports +/// creating print settings for printing to PDF. +[uuid(e59ee362-acbd-4857-9a8e-d3644d9459a9), object, pointer_default(unique)] +interface ICoreWebView2Environment6 : ICoreWebView2Environment5 { + /// Creates the `ICoreWebView2lPrintSettings` used by the `PrintToPdf` + /// method. + HRESULT CreatePrintSettings( + [out, retval] ICoreWebView2PrintSettings** printSettings); +} + +/// This interface is an extension of the ICoreWebView2Environment. An object +/// implementing the ICoreWebView2Environment7 interface will also +/// implement ICoreWebView2Environment. +[uuid(43C22296-3BBD-43A4-9C00-5C0DF6DD29A2), object, pointer_default(unique)] +interface ICoreWebView2Environment7 : ICoreWebView2Environment6 { + /// Returns the user data folder that all CoreWebView2's created from this + /// environment are using. + /// This could be either the value passed in by the developer when creating + /// the environment object or the calculated one for default handling. It + /// will always be an absolute path. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + /// + /// \snippet AppWindow.cpp GetUserDataFolder + [propget] HRESULT UserDataFolder([ out, retval ] LPWSTR * value); +} + +/// A continuation of the `ICoreWebView2Environment7` interface that supports +/// the `ProcessInfosChanged` event. +[uuid(D6EB91DD-C3D2-45E5-BD29-6DC2BC4DE9CF), object, pointer_default(unique)] +interface ICoreWebView2Environment8 : ICoreWebView2Environment7 { + /// Adds an event handler for the `ProcessInfosChanged` event. + /// + /// \snippet ProcessComponent.cpp ProcessInfosChanged + /// \snippet ProcessComponent.cpp ProcessInfosChanged1 + HRESULT add_ProcessInfosChanged( + [in] ICoreWebView2ProcessInfosChangedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with `add_ProcessInfosChanged`. + HRESULT remove_ProcessInfosChanged( + [in] EventRegistrationToken token); + + /// Returns the `ICoreWebView2ProcessInfoCollection` + /// Provide a list of all process using same user data folder except for crashpad process. + HRESULT GetProcessInfos([out, retval]ICoreWebView2ProcessInfoCollection** value); +} + +/// Provides a set of properties for a process in the `ICoreWebView2Environment`. +[uuid(84FA7612-3F3D-4FBF-889D-FAD000492D72), object, pointer_default(unique)] +interface ICoreWebView2ProcessInfo : IUnknown { + + /// The process id of the process. + [propget] HRESULT ProcessId([out, retval] INT32* value); + + /// The kind of the process. + [propget] HRESULT Kind([out, retval] COREWEBVIEW2_PROCESS_KIND* kind); +} + +/// A continuation of the ICoreWebView2Environment interface for +/// creating CoreWebView2 ContextMenuItem objects. +[uuid(f06f41bf-4b5a-49d8-b9f6-fa16cd29f274), object, pointer_default(unique)] +interface ICoreWebView2Environment9 : ICoreWebView2Environment8 { + /// Create a custom `ContextMenuItem` object to insert into the WebView context menu. + /// CoreWebView2 will rewind the icon stream before decoding. + /// There is a limit of 1000 active custom context menu items at a given time. + /// Attempting to create more before deleting existing ones will fail with + /// ERROR_NOT_ENOUGH_QUOTA. + /// It is recommended to reuse ContextMenuItems across ContextMenuRequested events + /// for performance. + /// The returned ContextMenuItem object's `IsEnabled` property will default to `TRUE` + /// and `IsChecked` property will default to `FALSE`. A `CommandId` will be assigned + /// to the ContextMenuItem object that's unique across active custom context menu items, + /// but command ID values of deleted ContextMenuItems can be reassigned. + HRESULT CreateContextMenuItem( + [in] LPCWSTR label, + [in] IStream* iconStream, + [in] COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND kind, + [out, retval] ICoreWebView2ContextMenuItem** item); +} + +/// This interface is used to create `ICoreWebView2ControllerOptions` object, which +/// can be passed as a parameter in `CreateCoreWebView2ControllerWithOptions` and +/// `CreateCoreWebView2CompositionControllerWithOptions` function for multiple profiles support. +/// The profile will be created on disk or opened when calling `CreateCoreWebView2ControllerWithOptions` or +/// `CreateCoreWebView2CompositionControllerWithOptions` no matter InPrivate mode is enabled or not, and +/// it will be released in memory when the corresponding controller is closed but still remain on disk. +/// If you create a WebView2Controller with {ProfileName="name", InPrivate=false} and then later create another +/// one with {ProfileName="name", InPrivate=true}, these two controllers using the same profile would be allowed to +/// run at the same time. +/// As WebView2 is built on top of Edge browser, it follows Edge's behavior pattern. To create an InPrivate WebView, +/// we gets an off-the-record profile (an InPrivate profile) from a regular profile, then create the WebView with the +/// off-the-record profile. +/// +/// \snippet AppWindow.cpp CreateControllerWithOptions +[uuid(ee0eb9df-6f12-46ce-b53f-3f47b9c928e0), object, pointer_default(unique)] +interface ICoreWebView2Environment10 : ICoreWebView2Environment9 { + /// Create a new ICoreWebView2ControllerOptions to be passed as a parameter of + /// CreateCoreWebView2ControllerWithOptions and CreateCoreWebView2CompositionControllerWithOptions. + /// The 'options' is settable and in it the default value for profile name is the empty string, + /// and the default value for IsInPrivateModeEnabled is false. + /// Also the profile name can be reused. + HRESULT CreateCoreWebView2ControllerOptions( + [out, retval] ICoreWebView2ControllerOptions** options); + + /// Create a new WebView with options. + HRESULT CreateCoreWebView2ControllerWithOptions( + [in] HWND parentWindow, + [in] ICoreWebView2ControllerOptions* options, + [in] ICoreWebView2CreateCoreWebView2ControllerCompletedHandler* handler); + + /// Create a new WebView in visual hosting mode with options. + HRESULT CreateCoreWebView2CompositionControllerWithOptions( + [in] HWND parentWindow, + [in] ICoreWebView2ControllerOptions* options, + [in] ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler* handler); +} + +/// A list containing process id and corresponding process type. +[uuid(402B99CD-A0CC-4FA5-B7A5-51D86A1D2339), object, pointer_default(unique)] +interface ICoreWebView2ProcessInfoCollection : IUnknown { + /// The number of process contained in the ICoreWebView2ProcessInfoCollection. + [propget] HRESULT Count([out, retval] UINT* count); + + /// Gets the `ICoreWebView2ProcessInfo` located in the `ICoreWebView2ProcessInfoCollection` + /// at the given index. + HRESULT GetValueAtIndex([in] UINT32 index, + [out, retval] ICoreWebView2ProcessInfo** processInfo); +} + +/// An event handler for the `ProcessInfosChanged` event. +[uuid(F4AF0C39-44B9-40E9-8B11-0484CFB9E0A1), object, pointer_default(unique)] +interface ICoreWebView2ProcessInfosChangedEventHandler : IUnknown { + /// Provides the event args for the corresponding event. No event args exist + /// and the `args` parameter is set to `null`. + HRESULT Invoke([in] ICoreWebView2Environment* sender, [in] IUnknown* args); +} + +/// Options used to create WebView2 Environment. A default implementation is +/// provided in `WebView2EnvironmentOptions.h`. +/// +/// \snippet AppWindow.cpp CreateCoreWebView2EnvironmentWithOptions + +[uuid(2fde08a8-1e9a-4766-8c05-95a9ceb9d1c5), object, pointer_default(unique)] +interface ICoreWebView2EnvironmentOptions : IUnknown { + + /// Changes the behavior of the WebView. The arguments are passed to the + /// browser process as part of the command. For more information about + /// using command-line switches with Chromium browser processes, navigate to + /// [Run Chromium with Flags](https://www.chromium.org/developers/how-tos/run-chromium-with-flags). + /// The value appended to a switch is appended to the browser process, for + /// example, in `--edge-webview-switches=xxx` the value is `xxx`. If you + /// specify a switch that is important to WebView functionality, it is + /// ignored, for example, `--user-data-dir`. Specific features are disabled + /// internally and blocked from being enabled. If a switch is specified + /// multiple times, only the last instance is used. + /// + /// \> [!NOTE]\n\> A merge of the different values of the same switch is not attempted, + /// except for disabled and enabled features. The features specified by + /// `--enable-features` and `--disable-features` are merged with simple + /// logic.\n\> * The features is the union of the specified features + /// and built-in features. If a feature is disabled, it is removed from the + /// enabled features list. + /// + /// If you specify command-line switches and use the + /// `additionalBrowserArguments` parameter, the `--edge-webview-switches` + /// value takes precedence and is processed last. If a switch fails to + /// parse, the switch is ignored. The default state for the operation is + /// to run the browser process with no extra flags. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + [propget] HRESULT AdditionalBrowserArguments([out, retval] LPWSTR* value); + + /// Sets the `AdditionalBrowserArguments` property. + /// + /// Please note that calling this API twice will replace the previous value + /// rather than appending to it. If there are multiple switches, there + /// should be a space in between them. The one exception is if multiple + /// features are being enabled/disabled for a single switch, in which + /// case the features should be comma-seperated. + /// Ex. "--disable-features=feature1,feature2 --some-other-switch --do-something" + [propput] HRESULT AdditionalBrowserArguments([in] LPCWSTR value); + + /// The default display language for WebView. It applies to browser UI such as + /// context menu and dialogs. It also applies to the `accept-languages` HTTP + /// header that WebView sends to websites. It is in the format of + /// `language[-country]` where `language` is the 2-letter code from [ISO + /// 639](https://www.iso.org/iso-639-language-codes.html) and `country` is the + /// 2-letter code from [ISO 3166](https://www.iso.org/standard/72482.html). + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + [propget] HRESULT Language([out, retval] LPWSTR* value); + + /// Sets the `Language` property. + [propput] HRESULT Language([in] LPCWSTR value); + + /// Specifies the version of the WebView2 Runtime binaries required to be + /// compatible with your app. This defaults to the WebView2 Runtime version + /// that corresponds with the version of the SDK the app is using. The + /// format of this value is the same as the format of the + /// `BrowserVersionString` property and other `BrowserVersion` values. Only + /// the version part of the `BrowserVersion` value is respected. The channel + /// suffix, if it exists, is ignored. The version of the WebView2 Runtime + /// binaries actually used may be different from the specified + /// `TargetCompatibleBrowserVersion`. The binaries are only guaranteed to be + /// compatible. Verify the actual version on the `BrowserVersionString` + /// property on the `ICoreWebView2Environment`. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + [propget] HRESULT TargetCompatibleBrowserVersion([out, retval] LPWSTR* value); + + /// Sets the `TargetCompatibleBrowserVersion` property. + [propput] HRESULT TargetCompatibleBrowserVersion([in] LPCWSTR value); + + /// The `AllowSingleSignOnUsingOSPrimaryAccount` property is used to enable + /// single sign on with Azure Active Directory (AAD) and personal Microsoft + /// Account (MSA) resources inside WebView. All AAD accounts, connected to + /// Windows and shared for all apps, are supported. For MSA, SSO is only enabled + /// for the account associated for Windows account login, if any. + /// Default is disabled. Universal Windows Platform apps must also declare + /// `enterpriseCloudSSO` + /// [Restricted capabilities](/windows/uwp/packaging/app-capability-declarations\#restricted-capabilities) + /// for the single sign on (SSO) to work. + [propget] HRESULT AllowSingleSignOnUsingOSPrimaryAccount([out, retval] BOOL* allow); + + /// Sets the `AllowSingleSignOnUsingOSPrimaryAccount` property. + [propput] HRESULT AllowSingleSignOnUsingOSPrimaryAccount([in] BOOL allow); +} + +/// Additional options used to create WebView2 Environment. A default implementation is +/// provided in `WebView2EnvironmentOptions.h`. +/// +/// \snippet AppWindow.cpp CreateCoreWebView2EnvironmentWithOptions + +// Note: ICoreWebView2EnvironmentOptions* interfaces derive from IUnknown to make moving +// the API from experimental to public smoothier. These interfaces are mostly internal to +// WebView's own code. Normal apps just use the objects we provided and never interact +// with the interfaces. Advanced apps might implement their own options object. In that +// case, it is also easier for them to implement the interface if it is derived from IUnknown. +[uuid(FF85C98A-1BA7-4A6B-90C8-2B752C89E9E2), object, pointer_default(unique)] +interface ICoreWebView2EnvironmentOptions2 : IUnknown { + + /// Whether other processes can create WebView2 from WebView2Environment created with the + /// same user data folder and therefore sharing the same WebView browser process instance. + /// Default is FALSE. + [propget] HRESULT ExclusiveUserDataFolderAccess([out, retval] BOOL* value); + + /// Sets the `ExclusiveUserDataFolderAccess` property. + /// The `ExclusiveUserDataFolderAccess` property specifies that the WebView environment + /// obtains exclusive access to the user data folder. + /// If the user data folder is already being used by another WebView environment with a + /// different value for `ExclusiveUserDataFolderAccess` property, the creation of a WebView2Controller + /// using the environment object will fail with `HRESULT_FROM_WIN32(ERROR_INVALID_STATE)`. + /// When set as TRUE, no other WebView can be created from other processes using WebView2Environment + /// objects with the same UserDataFolder. This prevents other processes from creating WebViews + /// which share the same browser process instance, since sharing is performed among + /// WebViews that have the same UserDataFolder. When another process tries to create a + /// WebView2Controller from an WebView2Environment object created with the same user data folder, + /// it will fail with `HRESULT_FROM_WIN32(ERROR_INVALID_STATE)`. + [propput] HRESULT ExclusiveUserDataFolderAccess([in] BOOL value); +} + +/// Receives the `WebView2Environment` created using +/// `CreateCoreWebView2Environment`. +[uuid(4e8a3389-c9d8-4bd2-b6b5-124fee6cc14d), object, pointer_default(unique)] +interface ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler : IUnknown { + + /// Provides the completion status and result of the corresponding + /// asynchronous method. + + HRESULT Invoke(HRESULT errorCode, ICoreWebView2Environment* createdEnvironment); +} + +/// A Receiver is created for a particular DevTools Protocol event and allows +/// you to subscribe and unsubscribe from that event. Obtained from the +/// WebView object using `GetDevToolsProtocolEventReceiver`. +[uuid(b32ca51a-8371-45e9-9317-af021d080367), object, pointer_default(unique)] +interface ICoreWebView2DevToolsProtocolEventReceiver : IUnknown { + + /// Subscribe to a `DevToolsProtocol` event. The `Invoke` method of the + /// `handler` runs whenever the corresponding `DevToolsProtocol` event runs. + /// `Invoke` runs with an event args object containing the parameter object + /// of the DevTools Protocol event as a JSON string. + /// + /// \snippet ScriptComponent.cpp DevToolsProtocolEventReceived + + HRESULT add_DevToolsProtocolEventReceived( + [in] ICoreWebView2DevToolsProtocolEventReceivedEventHandler* handler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with + /// `add_DevToolsProtocolEventReceived`. + + HRESULT remove_DevToolsProtocolEventReceived( + [in] EventRegistrationToken token); + +} + +/// ICoreWebView2Frame provides direct access to the iframes information. +/// You can get an ICoreWebView2Frame by handling the ICoreWebView2_4::add_FrameCreated event. +[uuid(f1131a5e-9ba9-11eb-a8b3-0242ac130003), object, pointer_default(unique)] +interface ICoreWebView2Frame : IUnknown { + /// The name of the iframe from the iframe html tag declaring it. + /// You can access this property even if the iframe is destroyed. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + [propget] HRESULT Name([ out, retval ] LPWSTR * name); + /// Raised when the iframe changes its window.name property. + HRESULT add_NameChanged( + [in] ICoreWebView2FrameNameChangedEventHandler * eventHandler, + [out] EventRegistrationToken * token); + /// Remove an event handler previously added with add_NameChanged. + HRESULT remove_NameChanged([in] EventRegistrationToken token); + + /// Add the provided host object to script running in the iframe with the + /// specified name for the list of the specified origins. The host object + /// will be accessible for this iframe only if the iframe's origin during + /// access matches one of the origins which are passed. The provided origins + /// will be normalized before comparing to the origin of the document. + /// So the scheme name is made lower case, the host will be punycode decoded + /// as appropriate, default port values will be removed, and so on. + /// This means the origin's host may be punycode encoded or not and will match + /// regardless. If list contains malformed origin the call will fail. + /// The method can be called multiple times in a row without calling + /// RemoveHostObjectFromScript for the same object name. It will replace + /// the previous object with the new object and new list of origins. + /// List of origins will be treated as following: + /// 1. empty list - call will succeed and object will be added for the iframe + /// but it will not be exposed to any origin; + /// 2. list with origins - during access to host object from iframe the + /// origin will be checked that it belongs to this list; + /// 3. list with "*" element - host object will be available for iframe for + /// all origins. We suggest not to use this feature without understanding + /// security implications of giving access to host object from from iframes + /// with unknown origins. + /// Calling this method fails if it is called after the iframe is destroyed. + /// \snippet ScenarioAddHostObject.cpp AddHostObjectToScriptWithOrigins + /// For more information about host objects navigate to + /// ICoreWebView2::AddHostObjectToScript. + HRESULT AddHostObjectToScriptWithOrigins( + [in] LPCWSTR name, + [in] VARIANT * object, + [in] UINT32 originsCount, + [ in, size_is(originsCount) ] LPCWSTR * origins); + /// Remove the host object specified by the name so that it is no longer + /// accessible from JavaScript code in the iframe. While new access + /// attempts are denied, if the object is already obtained by JavaScript code + /// in the iframe, the JavaScript code continues to have access to that + /// object. Calling this method for a name that is already removed or was + /// never added fails. If the iframe is destroyed this method will return fail + /// also. + HRESULT RemoveHostObjectFromScript([in] LPCWSTR name); + + /// The Destroyed event is raised when the iframe corresponding + /// to this CoreWebView2Frame object is removed or the document + /// containing that iframe is destroyed. + HRESULT add_Destroyed( + [in] ICoreWebView2FrameDestroyedEventHandler * eventHandler, + [out] EventRegistrationToken * token); + /// Remove an event handler previously added with add_Destroyed. + HRESULT remove_Destroyed([in] EventRegistrationToken token); + /// Check whether a frame is destroyed. Returns true during + /// the Destroyed event. + HRESULT IsDestroyed([ out, retval ] BOOL * destroyed); +} + +/// A continuation of the ICoreWebView2Frame interface with navigation events, +/// executing script and posting web messages. +[uuid(7a6a5834-d185-4dbf-b63f-4a9bc43107d4), object, pointer_default(unique)] +interface ICoreWebView2Frame2 : ICoreWebView2Frame { + /// Add an event handler for the `NavigationStarting` event. + /// A frame navigation will raise a `NavigationStarting` event and + /// a `CoreWebView2.FrameNavigationStarting` event. All of the + /// `FrameNavigationStarting` event handlers for the current frame will be + /// run before the `NavigationStarting` event handlers. All of the event handlers + /// share a common `NavigationStartingEventArgs` object. Whichever event handler is + /// last to change the `NavigationStartingEventArgs.Cancel` property will + /// decide if the frame navigation will be cancelled. Redirects raise this + /// event as well, and the navigation id is the same as the original one. + /// + /// Navigations will be blocked until all `NavigationStarting` and + /// `CoreWebView2.FrameNavigationStarting` event handlers return. + HRESULT add_NavigationStarting( + [in] ICoreWebView2FrameNavigationStartingEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with `add_NavigationStarting`. + HRESULT remove_NavigationStarting( + [in] EventRegistrationToken token); + + /// Add an event handler for the `ContentLoading` event. `ContentLoading` + /// triggers before any content is loaded, including scripts added with + /// `AddScriptToExecuteOnDocumentCreated`. `ContentLoading` does not trigger + /// if a same page navigation occurs (such as through `fragment` + /// navigations or `history.pushState` navigations). This operation + /// follows the `NavigationStarting` and precedes `NavigationCompleted` events. + HRESULT add_ContentLoading( + [in] ICoreWebView2FrameContentLoadingEventHandler * eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with `add_ContentLoading`. + HRESULT remove_ContentLoading( + [in] EventRegistrationToken token); + + /// Add an event handler for the `NavigationCompleted` event. + /// `NavigationCompleted` runs when the CoreWebView2Frame has completely + /// loaded (concurrently when `body.onload` runs) or loading stopped with error. + HRESULT add_NavigationCompleted( + [in] ICoreWebView2FrameNavigationCompletedEventHandler * + eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with `add_NavigationCompleted`. + HRESULT remove_NavigationCompleted( + [in] EventRegistrationToken token); + + /// Add an event handler for the DOMContentLoaded event. + /// DOMContentLoaded is raised when the iframe html document has been parsed. + /// This aligns with the document's DOMContentLoaded event in html. + HRESULT add_DOMContentLoaded( + [in] ICoreWebView2FrameDOMContentLoadedEventHandler * eventHandler, + [out] EventRegistrationToken* token); + /// Remove an event handler previously added with add_DOMContentLoaded. + HRESULT remove_DOMContentLoaded( + [in] EventRegistrationToken token); + + /// Run JavaScript code from the javascript parameter in the current frame. + /// The result of evaluating the provided JavaScript is passed to the completion handler. + /// The result value is a JSON encoded string. If the result is undefined, + /// contains a reference cycle, or otherwise is not able to be encoded into + /// JSON, then the result is considered to be null, which is encoded + /// in JSON as the string "null". + /// + /// \> [!NOTE]\n\> A function that has no explicit return value returns undefined. If the + /// script that was run throws an unhandled exception, then the result is + /// also "null". This method is applied asynchronously. If the method is + /// run before `ContentLoading`, the script will not be executed + /// and the string "null" will be returned. + /// This operation executes the script even if `ICoreWebView2Settings::IsScriptEnabled` is + /// set to `FALSE`. + /// + /// \snippet ScenarioDOMContentLoaded.cpp ExecuteScriptFrame + HRESULT ExecuteScript( + [in] LPCWSTR javaScript, + [in] ICoreWebView2ExecuteScriptCompletedHandler* handler); + + /// Posts the specified webMessage to the frame. + /// The frame receives the message by subscribing to the `message` event of + /// the `window.chrome.webview` of the frame document. + /// + /// ```cpp + /// window.chrome.webview.addEventListener('message', handler) + /// window.chrome.webview.removeEventListener('message', handler) + /// ``` + /// + /// The event args is an instances of `MessageEvent`. The + /// `ICoreWebView2Settings::IsWebMessageEnabled` setting must be `TRUE` or + /// this method fails with `E_INVALIDARG`. The `data` property of the event + /// args is the `webMessage` string parameter parsed as a JSON string into a + /// JavaScript object. The `source` property of the event args is a reference + /// to the `window.chrome.webview` object. For information about sending + /// messages from the HTML document in the WebView to the host, navigate to + /// [add_WebMessageReceived](/microsoft-edge/webview2/reference/win32/icorewebview2#add_webmessagereceived). + /// The message is delivered asynchronously. If a navigation occurs before the + /// message is posted to the page, the message is discarded. + HRESULT PostWebMessageAsJson([in] LPCWSTR webMessageAsJson); + + /// Posts a message that is a simple string rather than a JSON string + /// representation of a JavaScript object. This behaves in exactly the same + /// manner as `PostWebMessageAsJson`, but the `data` property of the event + /// args of the `window.chrome.webview` message is a string with the same + /// value as `webMessageAsString`. Use this instead of + /// `PostWebMessageAsJson` if you want to communicate using simple strings + /// rather than JSON objects. + HRESULT PostWebMessageAsString([in] LPCWSTR webMessageAsString); + + /// Add an event handler for the `WebMessageReceived` event. + /// `WebMessageReceived` runs when the + /// `ICoreWebView2Settings::IsWebMessageEnabled` setting is set and the + /// frame document runs `window.chrome.webview.postMessage`. + /// The `postMessage` function is `void postMessage(object)` + /// where object is any object supported by JSON conversion. + /// + /// \snippet assets\ScenarioWebMessage.html chromeWebView + /// + /// When the frame calls `postMessage`, the object parameter is converted to a + /// JSON string and is posted asynchronously to the host process. This will + /// result in the handlers `Invoke` method being called with the JSON string + /// as its parameter. + /// + /// \snippet ScenarioWebMessage.cpp WebMessageReceivedIFrame + HRESULT add_WebMessageReceived( + [in] ICoreWebView2FrameWebMessageReceivedEventHandler * + handler, + [out] EventRegistrationToken * token); + + /// Remove an event handler previously added with `add_WebMessageReceived`. + HRESULT remove_WebMessageReceived([in] EventRegistrationToken token); +} + +/// Receives `FrameCreated` event. +[uuid(38059770-9baa-11eb-a8b3-0242ac130003), object, pointer_default(unique)] +interface ICoreWebView2FrameCreatedEventHandler : IUnknown { + /// Provides the result for the iframe created event. + HRESULT Invoke([in] ICoreWebView2 * sender, + [in] ICoreWebView2FrameCreatedEventArgs * args); +} + +/// Receives `FrameNameChanged` event. +[uuid(435c7dc8-9baa-11eb-a8b3-0242ac130003), object, pointer_default(unique)] +interface ICoreWebView2FrameNameChangedEventHandler : IUnknown { + /// Provides the result for the iframe name changed event. + /// No event args exist and the `args` parameter is set to `null`. + HRESULT Invoke([in] ICoreWebView2Frame * sender, [in] IUnknown * args); +} + +/// Receives `NavigationStarting` events for iframe. +[uuid(e79908bf-2d5d-4968-83db-263fea2c1da3), object, pointer_default(unique)] +interface ICoreWebView2FrameNavigationStartingEventHandler : IUnknown { + /// Provides the event args for the corresponding event. + HRESULT Invoke( + [in] ICoreWebView2Frame* sender, + [in] ICoreWebView2NavigationStartingEventArgs* args); +} + +/// Receives `ContentLoading` events for iframe. +[uuid(0d6156f2-d332-49a7-9e03-7d8f2feeee54), object, pointer_default(unique)] +interface ICoreWebView2FrameContentLoadingEventHandler : IUnknown { + /// Provides the event args for the corresponding event. + HRESULT Invoke( + [in] ICoreWebView2Frame* sender, + [in] ICoreWebView2ContentLoadingEventArgs* args); +} + +/// Receives `NavigationCompleted` events for iframe. +[uuid(609302ad-0e36-4f9a-a210-6a45272842a9), object, pointer_default(unique)] +interface ICoreWebView2FrameNavigationCompletedEventHandler : IUnknown { + /// Provides the event args for the corresponding event. + HRESULT Invoke( + [in] ICoreWebView2Frame* sender, + [in] ICoreWebView2NavigationCompletedEventArgs* args); +} + +/// Receives `DOMContentLoaded` events for iframe. +[uuid(38d9520d-340f-4d1e-a775-43fce9753683), object, pointer_default(unique)] +interface ICoreWebView2FrameDOMContentLoadedEventHandler : IUnknown { + /// Provides the event args for the corresponding event. + HRESULT Invoke( + [in] ICoreWebView2Frame* sender, + [in] ICoreWebView2DOMContentLoadedEventArgs* args); +} + +/// Receives `WebMessageReceived` events for iframe. +[uuid(e371e005-6d1d-4517-934b-a8f1629c62a5), object, pointer_default(unique)] +interface ICoreWebView2FrameWebMessageReceivedEventHandler : IUnknown { + /// Provides the event args for the corresponding event. + HRESULT Invoke( + [in] ICoreWebView2Frame* sender, + [in] ICoreWebView2WebMessageReceivedEventArgs* args); +} + +/// Event args for the `FrameCreated` events. +[uuid(4d6e7b5e-9baa-11eb-a8b3-0242ac130003), object, pointer_default(unique)] +interface ICoreWebView2FrameCreatedEventArgs : IUnknown { + /// The frame which was created. + [propget] HRESULT Frame([ out, retval ] ICoreWebView2Frame **frame); +} + +/// Receives `FrameDestroyed` event. +[uuid(59dd7b4c-9baa-11eb-a8b3-0242ac130003), object, pointer_default(unique)] +interface ICoreWebView2FrameDestroyedEventHandler : IUnknown { + /// Provides the result for the iframe destroyed event. + /// No event args exist and the `args` parameter is set to `null`. + HRESULT Invoke([in] ICoreWebView2Frame * sender, [in] IUnknown * args); +} + +/// Add an event handler for the `DownloadStarting` event. +[uuid(efedc989-c396-41ca-83f7-07f845a55724), object, pointer_default(unique)] +interface ICoreWebView2DownloadStartingEventHandler : IUnknown { + /// Provides the event args for the corresponding event. + HRESULT Invoke( + [in] ICoreWebView2* sender, + [in] ICoreWebView2DownloadStartingEventArgs* args); +} + +/// Event args for the `DownloadStarting` event. +[uuid(e99bbe21-43e9-4544-a732-282764eafa60), object, pointer_default(unique)] +interface ICoreWebView2DownloadStartingEventArgs : IUnknown { + /// Returns the `ICoreWebView2DownloadOperation` for the download that + /// has started. + [propget] HRESULT DownloadOperation( + [out, retval] ICoreWebView2DownloadOperation** downloadOperation); + + /// The host may set this flag to cancel the download. If canceled, the + /// download save dialog is not displayed regardless of the + /// `Handled` property. + [propget] HRESULT Cancel([out, retval] BOOL* cancel); + + /// Sets the `Cancel` property. + [propput] HRESULT Cancel([in] BOOL cancel); + + /// The path to the file. If setting the path, the host should ensure that it + /// is an absolute path, including the file name, and that the path does not + /// point to an existing file. If the path points to an existing file, the + /// file will be overwritten. If the directory does not exist, it is created. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + [propget] HRESULT ResultFilePath([out, retval] LPWSTR* resultFilePath); + + /// Sets the `ResultFilePath` property. + [propput] HRESULT ResultFilePath([in] LPCWSTR resultFilePath); + + /// The host may set this flag to `TRUE` to hide the default download dialog + /// for this download. The download will progress as normal if it is not + /// canceled, there will just be no default UI shown. By default the value is + /// `FALSE` and the default download dialog is shown. + [propget] HRESULT Handled([out, retval] BOOL* handled); + + /// Sets the `Handled` property. + [propput] HRESULT Handled([in] BOOL handled); + + /// Returns an `ICoreWebView2Deferral` object. Use this operation to + /// complete the event at a later time. + HRESULT GetDeferral([out, retval] ICoreWebView2Deferral** deferral); +} + +/// Implements the interface to receive `BytesReceivedChanged` event. Use the +/// `ICoreWebView2DownloadOperation.BytesReceived` property to get the received +/// bytes count. +[uuid(828e8ab6-d94c-4264-9cef-5217170d6251), object, pointer_default(unique)] +interface ICoreWebView2BytesReceivedChangedEventHandler : IUnknown { + /// Provides the event args for the corresponding event. No event args exist + /// and the `args` parameter is set to `null`. + HRESULT Invoke( + [in] ICoreWebView2DownloadOperation* sender, [in] IUnknown* args); +} + +/// Implements the interface to receive `EstimatedEndTimeChanged` event. Use the +/// `ICoreWebView2DownloadOperation.EstimatedEndTime` property to get the new +/// estimated end time. +[uuid(28f0d425-93fe-4e63-9f8d-2aeec6d3ba1e), object, pointer_default(unique)] +interface ICoreWebView2EstimatedEndTimeChangedEventHandler : IUnknown { + /// Provides the event args for the corresponding event. No event args exist + /// and the `args` parameter is set to `null`. + HRESULT Invoke( + [in] ICoreWebView2DownloadOperation* sender, [in] IUnknown* args); +} + +/// Implements the interface to receive `StateChanged` event. Use the +/// `ICoreWebView2DownloadOperation.State` property to get the current state, +/// which can be in progress, interrupted, or completed. Use the +/// `ICoreWebView2DownloadOperation.InterruptReason` property to get the +/// interrupt reason if the download is interrupted. +[uuid(81336594-7ede-4ba9-bf71-acf0a95b58dd), object, pointer_default(unique)] +interface ICoreWebView2StateChangedEventHandler : IUnknown { + /// Provides the event args for the corresponding event. No event args exist + /// and the `args` parameter is set to `null`. + HRESULT Invoke( + [in] ICoreWebView2DownloadOperation* sender, [in] IUnknown* args); +} + +/// Represents a download operation. Gives access to the download's metadata +/// and supports a user canceling, pausing, or resuming the download. +[uuid(3d6b6cf2-afe1-44c7-a995-c65117714336), object, pointer_default(unique)] +interface ICoreWebView2DownloadOperation : IUnknown { + /// Add an event handler for the `BytesReceivedChanged` event. + /// + /// \snippet ScenarioCustomDownloadExperience.cpp BytesReceivedChanged + HRESULT add_BytesReceivedChanged( + [in] ICoreWebView2BytesReceivedChangedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with `add_BytesReceivedChanged`. + HRESULT remove_BytesReceivedChanged( + [in] EventRegistrationToken token); + + /// Add an event handler for the `EstimatedEndTimeChanged` event. + HRESULT add_EstimatedEndTimeChanged( + [in] ICoreWebView2EstimatedEndTimeChangedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with `add_EstimatedEndTimeChanged`. + HRESULT remove_EstimatedEndTimeChanged( + [in] EventRegistrationToken token); + + /// Add an event handler for the `StateChanged` event. + /// + /// \snippet ScenarioCustomDownloadExperience.cpp StateChanged + HRESULT add_StateChanged( + [in] ICoreWebView2StateChangedEventHandler* eventHandler, + [out] EventRegistrationToken* token); + + /// Remove an event handler previously added with `add_StateChanged`. + HRESULT remove_StateChanged( + [in] EventRegistrationToken token); + + /// The URI of the download. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + [propget] HRESULT Uri([out, retval] LPWSTR* uri); + + /// The Content-Disposition header value from the download's HTTP response. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + [propget] HRESULT ContentDisposition([out, retval] LPWSTR* contentDisposition); + + /// MIME type of the downloaded content. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + [propget] HRESULT MimeType([out, retval] LPWSTR* mimeType); + + /// The expected size of the download in total number of bytes based on the + /// HTTP Content-Length header. Returns -1 if the size is unknown. + [propget] HRESULT TotalBytesToReceive([out, retval] INT64* totalBytesToReceive); + + /// The number of bytes that have been written to the download file. + [propget] HRESULT BytesReceived([out, retval] INT64* bytesReceived); + + /// The estimated end time in [ISO 8601 Date and Time Format](https://www.iso.org/iso-8601-date-and-time-format.html). + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + [propget] HRESULT EstimatedEndTime([out, retval] LPWSTR* estimatedEndTime); + + /// The absolute path to the download file, including file name. Host can change + /// this from `ICoreWebView2DownloadStartingEventArgs`. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + [propget] HRESULT ResultFilePath([out, retval] LPWSTR* resultFilePath); + + /// The state of the download. A download can be in progress, interrupted, or + /// completed. See `COREWEBVIEW2_DOWNLOAD_STATE` for descriptions of states. + [propget] HRESULT State([out, retval] COREWEBVIEW2_DOWNLOAD_STATE* downloadState); + + /// The reason why connection with file host was broken. + [propget] HRESULT InterruptReason( + [out, retval] COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON* interruptReason); + + /// Cancels the download. If canceled, the default download dialog shows + /// that the download was canceled. Host should set the `Cancel` property from + /// `ICoreWebView2SDownloadStartingEventArgs` if the download should be + /// canceled without displaying the default download dialog. + HRESULT Cancel(); + + /// Pauses the download. If paused, the default download dialog shows that the + /// download is paused. No effect if download is already paused. Pausing a + /// download changes the state to `COREWEBVIEW2_DOWNLOAD_STATE_INTERRUPTED` + /// with `InterruptReason` set to `COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_USER_PAUSED`. + HRESULT Pause(); + + /// Resumes a paused download. May also resume a download that was interrupted + /// for another reason, if `CanResume` returns true. Resuming a download changes + /// the state from `COREWEBVIEW2_DOWNLOAD_STATE_INTERRUPTED` to + /// `COREWEBVIEW2_DOWNLOAD_STATE_IN_PROGRESS`. + HRESULT Resume(); + + /// Returns true if an interrupted download can be resumed. Downloads with + /// the following interrupt reasons may automatically resume without you + /// calling any methods: + /// `COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_NO_RANGE`, + /// `COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_HASH_MISMATCH`, + /// `COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_TOO_SHORT`. + /// In these cases download progress may be restarted with `BytesReceived` + /// reset to 0. + [propget] HRESULT CanResume([out, retval] BOOL* canResume); +} + +/// A continuation of the ICoreWebView2ProcessFailedEventArgs interface. +[uuid(4dab9422-46fa-4c3e-a5d2-41d2071d3680), object, pointer_default(unique)] +interface ICoreWebView2ProcessFailedEventArgs2 : ICoreWebView2ProcessFailedEventArgs { + + /// The reason for the process failure. The reason is always + /// `COREWEBVIEW2_PROCESS_FAILED_REASON_UNEXPECTED` when `ProcessFailedKind` + /// is `COREWEBVIEW2_PROCESS_FAILED_KIND_BROWSER_PROCESS_EXITED`, and + /// `COREWEBVIEW2_PROCESS_FAILED_REASON_UNRESPONSIVE` when `ProcessFailedKind` + /// is `COREWEBVIEW2_PROCESS_FAILED_KIND_RENDER_PROCESS_UNRESPONSIVE`. + /// For other process failure kinds, the reason may be any of the reason + /// values. + + [propget] HRESULT Reason( + [out, retval] COREWEBVIEW2_PROCESS_FAILED_REASON* reason); + + /// The exit code of the failing process, for telemetry purposes. The exit + /// code is always `STILL_ACTIVE` (`259`) when `ProcessFailedKind` is + /// `COREWEBVIEW2_PROCESS_FAILED_KIND_RENDER_PROCESS_UNRESPONSIVE`. + + [propget] HRESULT ExitCode( + [out, retval] int* exitCode); + + /// Description of the process assigned by the WebView2 Runtime. This is a + /// technical English term appropriate for logging or development purposes, + /// and not localized for the end user. It applies to utility processes (for + /// example, "Audio Service", "Video Capture") and plugin processes (for + /// example, "Flash"). The returned `processDescription` is empty if the + /// WebView2 Runtime did not assign a description to the process. + /// + /// The caller must free the returned string with `CoTaskMemFree`. See + /// [API Conventions](/microsoft-edge/webview2/concepts/win32-api-conventions#strings). + + [propget] HRESULT ProcessDescription( + [out, retval] LPWSTR* processDescription); + + /// The collection of `FrameInfo`s for frames in the `ICoreWebView2` that were + /// being rendered by the failed process. The content in these frames is + /// replaced with an error page. + /// This is only available when `ProcessFailedKind` is + /// `COREWEBVIEW2_PROCESS_FAILED_KIND_FRAME_RENDER_PROCESS_EXITED`; + /// `frames` is `null` for all other process failure kinds, including the case + /// in which the failed process was the renderer for the main frame and + /// subframes within it, for which the failure kind is + /// `COREWEBVIEW2_PROCESS_FAILED_KIND_RENDER_PROCESS_EXITED`. + + [propget] HRESULT FrameInfosForFailedProcess( + [out, retval] ICoreWebView2FrameInfoCollection** frames); +} + +/// Collection of `FrameInfo`s (name and source). Used to list the affected +/// frames' info when a frame-only render process failure occurs in the +/// `ICoreWebView2`. +[uuid(8f834154-d38e-4d90-affb-6800a7272839), object, pointer_default(unique)] +interface ICoreWebView2FrameInfoCollection : IUnknown { + + /// Gets an iterator over the collection of `FrameInfo`s. + + HRESULT GetIterator( + [out, retval] ICoreWebView2FrameInfoCollectionIterator** iterator); +} + +/// Iterator for a collection of `FrameInfo`s. For more info, see +/// `ICoreWebView2ProcessFailedEventArgs2` and +/// `ICoreWebView2FrameInfoCollection`. +[uuid(1bf89e2d-1b2b-4629-b28f-05099b41bb03), object, pointer_default(unique)] +interface ICoreWebView2FrameInfoCollectionIterator : IUnknown { + + /// `TRUE` when the iterator has not run out of `FrameInfo`s. If the + /// collection over which the iterator is iterating is empty or if the + /// iterator has gone past the end of the collection, then this is `FALSE`. + + [propget] HRESULT HasCurrent([out, retval] BOOL* hasCurrent); + + /// Get the current `ICoreWebView2FrameInfo` of the iterator. + /// Returns `HRESULT_FROM_WIN32(ERROR_INVALID_INDEX)` if HasCurrent is + /// `FALSE`. + + HRESULT GetCurrent([out, retval] ICoreWebView2FrameInfo** frameInfo); + + /// Move the iterator to the next `FrameInfo` in the collection. + + HRESULT MoveNext([out, retval] BOOL* hasNext); +} + +/// Provides a set of properties for a frame in the `ICoreWebView2`. +[uuid(da86b8a1-bdf3-4f11-9955-528cefa59727), object, pointer_default(unique)] +interface ICoreWebView2FrameInfo : IUnknown { + + /// The name attribute of the frame, as in `