### 2021-02-11更新

------
#### MyDb    V2.1.2102.1101
- *.[新增]新增Auto类,增加 鼠标模拟操作和按键模拟操作。
- *.[新增]新增WinAPI命名空间,将windows自带的API集中在这个命名空间。
This commit is contained in:
鑫Intel 2021-02-11 12:04:29 +08:00
parent 57d42ca9b3
commit 19ecb75c71
85 changed files with 9260 additions and 3175 deletions

View File

@ -2107,6 +2107,188 @@
<param name="data"></param>
<returns></returns>
</member>
<member name="T:ryCommon.Auto">
<summary>
对鼠标或键盘的自动化操作
</summary>
</member>
<member name="F:ryCommon.Auto.MK_LBUTTON">
<summary>
鼠标左键
</summary>
</member>
<member name="F:ryCommon.Auto.MK_MBUTTON">
<summary>
鼠标中键
</summary>
</member>
<member name="F:ryCommon.Auto.MK_RBUTTON">
<summary>
鼠标右键
</summary>
</member>
<member name="M:ryCommon.Auto.KeyButton(System.IntPtr,System.Int32,System.Boolean)">
<summary>
模拟键盘按键
</summary>
<param name="hWnd"></param>
<param name="key"></param>
<param name="isPress">按下还是抬起</param>
</member>
<member name="M:ryCommon.Auto.Mouse_Wheel(System.IntPtr,System.Drawing.Point,System.Int32)">
<summary>
鼠标滚轮
</summary>
<param name="hWnd"></param>
<param name="mouse_position"></param>
<param name="delta"></param>
</member>
<member name="M:ryCommon.Auto.Mouse_Move(System.IntPtr,System.Int32,System.Drawing.Point)">
<summary>
鼠标移动
</summary>
<param name="hWnd"></param>
<param name="button"></param>
<param name="mouse_position"></param>
</member>
<member name="M:ryCommon.Auto.Mouse_Button(System.IntPtr,System.Windows.Forms.MouseButtons,System.Drawing.Point,System.Boolean)">
<summary>
自定义鼠标按下或抬起
</summary>
<param name="hWnd"></param>
<param name="button"></param>
<param name="mouse_position"></param>
<param name="isPress"></param>
</member>
<member name="M:ryCommon.Auto.LeftClick(System.IntPtr,System.Int32,System.Int32)">
<summary>
左键单击鼠标(支持后台单击)
</summary>
<param name="handle">指定要发送单击命令的句柄</param>
<param name="x">坐标x(句柄内的坐标,非屏幕坐标)</param>
<param name="y">坐标y(句柄内的坐标,非屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.LeftClick(System.IntPtr,System.Drawing.Point)">
<summary>
左键单击鼠标(支持后台单击)
</summary>
<param name="handle">指定要发送单击命令的句柄</param>
<param name="point">坐标(句柄内的坐标,非屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.RightClick(System.IntPtr,System.Int32,System.Int32)">
<summary>
右键单击鼠标(支持后台单击)
</summary>
<param name="handle">指定要发送单击命令的句柄</param>
<param name="x">坐标x(句柄内的坐标,非屏幕坐标)</param>
<param name="y">坐标y(句柄内的坐标,非屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.RightClick(System.IntPtr,System.Drawing.Point)">
<summary>
右键单击鼠标(支持后台单击)
</summary>
<param name="handle">指定要发送单击命令的句柄</param>
<param name="point">坐标(句柄内的坐标,非屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.MiddleClick(System.IntPtr,System.Int32,System.Int32)">
<summary>
中键单击鼠标(支持后台单击)
</summary>
<param name="handle">指定要发送单击命令的句柄</param>
<param name="x">坐标x(句柄内的坐标,非屏幕坐标)</param>
<param name="y">坐标y(句柄内的坐标,非屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.MiddleClick(System.IntPtr,System.Drawing.Point)">
<summary>
中键单击鼠标(支持后台单击)
</summary>
<param name="handle">指定要发送单击命令的句柄</param>
<param name="point">坐标(句柄内的坐标,非屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.LeftClick(System.Int32,System.Int32)">
<summary>
左键单击鼠标(不支持后台单击)
</summary>
<param name="x">坐标x(屏幕坐标)</param>
<param name="y">坐标y(屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.LeftClick(System.Drawing.Point)">
<summary>
左键单击鼠标(不支持后台单击)
</summary>
<param name="point">坐标(屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.RightClick(System.Int32,System.Int32)">
<summary>
右键单击鼠标(不支持后台单击)
</summary>
<param name="x">坐标x(屏幕坐标)</param>
<param name="y">坐标y(屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.RightClick(System.Drawing.Point)">
<summary>
右键单击鼠标(不支持后台单击)
</summary>
<param name="point">坐标(屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.MiddleClick(System.Int32,System.Int32)">
<summary>
中键单击鼠标(不支持后台单击)
</summary>
<param name="x">坐标x(屏幕坐标)</param>
<param name="y">坐标y(屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.MiddleClick(System.Drawing.Point)">
<summary>
中键单击鼠标(不支持后台单击)
</summary>
<param name="point">坐标(屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.PasteText(System.String)">
<summary>
粘贴文本
</summary>
<param name="text"></param>
</member>
<member name="M:ryCommon.Auto.GetRect(System.IntPtr,System.Drawing.Size@)">
<summary>
获取指定句柄的大小及位置
</summary>
<param name="handle"></param>
<param name="size"></param>
<returns></returns>
</member>
<member name="M:ryCommon.Auto.SetRect(System.IntPtr,System.Drawing.Size)">
<summary>
设置指定句柄的大小
</summary>
<param name="handle"></param>
<param name="size"></param>
</member>
<member name="M:ryCommon.Auto.IsInRect(MyDb.RyWin32.RECT,System.Drawing.Point)">
<summary>
判断鼠标位置是不是在指定的矩形中
</summary>
<param name="rect"></param>
<param name="mouse_position"></param>
<returns></returns>
</member>
<member name="M:ryCommon.Auto.ImageEquals(System.Drawing.Bitmap,System.Drawing.Bitmap)">
<summary>
判断2张图是否相似度超90
</summary>
<param name="bmpOne"></param>
<param name="bmpTwo"></param>
<returns></returns>
</member>
<member name="M:ryCommon.Auto.GetXsd(System.Drawing.Color,System.Drawing.Color)">
<summary>
/获取2种颜色的相似度,范围为0~100
</summary>
<param name="c1"></param>
<param name="c2"></param>
<returns></returns>
</member>
<member name="T:ryCommon.ModalForm">
<summary>
新模态窗体
@ -2580,6 +2762,48 @@
<param name="IEMode">7000 表示IE7兼容视图模式;8000 表示IE8 标准模式 ;8888 表示IE8 强制标准模式,在渲染失败的情况下不尝试用兼容视图模式</param>
<returns></returns>
</member>
<member name="M:ryCommon.RyRegedit.SetFileAssociation(System.String,System.String,System.String,System.String,System.String)">
<summary>
设置文件关联
</summary>
<param name="Ext">扩展名(如.apk)</param>
<param name="ExtName">映射的扩展名(如apkfile)</param>
<param name="sName">app名称(建议用英文数字)</param>
<param name="AssDes">文件关联描述</param>
<param name="filePath">文件路径</param>
</member>
<member name="M:ryCommon.RyRegedit.SetFileAssociation(System.String,System.String,System.String,System.String)">
<summary>
设置文件关联
</summary>
<param name="ExtName">映射的扩展名(如apkfile)</param>
<param name="sName">app名称(建议用英文数字)</param>
<param name="AssDes">文件关联描述</param>
<param name="filePath">文件路径</param>
</member>
<member name="M:ryCommon.RyRegedit.SetFileAssociationOpenAs(System.String,System.String,System.String,System.String)">
<summary>
在指定文件格式右键菜单中增加菜单
</summary>
<param name="Ext">扩展名(如.apk)</param>
<param name="sName">app名称(建议用英文数字)</param>
<param name="AssDes">文件关联描述</param>
<param name="filePath">文件路径</param>
</member>
<member name="M:ryCommon.RyRegedit.DelFileAssociation(System.String,System.String)">
<summary>
删除文件关联
</summary>
<param name="ExtName">映射的扩展名(如apkfile)</param>
<param name="sName">app名称(建议用英文数字)</param>
</member>
<member name="M:ryCommon.RyRegedit.GetFileAssociation(System.String,System.String)">
<summary>
获取文件关联是否存在
</summary>
<param name="ExtName">映射的扩展名(如apkfile)</param>
<param name="sName">app名称(建议用英文数字)</param>
</member>
<member name="T:ryCommon.RyRegedit.IeMode">
<summary>
采用的IE模式
@ -4948,5 +5172,380 @@
<param name="size"></param>
<returns></returns>
</member>
<member name="T:WinAPI.Struct">
<summary>
</summary>
</member>
<member name="T:WinAPI.Struct.BLENDFUNCTION">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.BLENDFUNCTION.BlendOp">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.BLENDFUNCTION.BlendFlags">
<summary>
/
</summary>
</member>
<member name="F:WinAPI.Struct.BLENDFUNCTION.SourceConstantAlpha">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.BLENDFUNCTION.AlphaFormat">
<summary>
</summary>
</member>
<member name="T:WinAPI.Struct.FlagsSetWindowPos">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOSIZE">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOMOVE">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOZORDER">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOREDRAW">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOACTIVATE">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_FRAMECHANGED">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_SHOWWINDOW">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_HIDEWINDOW">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOCOPYBITS">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOOWNERZORDER">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOSENDCHANGING">
<summary>
/
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_DRAWFRAME">
<summary>
/
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOREPOSITION">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_DEFERERASE">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_ASYNCWINDOWPOS">
<summary>
</summary>
</member>
<member name="T:WinAPI.GDI32">
<summary>
</summary>
</member>
<member name="M:WinAPI.GDI32.DeleteObject(System.IntPtr)">
<summary>
</summary>
<param name="hObject"></param>
<returns></returns>
</member>
<member name="M:WinAPI.GDI32.SelectObject(System.IntPtr,System.IntPtr)">
<summary>
</summary>
<param name="hdc"></param>
<param name="hgdiobj"></param>
<returns></returns>
</member>
<member name="M:WinAPI.GDI32.CreateCompatibleDC(System.IntPtr)">
<summary>
</summary>
<param name="hdc"></param>
<returns></returns>
</member>
<member name="M:WinAPI.GDI32.CreateDC(System.String,System.String,System.String,System.IntPtr)">
<summary>
</summary>
<param name="driverName"></param>
<param name="deviceName"></param>
<param name="output"></param>
<param name="lpInitData"></param>
<returns></returns>
</member>
<member name="M:WinAPI.GDI32.DeleteDC(System.IntPtr)">
<summary>
</summary>
<param name="dc"></param>
<returns></returns>
</member>
<member name="T:Win32API.User32">
<summary>
</summary>
</member>
<member name="M:Win32API.User32.mouse_event(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">
<summary>
模拟鼠标点击
</summary>
<param name="dwFlags"></param>
<param name="dx"></param>
<param name="dy"></param>
<param name="dwData"></param>
<param name="dwExtraInfo"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.keybd_event(System.Windows.Forms.Keys,System.Byte,System.UInt32,System.UInt32)">
<summary>
模拟按键
</summary>
<param name="bVk"></param>
<param name="bScan"></param>
<param name="dwFlags"></param>
<param name="dwExtraInfo"></param>
</member>
<member name="M:Win32API.User32.GetWindowDC(System.IntPtr)">
<summary>
</summary>
<param name="hWnd"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.MoveWindow(System.IntPtr,System.Int32,System.Int32,System.Int32,System.Int32,System.Boolean)">
<summary>
</summary>
<param name="hWnd"></param>
<param name="x"></param>
<param name="y"></param>
<param name="width"></param>
<param name="height"></param>
<param name="repaint"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.SetParent(System.IntPtr,System.IntPtr)">
<summary>
</summary>
<param name="hwndChild"></param>
<param name="hwndParent"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.GetParent(System.IntPtr)">
<summary>
The GetParent function retrieves a handle to the specified window's parent or owner.
</summary>
<param name="hwnd">Handle to the window whose parent window handle is to be retrieved.</param>
<returns>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.</returns>
</member>
<member name="M:Win32API.User32.SendMessage(System.IntPtr,System.Int32,System.Int32,System.Int32)">
<summary>
</summary>
<param name="hwnd"></param>
<param name="wMsg"></param>
<param name="wParam"></param>
<param name="lParam"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.SendMessage(System.IntPtr,System.Int32,System.IntPtr,System.IntPtr)">
<summary>
</summary>
<param name="hwnd"></param>
<param name="wMsg"></param>
<param name="wParam"></param>
<param name="lParam"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.SendMessage(System.IntPtr,System.UInt32,System.Int32,System.Int32)">
<summary>
</summary>
<param name="hWnd"></param>
<param name="Msg"></param>
<param name="wParam"></param>
<param name="lParam"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.LoadCursorFromFile(System.String)">
<summary>
</summary>
<param name="filename"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.IsWindowVisible(System.IntPtr)">
<summary>
</summary>
<param name="hwnd"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.FindWindowEx(System.IntPtr,System.IntPtr,System.String,System.String)">
<summary>
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.
</summary>
<param name="hwndParent">Handle to the parent window whose child windows are to be searched.</param>
<param name="hwndChildAfter">Handle to a child window.</param>
<param name="lpszClass">Specifies class name.</param>
<param name="lpszWindow">Pointer to a null-terminated string that specifies the window name (the window's title).</param>
<returns>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.</returns>
</member>
<member name="M:Win32API.User32.InvalidateRect(System.IntPtr,System.Drawing.Rectangle@,System.Boolean)">
<summary>
The InvalidateRect function adds a rectangle to the specified window's update region.
</summary>
<param name="hwnd">Handle to window.</param>
<param name="rect">Rectangle coordinates.</param>
<param name="bErase">Erase state.</param>
<returns>If the function succeeds, the return value is true.If the function fails, the return value is false.</returns>
</member>
<member name="M:Win32API.User32.ValidateRect(System.IntPtr,System.Drawing.Rectangle@)">
<summary>
The ValidateRect function validates the client area within a rectangle by removing the rectangle from the update region of the specified window.
</summary>
<param name="hwnd">Handle to window.</param>
<param name="rect">Validation rectangle coordinates.</param>
<returns>If the function succeeds, the return value is true.If the function fails, the return value is false.</returns>
</member>
<member name="M:Win32API.User32.GetWindowLong(System.IntPtr,System.Int32)">
<summary>
</summary>
<param name="hWnd"></param>
<param name="dwStyle"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.GetDC(System.IntPtr)">
<summary>
</summary>
<param name="hwnd"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.ReleaseDC(System.IntPtr,System.IntPtr)">
<summary>
</summary>
<param name="hwnd"></param>
<param name="hdc"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.GetClientRect(System.IntPtr,System.Drawing.Rectangle@)">
<summary>
</summary>
<param name="hwnd"></param>
<param name="rect"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.GetWindowRect(System.IntPtr,System.Drawing.Rectangle@)">
<summary>
</summary>
<param name="hWnd"></param>
<param name="rect"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.UpdateLayeredWindow(System.IntPtr,System.IntPtr,System.Drawing.Point@,System.Drawing.Size@,System.IntPtr,System.Drawing.Point@,System.Int32,WinAPI.Struct.BLENDFUNCTION@,System.Int32)">
<summary>
</summary>
<param name="hwnd"></param>
<param name="hdcDst"></param>
<param name="pptDst"></param>
<param name="psize"></param>
<param name="hdcSrc"></param>
<param name="pprSrc"></param>
<param name="crKey"></param>
<param name="pblend"></param>
<param name="dwFlags"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.SetWindowLong(System.IntPtr,System.Int32,System.Int32)">
<summary>
</summary>
<param name="hWnd"></param>
<param name="nIndex"></param>
<param name="dwNewLong"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.SetWindowPos(System.IntPtr,System.IntPtr,System.Int32,System.Int32,System.Int32,System.Int32,WinAPI.Struct.FlagsSetWindowPos)">
<summary>
Changes the size, position, and Z order of a child, pop-up, or top-level window.
These windows are ordered according to their appearance on the screen.
The topmost window receives the highest rank and is the first window in the Z order.
</summary>
<param name="hWnd">A handle to the window.</param>
<param name="hWndAfter">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.</param>
<param name="X">Specifies the new position of the left side of the window, in client coordinates.</param>
<param name="Y">Specifies the new position of the top of the window, in client coordinates.</param>
<param name="Width">Specifies the new width of the window, in pixels.</param>
<param name="Height">Specifies the new height of the window, in pixels.</param>
<param name="flags">Specifies the window sizing and positioning flags. This parameter can be a combination of the following values.</param>
<returns>If the function succeeds, the return value is nonzero, if the function fails, the return value is zero.</returns>
</member>
<member name="M:Win32API.User32.SetWindowPos(System.IntPtr,System.IntPtr,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt32)">
<summary>
</summary>
<param name="hWnd"></param>
<param name="hWndInsertAfter"></param>
<param name="X"></param>
<param name="Y"></param>
<param name="cx"></param>
<param name="cy"></param>
<param name="uFlags"></param>
<returns></returns>
</member>
</members>
</doc>

View File

@ -1,2 +1,2 @@
[Money_Op]
hwnd=5315574
hwnd=3875764

View File

@ -1,4 +1,4 @@
<root>
<list id="LastUpdateTime" Value="2021/1/12 15:16:09" />
<list id="LastUpdateTime" Value="2021/2/10 22:55:51" />
<list id="UpdateAfterTime" Value="0" />
</root>

View File

@ -22410,13 +22410,16 @@
</member>
<member name="P:BrightIdeasSoftware.BaseRenderer.UseCustomCheckboxImages">
<summary>
此渲染器是否将使用父ObjectListView中的自定义图像来绘制复选框图像。
Will this renderer use the custom images from the parent ObjectListView
to draw the checkbox images.
</summary>
<remarks>
<para>
如果为true则渲染器将使用StateImageList中的图像来表示复选框。0-未选中1-选中2-不确定。
If this is true, the renderer will use the images from the
StateImageList to represent checkboxes. 0 - unchecked, 1 - checked, 2 - indeterminate.
</para>
<para>如果为False(默认值),则渲染器将使用.NET的标准CheckBoxRenender。</para>
<para>If this is false (the default), then the renderer will use .NET's standard
CheckBoxRenderer.</para>
</remarks>
</member>
<member name="M:BrightIdeasSoftware.BaseRenderer.AlignRectangle(System.Drawing.Rectangle,System.Drawing.Rectangle)">
@ -23401,7 +23404,7 @@
</member>
<member name="M:BrightIdeasSoftware.MultiImageRenderer.#ctor(System.Object,System.Int32,System.Int32,System.Int32)">
<summary>
创建一个图像渲染器该图像渲染器最多可以绘制指定的图像的maxImages次数。
Make an image renderer that will draw the indicated image, at most maxImages times.
</summary>
<param name="imageSelector"></param>
<param name="maxImages"></param>
@ -23410,12 +23413,12 @@
</member>
<member name="P:BrightIdeasSoftware.MultiImageRenderer.ImageIndex">
<summary>
应绘制的图像索引
The index of the image that should be drawn
</summary>
</member>
<member name="P:BrightIdeasSoftware.MultiImageRenderer.ImageName">
<summary>
应绘制的图像名称
The name of the image that should be drawn
</summary>
</member>
<member name="P:BrightIdeasSoftware.MultiImageRenderer.ImageSelector">
@ -23426,17 +23429,17 @@
</member>
<member name="P:BrightIdeasSoftware.MultiImageRenderer.MaxNumberImages">
<summary>
此渲染器应绘制的最大图像数
What is the maximum number of images that this renderer should draw?
</summary>
</member>
<member name="P:BrightIdeasSoftware.MultiImageRenderer.MinimumValue">
<summary>
小于或等于此值的值将不绘制图像
Values less than or equal to this will have 0 images drawn
</summary>
</member>
<member name="P:BrightIdeasSoftware.MultiImageRenderer.MaximumValue">
<summary>
大于或等于该值的值将绘制MaxNumberImages图像
Values greater than or equal to this will have MaxNumberImages images drawn
</summary>
</member>
<member name="M:BrightIdeasSoftware.MultiImageRenderer.Render(System.Drawing.Graphics,System.Drawing.Rectangle)">
@ -23494,59 +23497,59 @@
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.UseGdiTextRendering">
<summary>
文本是否应该使用GDI例程呈现这使文本看起来更像本机列表视图控件。
Should text be rendered using GDI routines? This makes the text look more
like a native List view control.
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.TitleFont">
<summary>
获取或设置标题字体
Gets or set the font that will be used to draw the title of the task
</summary>
<remarks>If this is null, the ListView's font will be used</remarks>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.TitleFontOrDefault">
<summary>
返回已为标题设置的字体或默认值
Return a font that has been set for the title or a reasonable default
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.TitleColor">
<summary>
获取或设置任务标题(Title)的颜色
Gets or set the color of the title of the task
</summary>
<remarks>当任务未被选中或列表视图具有半透明选择机制时,将使用此颜色。
</remarks>
<remarks>This color is used when the task is not selected or when the listview
has a translucent selection mechanism.</remarks>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.TitleColorOrDefault">
<summary>
返回任务标题的颜色或默认值
Return the color of the title of the task or a reasonable default
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.DescriptionFont">
<summary>
获取或设置任务描述(Description)的字体
Gets or set the font that will be used to draw the description of the task
</summary>
<remarks>如果为null则使用listview的字体</remarks>
<remarks>If this is null, the ListView's font will be used</remarks>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.DescriptionFontOrDefault">
<summary>
返回已为Description设置的字体或默认值
Return a font that has been set for the title or a reasonable default
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.DescriptionColor">
<summary>
获取或设置任务描述(Description)的颜色
Gets or set the color of the description of the task
</summary>
<remarks>
当任务未被选中或列表视图具有半透明选择机制时,将使用此颜色。
</remarks>
<remarks>This color is used when the task is not selected or when the listview
has a translucent selection mechanism.</remarks>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.DescriptionColorOrDefault">
<summary>
返回任务描述(Description)的颜色或默认值
Return the color of the description of the task or a reasonable default
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.ImageTextSpace">
<summary>
获取或设置图片和文字之间的距离
Gets or sets the number of pixels that will be left between the image and the text
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.TopSpace">
@ -23556,12 +23559,12 @@
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.TitleDescriptionSpace">
<summary>
获取或设置标题(Title)和描述(Description)之间的距离(单位:像素)
Gets or sets the number of pixels that will be left between the title and the description
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.DescriptionAspectName">
<summary>
获取或设置跟Description挂钩的模型对象名称
Gets or sets the name of the aspect of the model object that contains the task description
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.Filter">
@ -23618,42 +23621,67 @@
</member>
<member name="T:BrightIdeasSoftware.ColumnButtonRenderer">
<summary>
此渲染器在其单元格中绘制一个功能按钮
This renderer draws a functioning button in its cell
</summary>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.SizingMode">
<summary>
获取或设置按钮的大小模式
Gets or sets how each button will be sized
</summary>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.ButtonSize">
<summary>
获取或设置SizingMode为FixedBound时按钮的大小
Gets or sets the size of the button when the SizingMode is FixedBounds
</summary>
<remarks>如果未设置,将使用单元格的边界</remarks>
<remarks>If this is not set, the bounds of the cell will be used</remarks>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.ButtonPadding">
<summary>
获取或设置当SizingMode为TextBound时单元格周围的额外空间
Gets or sets the extra space that surrounds the cell when the SizingMode is TextBounds
</summary>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.MaxButtonWidth">
<summary>
获取或设置按钮可以占用的最大宽度
-1 表示不限制宽度
Gets or sets the maximum width that a button can occupy.
-1 means there is no maximum width.
</summary>
<remarks>仅当SizingMode为TextBound时才会生效</remarks>
<remarks>This is only considered when the SizingMode is TextBounds</remarks>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.MinButtonWidth">
<summary>
获取或设置按钮可以占用的最小宽度。
-1 表示不限制宽度
Gets or sets the minimum width that a button can occupy.
-1 means there is no minimum width.
</summary>
<remarks>This is only considered when the SizingMode is TextBounds</remarks>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.ButtonForeColor">
<summary>
获取或设置此列按钮的字体颜色(如果有按钮的话)
</summary>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.ButtonBaseColor">
<summary>
获取或设置此列按钮的背景颜色(如果有按钮的话)
</summary>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.ButtonBorderColor">
<summary>
获取或设置此列按钮的边框颜色(如果有按钮的话)
</summary>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.ButtonInnerBorderColor">
<summary>
获取或设置此列按钮的内边框颜色(如果有按钮的话)
</summary>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.ButtonDrawBorder">
<summary>
获取或设置此列按钮是否画边框(如果有按钮的话)
</summary>
<remarks>仅当SizingMode为TextBound时才会生效</remarks>
</member>
<member name="M:BrightIdeasSoftware.ColumnButtonRenderer.CalculateContentSize(System.Drawing.Graphics,System.Drawing.Rectangle)">
<summary>
计算内容的大小
Calculate the size of the contents
</summary>
<param name="g"></param>
<param name="r"></param>
@ -23661,7 +23689,7 @@
</member>
<member name="M:BrightIdeasSoftware.ColumnButtonRenderer.DrawImageAndText(System.Drawing.Graphics,System.Drawing.Rectangle)">
<summary>
画按钮
Draw the button
</summary>
<param name="g"></param>
<param name="r"></param>
@ -23678,13 +23706,13 @@
</member>
<member name="M:BrightIdeasSoftware.ColumnButtonRenderer.CalculatePushButtonState">
<summary>
按钮的状态
What is the state of the button?
</summary>
<returns></returns>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.IsButtonHot">
<summary>
鼠标是否在按钮上
Is the mouse over the button?
</summary>
</member>
<member name="T:BrightIdeasSoftware.IItemStyle">
@ -23884,6 +23912,58 @@
</summary>
<param name="color"></param>
</member>
<member name="F:BrightIdeasSoftware.Rendering.buttonStyle.ButtonNormal">
<summary>
正常为选中按钮
</summary>
</member>
<member name="F:BrightIdeasSoftware.Rendering.buttonStyle.ButtonFocuse">
<summary>
获得焦点的按钮
</summary>
</member>
<member name="F:BrightIdeasSoftware.Rendering.buttonStyle.ButtonMouseOver">
<summary>
鼠标经过样式
</summary>
</member>
<member name="F:BrightIdeasSoftware.Rendering.buttonStyle.ButtonFocuseAndMouseOver">
<summary>
获得焦点并鼠标经过
</summary>
</member>
<member name="T:BrightIdeasSoftware.Rendering.Util_GDI">
<summary>
自定义GDI工具绘制按钮
</summary>
</member>
<member name="M:BrightIdeasSoftware.Rendering.Util_GDI.DrawCircleButton(System.String,System.Drawing.Graphics,System.Drawing.Point,System.Int32,BrightIdeasSoftware.Rendering.buttonStyle)">
<summary>
绘制圆形按钮(用法同矩形按钮)
</summary>
<param name="text"></param>
<param name="g"></param>
<param name="Location"></param>
<param name="r"></param>
<param name="btnStyle"></param>
</member>
<member name="M:BrightIdeasSoftware.Rendering.Util_GDI.DrawRoundButton(System.String,System.Drawing.Graphics,System.Drawing.Rectangle,BrightIdeasSoftware.Rendering.buttonStyle)">
<summary>
绘制圆角按钮
</summary>
<param name="Text">要绘制的文字</param>
<param name="g">Graphics 对象</param>
<param name="rect">要填充的矩形</param>
<param name="btnStyle"></param>
</member>
<member name="M:BrightIdeasSoftware.Rendering.Util_GDI.GetRoundRectangle(System.Drawing.Rectangle,System.Int32)">
<summary>
根据普通矩形得到圆角矩形的路径
</summary>
<param name="rectangle">原始矩形</param>
<param name="r">半径</param>
<returns>图形路径</returns>
</member>
<member name="T:BrightIdeasSoftware.GlassPanelForm">
<summary>
A GlassPanelForm sits transparently over an ObjectListView to show overlays.

View File

@ -469,5 +469,21 @@
</summary>
<param name="e"></param>
</member>
<member name="T:ryUpdate.Properties.Resources">
<summary>
一个强类型的资源类,用于查找本地化的字符串等。
</summary>
</member>
<member name="P:ryUpdate.Properties.Resources.ResourceManager">
<summary>
返回此类使用的缓存的 ResourceManager 实例。
</summary>
</member>
<member name="P:ryUpdate.Properties.Resources.Culture">
<summary>
重写当前线程的 CurrentUICulture 属性,对
使用此强类型资源类的所有资源查找执行重写。
</summary>
</member>
</members>
</doc>

View File

@ -0,0 +1,22 @@
2021/2/10 22:56:28
错误描述:所请求的剪贴板操作失败。
异常堆栈: 在 System.Windows.Forms.Clipboard.ThrowIfFailed(Int32 hr)
在 System.Windows.Forms.Clipboard.SetDataObject(Object data, Boolean copy, Int32 retryTimes, Int32 retryDelay)
在 System.Windows.Forms.Clipboard.SetText(String text, TextDataFormat format)
在 System.Windows.Forms.Clipboard.SetText(String text)
在 ryCommon.Auto.PasteText(String text) 位置 E:\My Datas\毕方项目\C#\睿元公用控件组\Source\MyDb\SysFuns\Auto.cs:行号 185
在 Itrycn_Project2.FrmStart.button2_Click(Object sender, EventArgs e) 位置 E:\My Datas\毕方项目\C#\睿元公用控件组\Source\Itrycn_Project2\FrmStart.cs:行号 157
在 System.Windows.Forms.Control.OnClick(EventArgs e)
在 System.Windows.Forms.Button.OnClick(EventArgs e)
在 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
在 System.Windows.Forms.Control.WndProc(Message& m)
在 System.Windows.Forms.ButtonBase.WndProc(Message& m)
在 System.Windows.Forms.Button.WndProc(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
异常方法Void ThrowIfFailed(Int32)

View File

@ -2107,6 +2107,188 @@
<param name="data"></param>
<returns></returns>
</member>
<member name="T:ryCommon.Auto">
<summary>
对鼠标或键盘的自动化操作
</summary>
</member>
<member name="F:ryCommon.Auto.MK_LBUTTON">
<summary>
鼠标左键
</summary>
</member>
<member name="F:ryCommon.Auto.MK_MBUTTON">
<summary>
鼠标中键
</summary>
</member>
<member name="F:ryCommon.Auto.MK_RBUTTON">
<summary>
鼠标右键
</summary>
</member>
<member name="M:ryCommon.Auto.KeyButton(System.IntPtr,System.Int32,System.Boolean)">
<summary>
模拟键盘按键
</summary>
<param name="hWnd"></param>
<param name="key"></param>
<param name="isPress">按下还是抬起</param>
</member>
<member name="M:ryCommon.Auto.Mouse_Wheel(System.IntPtr,System.Drawing.Point,System.Int32)">
<summary>
鼠标滚轮
</summary>
<param name="hWnd"></param>
<param name="mouse_position"></param>
<param name="delta"></param>
</member>
<member name="M:ryCommon.Auto.Mouse_Move(System.IntPtr,System.Int32,System.Drawing.Point)">
<summary>
鼠标移动
</summary>
<param name="hWnd"></param>
<param name="button"></param>
<param name="mouse_position"></param>
</member>
<member name="M:ryCommon.Auto.Mouse_Button(System.IntPtr,System.Windows.Forms.MouseButtons,System.Drawing.Point,System.Boolean)">
<summary>
自定义鼠标按下或抬起
</summary>
<param name="hWnd"></param>
<param name="button"></param>
<param name="mouse_position"></param>
<param name="isPress"></param>
</member>
<member name="M:ryCommon.Auto.LeftClick(System.IntPtr,System.Int32,System.Int32)">
<summary>
左键单击鼠标(支持后台单击)
</summary>
<param name="handle">指定要发送单击命令的句柄</param>
<param name="x">坐标x(句柄内的坐标,非屏幕坐标)</param>
<param name="y">坐标y(句柄内的坐标,非屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.LeftClick(System.IntPtr,System.Drawing.Point)">
<summary>
左键单击鼠标(支持后台单击)
</summary>
<param name="handle">指定要发送单击命令的句柄</param>
<param name="point">坐标(句柄内的坐标,非屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.RightClick(System.IntPtr,System.Int32,System.Int32)">
<summary>
右键单击鼠标(支持后台单击)
</summary>
<param name="handle">指定要发送单击命令的句柄</param>
<param name="x">坐标x(句柄内的坐标,非屏幕坐标)</param>
<param name="y">坐标y(句柄内的坐标,非屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.RightClick(System.IntPtr,System.Drawing.Point)">
<summary>
右键单击鼠标(支持后台单击)
</summary>
<param name="handle">指定要发送单击命令的句柄</param>
<param name="point">坐标(句柄内的坐标,非屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.MiddleClick(System.IntPtr,System.Int32,System.Int32)">
<summary>
中键单击鼠标(支持后台单击)
</summary>
<param name="handle">指定要发送单击命令的句柄</param>
<param name="x">坐标x(句柄内的坐标,非屏幕坐标)</param>
<param name="y">坐标y(句柄内的坐标,非屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.MiddleClick(System.IntPtr,System.Drawing.Point)">
<summary>
中键单击鼠标(支持后台单击)
</summary>
<param name="handle">指定要发送单击命令的句柄</param>
<param name="point">坐标(句柄内的坐标,非屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.LeftClick(System.Int32,System.Int32)">
<summary>
左键单击鼠标(不支持后台单击)
</summary>
<param name="x">坐标x(屏幕坐标)</param>
<param name="y">坐标y(屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.LeftClick(System.Drawing.Point)">
<summary>
左键单击鼠标(不支持后台单击)
</summary>
<param name="point">坐标(屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.RightClick(System.Int32,System.Int32)">
<summary>
右键单击鼠标(不支持后台单击)
</summary>
<param name="x">坐标x(屏幕坐标)</param>
<param name="y">坐标y(屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.RightClick(System.Drawing.Point)">
<summary>
右键单击鼠标(不支持后台单击)
</summary>
<param name="point">坐标(屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.MiddleClick(System.Int32,System.Int32)">
<summary>
中键单击鼠标(不支持后台单击)
</summary>
<param name="x">坐标x(屏幕坐标)</param>
<param name="y">坐标y(屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.MiddleClick(System.Drawing.Point)">
<summary>
中键单击鼠标(不支持后台单击)
</summary>
<param name="point">坐标(屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.PasteText(System.String)">
<summary>
粘贴文本
</summary>
<param name="text"></param>
</member>
<member name="M:ryCommon.Auto.GetRect(System.IntPtr,System.Drawing.Size@)">
<summary>
获取指定句柄的大小及位置
</summary>
<param name="handle"></param>
<param name="size"></param>
<returns></returns>
</member>
<member name="M:ryCommon.Auto.SetRect(System.IntPtr,System.Drawing.Size)">
<summary>
设置指定句柄的大小
</summary>
<param name="handle"></param>
<param name="size"></param>
</member>
<member name="M:ryCommon.Auto.IsInRect(MyDb.RyWin32.RECT,System.Drawing.Point)">
<summary>
判断鼠标位置是不是在指定的矩形中
</summary>
<param name="rect"></param>
<param name="mouse_position"></param>
<returns></returns>
</member>
<member name="M:ryCommon.Auto.ImageEquals(System.Drawing.Bitmap,System.Drawing.Bitmap)">
<summary>
判断2张图是否相似度超90
</summary>
<param name="bmpOne"></param>
<param name="bmpTwo"></param>
<returns></returns>
</member>
<member name="M:ryCommon.Auto.GetXsd(System.Drawing.Color,System.Drawing.Color)">
<summary>
/获取2种颜色的相似度,范围为0~100
</summary>
<param name="c1"></param>
<param name="c2"></param>
<returns></returns>
</member>
<member name="T:ryCommon.ModalForm">
<summary>
新模态窗体
@ -2580,6 +2762,48 @@
<param name="IEMode">7000 表示IE7兼容视图模式;8000 表示IE8 标准模式 ;8888 表示IE8 强制标准模式,在渲染失败的情况下不尝试用兼容视图模式</param>
<returns></returns>
</member>
<member name="M:ryCommon.RyRegedit.SetFileAssociation(System.String,System.String,System.String,System.String,System.String)">
<summary>
设置文件关联
</summary>
<param name="Ext">扩展名(如.apk)</param>
<param name="ExtName">映射的扩展名(如apkfile)</param>
<param name="sName">app名称(建议用英文数字)</param>
<param name="AssDes">文件关联描述</param>
<param name="filePath">文件路径</param>
</member>
<member name="M:ryCommon.RyRegedit.SetFileAssociation(System.String,System.String,System.String,System.String)">
<summary>
设置文件关联
</summary>
<param name="ExtName">映射的扩展名(如apkfile)</param>
<param name="sName">app名称(建议用英文数字)</param>
<param name="AssDes">文件关联描述</param>
<param name="filePath">文件路径</param>
</member>
<member name="M:ryCommon.RyRegedit.SetFileAssociationOpenAs(System.String,System.String,System.String,System.String)">
<summary>
在指定文件格式右键菜单中增加菜单
</summary>
<param name="Ext">扩展名(如.apk)</param>
<param name="sName">app名称(建议用英文数字)</param>
<param name="AssDes">文件关联描述</param>
<param name="filePath">文件路径</param>
</member>
<member name="M:ryCommon.RyRegedit.DelFileAssociation(System.String,System.String)">
<summary>
删除文件关联
</summary>
<param name="ExtName">映射的扩展名(如apkfile)</param>
<param name="sName">app名称(建议用英文数字)</param>
</member>
<member name="M:ryCommon.RyRegedit.GetFileAssociation(System.String,System.String)">
<summary>
获取文件关联是否存在
</summary>
<param name="ExtName">映射的扩展名(如apkfile)</param>
<param name="sName">app名称(建议用英文数字)</param>
</member>
<member name="T:ryCommon.RyRegedit.IeMode">
<summary>
采用的IE模式
@ -4948,5 +5172,380 @@
<param name="size"></param>
<returns></returns>
</member>
<member name="T:WinAPI.Struct">
<summary>
</summary>
</member>
<member name="T:WinAPI.Struct.BLENDFUNCTION">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.BLENDFUNCTION.BlendOp">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.BLENDFUNCTION.BlendFlags">
<summary>
/
</summary>
</member>
<member name="F:WinAPI.Struct.BLENDFUNCTION.SourceConstantAlpha">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.BLENDFUNCTION.AlphaFormat">
<summary>
</summary>
</member>
<member name="T:WinAPI.Struct.FlagsSetWindowPos">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOSIZE">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOMOVE">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOZORDER">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOREDRAW">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOACTIVATE">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_FRAMECHANGED">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_SHOWWINDOW">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_HIDEWINDOW">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOCOPYBITS">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOOWNERZORDER">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOSENDCHANGING">
<summary>
/
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_DRAWFRAME">
<summary>
/
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOREPOSITION">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_DEFERERASE">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_ASYNCWINDOWPOS">
<summary>
</summary>
</member>
<member name="T:WinAPI.GDI32">
<summary>
</summary>
</member>
<member name="M:WinAPI.GDI32.DeleteObject(System.IntPtr)">
<summary>
</summary>
<param name="hObject"></param>
<returns></returns>
</member>
<member name="M:WinAPI.GDI32.SelectObject(System.IntPtr,System.IntPtr)">
<summary>
</summary>
<param name="hdc"></param>
<param name="hgdiobj"></param>
<returns></returns>
</member>
<member name="M:WinAPI.GDI32.CreateCompatibleDC(System.IntPtr)">
<summary>
</summary>
<param name="hdc"></param>
<returns></returns>
</member>
<member name="M:WinAPI.GDI32.CreateDC(System.String,System.String,System.String,System.IntPtr)">
<summary>
</summary>
<param name="driverName"></param>
<param name="deviceName"></param>
<param name="output"></param>
<param name="lpInitData"></param>
<returns></returns>
</member>
<member name="M:WinAPI.GDI32.DeleteDC(System.IntPtr)">
<summary>
</summary>
<param name="dc"></param>
<returns></returns>
</member>
<member name="T:Win32API.User32">
<summary>
</summary>
</member>
<member name="M:Win32API.User32.mouse_event(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">
<summary>
模拟鼠标点击
</summary>
<param name="dwFlags"></param>
<param name="dx"></param>
<param name="dy"></param>
<param name="dwData"></param>
<param name="dwExtraInfo"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.keybd_event(System.Windows.Forms.Keys,System.Byte,System.UInt32,System.UInt32)">
<summary>
模拟按键
</summary>
<param name="bVk"></param>
<param name="bScan"></param>
<param name="dwFlags"></param>
<param name="dwExtraInfo"></param>
</member>
<member name="M:Win32API.User32.GetWindowDC(System.IntPtr)">
<summary>
</summary>
<param name="hWnd"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.MoveWindow(System.IntPtr,System.Int32,System.Int32,System.Int32,System.Int32,System.Boolean)">
<summary>
</summary>
<param name="hWnd"></param>
<param name="x"></param>
<param name="y"></param>
<param name="width"></param>
<param name="height"></param>
<param name="repaint"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.SetParent(System.IntPtr,System.IntPtr)">
<summary>
</summary>
<param name="hwndChild"></param>
<param name="hwndParent"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.GetParent(System.IntPtr)">
<summary>
The GetParent function retrieves a handle to the specified window's parent or owner.
</summary>
<param name="hwnd">Handle to the window whose parent window handle is to be retrieved.</param>
<returns>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.</returns>
</member>
<member name="M:Win32API.User32.SendMessage(System.IntPtr,System.Int32,System.Int32,System.Int32)">
<summary>
</summary>
<param name="hwnd"></param>
<param name="wMsg"></param>
<param name="wParam"></param>
<param name="lParam"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.SendMessage(System.IntPtr,System.Int32,System.IntPtr,System.IntPtr)">
<summary>
</summary>
<param name="hwnd"></param>
<param name="wMsg"></param>
<param name="wParam"></param>
<param name="lParam"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.SendMessage(System.IntPtr,System.UInt32,System.Int32,System.Int32)">
<summary>
</summary>
<param name="hWnd"></param>
<param name="Msg"></param>
<param name="wParam"></param>
<param name="lParam"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.LoadCursorFromFile(System.String)">
<summary>
</summary>
<param name="filename"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.IsWindowVisible(System.IntPtr)">
<summary>
</summary>
<param name="hwnd"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.FindWindowEx(System.IntPtr,System.IntPtr,System.String,System.String)">
<summary>
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.
</summary>
<param name="hwndParent">Handle to the parent window whose child windows are to be searched.</param>
<param name="hwndChildAfter">Handle to a child window.</param>
<param name="lpszClass">Specifies class name.</param>
<param name="lpszWindow">Pointer to a null-terminated string that specifies the window name (the window's title).</param>
<returns>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.</returns>
</member>
<member name="M:Win32API.User32.InvalidateRect(System.IntPtr,System.Drawing.Rectangle@,System.Boolean)">
<summary>
The InvalidateRect function adds a rectangle to the specified window's update region.
</summary>
<param name="hwnd">Handle to window.</param>
<param name="rect">Rectangle coordinates.</param>
<param name="bErase">Erase state.</param>
<returns>If the function succeeds, the return value is true.If the function fails, the return value is false.</returns>
</member>
<member name="M:Win32API.User32.ValidateRect(System.IntPtr,System.Drawing.Rectangle@)">
<summary>
The ValidateRect function validates the client area within a rectangle by removing the rectangle from the update region of the specified window.
</summary>
<param name="hwnd">Handle to window.</param>
<param name="rect">Validation rectangle coordinates.</param>
<returns>If the function succeeds, the return value is true.If the function fails, the return value is false.</returns>
</member>
<member name="M:Win32API.User32.GetWindowLong(System.IntPtr,System.Int32)">
<summary>
</summary>
<param name="hWnd"></param>
<param name="dwStyle"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.GetDC(System.IntPtr)">
<summary>
</summary>
<param name="hwnd"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.ReleaseDC(System.IntPtr,System.IntPtr)">
<summary>
</summary>
<param name="hwnd"></param>
<param name="hdc"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.GetClientRect(System.IntPtr,System.Drawing.Rectangle@)">
<summary>
</summary>
<param name="hwnd"></param>
<param name="rect"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.GetWindowRect(System.IntPtr,System.Drawing.Rectangle@)">
<summary>
</summary>
<param name="hWnd"></param>
<param name="rect"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.UpdateLayeredWindow(System.IntPtr,System.IntPtr,System.Drawing.Point@,System.Drawing.Size@,System.IntPtr,System.Drawing.Point@,System.Int32,WinAPI.Struct.BLENDFUNCTION@,System.Int32)">
<summary>
</summary>
<param name="hwnd"></param>
<param name="hdcDst"></param>
<param name="pptDst"></param>
<param name="psize"></param>
<param name="hdcSrc"></param>
<param name="pprSrc"></param>
<param name="crKey"></param>
<param name="pblend"></param>
<param name="dwFlags"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.SetWindowLong(System.IntPtr,System.Int32,System.Int32)">
<summary>
</summary>
<param name="hWnd"></param>
<param name="nIndex"></param>
<param name="dwNewLong"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.SetWindowPos(System.IntPtr,System.IntPtr,System.Int32,System.Int32,System.Int32,System.Int32,WinAPI.Struct.FlagsSetWindowPos)">
<summary>
Changes the size, position, and Z order of a child, pop-up, or top-level window.
These windows are ordered according to their appearance on the screen.
The topmost window receives the highest rank and is the first window in the Z order.
</summary>
<param name="hWnd">A handle to the window.</param>
<param name="hWndAfter">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.</param>
<param name="X">Specifies the new position of the left side of the window, in client coordinates.</param>
<param name="Y">Specifies the new position of the top of the window, in client coordinates.</param>
<param name="Width">Specifies the new width of the window, in pixels.</param>
<param name="Height">Specifies the new height of the window, in pixels.</param>
<param name="flags">Specifies the window sizing and positioning flags. This parameter can be a combination of the following values.</param>
<returns>If the function succeeds, the return value is nonzero, if the function fails, the return value is zero.</returns>
</member>
<member name="M:Win32API.User32.SetWindowPos(System.IntPtr,System.IntPtr,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt32)">
<summary>
</summary>
<param name="hWnd"></param>
<param name="hWndInsertAfter"></param>
<param name="X"></param>
<param name="Y"></param>
<param name="cx"></param>
<param name="cy"></param>
<param name="uFlags"></param>
<returns></returns>
</member>
</members>
</doc>

View File

@ -22410,13 +22410,16 @@
</member>
<member name="P:BrightIdeasSoftware.BaseRenderer.UseCustomCheckboxImages">
<summary>
此渲染器是否将使用父ObjectListView中的自定义图像来绘制复选框图像。
Will this renderer use the custom images from the parent ObjectListView
to draw the checkbox images.
</summary>
<remarks>
<para>
如果为true则渲染器将使用StateImageList中的图像来表示复选框。0-未选中1-选中2-不确定。
If this is true, the renderer will use the images from the
StateImageList to represent checkboxes. 0 - unchecked, 1 - checked, 2 - indeterminate.
</para>
<para>如果为False(默认值),则渲染器将使用.NET的标准CheckBoxRenender。</para>
<para>If this is false (the default), then the renderer will use .NET's standard
CheckBoxRenderer.</para>
</remarks>
</member>
<member name="M:BrightIdeasSoftware.BaseRenderer.AlignRectangle(System.Drawing.Rectangle,System.Drawing.Rectangle)">
@ -23401,7 +23404,7 @@
</member>
<member name="M:BrightIdeasSoftware.MultiImageRenderer.#ctor(System.Object,System.Int32,System.Int32,System.Int32)">
<summary>
创建一个图像渲染器该图像渲染器最多可以绘制指定的图像的maxImages次数。
Make an image renderer that will draw the indicated image, at most maxImages times.
</summary>
<param name="imageSelector"></param>
<param name="maxImages"></param>
@ -23410,12 +23413,12 @@
</member>
<member name="P:BrightIdeasSoftware.MultiImageRenderer.ImageIndex">
<summary>
应绘制的图像索引
The index of the image that should be drawn
</summary>
</member>
<member name="P:BrightIdeasSoftware.MultiImageRenderer.ImageName">
<summary>
应绘制的图像名称
The name of the image that should be drawn
</summary>
</member>
<member name="P:BrightIdeasSoftware.MultiImageRenderer.ImageSelector">
@ -23426,17 +23429,17 @@
</member>
<member name="P:BrightIdeasSoftware.MultiImageRenderer.MaxNumberImages">
<summary>
此渲染器应绘制的最大图像数
What is the maximum number of images that this renderer should draw?
</summary>
</member>
<member name="P:BrightIdeasSoftware.MultiImageRenderer.MinimumValue">
<summary>
小于或等于此值的值将不绘制图像
Values less than or equal to this will have 0 images drawn
</summary>
</member>
<member name="P:BrightIdeasSoftware.MultiImageRenderer.MaximumValue">
<summary>
大于或等于该值的值将绘制MaxNumberImages图像
Values greater than or equal to this will have MaxNumberImages images drawn
</summary>
</member>
<member name="M:BrightIdeasSoftware.MultiImageRenderer.Render(System.Drawing.Graphics,System.Drawing.Rectangle)">
@ -23494,59 +23497,59 @@
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.UseGdiTextRendering">
<summary>
文本是否应该使用GDI例程呈现这使文本看起来更像本机列表视图控件。
Should text be rendered using GDI routines? This makes the text look more
like a native List view control.
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.TitleFont">
<summary>
获取或设置标题字体
Gets or set the font that will be used to draw the title of the task
</summary>
<remarks>If this is null, the ListView's font will be used</remarks>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.TitleFontOrDefault">
<summary>
返回已为标题设置的字体或默认值
Return a font that has been set for the title or a reasonable default
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.TitleColor">
<summary>
获取或设置任务标题(Title)的颜色
Gets or set the color of the title of the task
</summary>
<remarks>当任务未被选中或列表视图具有半透明选择机制时,将使用此颜色。
</remarks>
<remarks>This color is used when the task is not selected or when the listview
has a translucent selection mechanism.</remarks>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.TitleColorOrDefault">
<summary>
返回任务标题的颜色或默认值
Return the color of the title of the task or a reasonable default
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.DescriptionFont">
<summary>
获取或设置任务描述(Description)的字体
Gets or set the font that will be used to draw the description of the task
</summary>
<remarks>如果为null则使用listview的字体</remarks>
<remarks>If this is null, the ListView's font will be used</remarks>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.DescriptionFontOrDefault">
<summary>
返回已为Description设置的字体或默认值
Return a font that has been set for the title or a reasonable default
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.DescriptionColor">
<summary>
获取或设置任务描述(Description)的颜色
Gets or set the color of the description of the task
</summary>
<remarks>
当任务未被选中或列表视图具有半透明选择机制时,将使用此颜色。
</remarks>
<remarks>This color is used when the task is not selected or when the listview
has a translucent selection mechanism.</remarks>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.DescriptionColorOrDefault">
<summary>
返回任务描述(Description)的颜色或默认值
Return the color of the description of the task or a reasonable default
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.ImageTextSpace">
<summary>
获取或设置图片和文字之间的距离
Gets or sets the number of pixels that will be left between the image and the text
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.TopSpace">
@ -23556,12 +23559,12 @@
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.TitleDescriptionSpace">
<summary>
获取或设置标题(Title)和描述(Description)之间的距离(单位:像素)
Gets or sets the number of pixels that will be left between the title and the description
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.DescriptionAspectName">
<summary>
获取或设置跟Description挂钩的模型对象名称
Gets or sets the name of the aspect of the model object that contains the task description
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.Filter">
@ -23618,42 +23621,67 @@
</member>
<member name="T:BrightIdeasSoftware.ColumnButtonRenderer">
<summary>
此渲染器在其单元格中绘制一个功能按钮
This renderer draws a functioning button in its cell
</summary>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.SizingMode">
<summary>
获取或设置按钮的大小模式
Gets or sets how each button will be sized
</summary>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.ButtonSize">
<summary>
获取或设置SizingMode为FixedBound时按钮的大小
Gets or sets the size of the button when the SizingMode is FixedBounds
</summary>
<remarks>如果未设置,将使用单元格的边界</remarks>
<remarks>If this is not set, the bounds of the cell will be used</remarks>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.ButtonPadding">
<summary>
获取或设置当SizingMode为TextBound时单元格周围的额外空间
Gets or sets the extra space that surrounds the cell when the SizingMode is TextBounds
</summary>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.MaxButtonWidth">
<summary>
获取或设置按钮可以占用的最大宽度
-1 表示不限制宽度
Gets or sets the maximum width that a button can occupy.
-1 means there is no maximum width.
</summary>
<remarks>仅当SizingMode为TextBound时才会生效</remarks>
<remarks>This is only considered when the SizingMode is TextBounds</remarks>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.MinButtonWidth">
<summary>
获取或设置按钮可以占用的最小宽度。
-1 表示不限制宽度
Gets or sets the minimum width that a button can occupy.
-1 means there is no minimum width.
</summary>
<remarks>This is only considered when the SizingMode is TextBounds</remarks>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.ButtonForeColor">
<summary>
获取或设置此列按钮的字体颜色(如果有按钮的话)
</summary>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.ButtonBaseColor">
<summary>
获取或设置此列按钮的背景颜色(如果有按钮的话)
</summary>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.ButtonBorderColor">
<summary>
获取或设置此列按钮的边框颜色(如果有按钮的话)
</summary>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.ButtonInnerBorderColor">
<summary>
获取或设置此列按钮的内边框颜色(如果有按钮的话)
</summary>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.ButtonDrawBorder">
<summary>
获取或设置此列按钮是否画边框(如果有按钮的话)
</summary>
<remarks>仅当SizingMode为TextBound时才会生效</remarks>
</member>
<member name="M:BrightIdeasSoftware.ColumnButtonRenderer.CalculateContentSize(System.Drawing.Graphics,System.Drawing.Rectangle)">
<summary>
计算内容的大小
Calculate the size of the contents
</summary>
<param name="g"></param>
<param name="r"></param>
@ -23661,7 +23689,7 @@
</member>
<member name="M:BrightIdeasSoftware.ColumnButtonRenderer.DrawImageAndText(System.Drawing.Graphics,System.Drawing.Rectangle)">
<summary>
画按钮
Draw the button
</summary>
<param name="g"></param>
<param name="r"></param>
@ -23678,13 +23706,13 @@
</member>
<member name="M:BrightIdeasSoftware.ColumnButtonRenderer.CalculatePushButtonState">
<summary>
按钮的状态
What is the state of the button?
</summary>
<returns></returns>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.IsButtonHot">
<summary>
鼠标是否在按钮上
Is the mouse over the button?
</summary>
</member>
<member name="T:BrightIdeasSoftware.IItemStyle">
@ -23884,6 +23912,58 @@
</summary>
<param name="color"></param>
</member>
<member name="F:BrightIdeasSoftware.Rendering.buttonStyle.ButtonNormal">
<summary>
正常为选中按钮
</summary>
</member>
<member name="F:BrightIdeasSoftware.Rendering.buttonStyle.ButtonFocuse">
<summary>
获得焦点的按钮
</summary>
</member>
<member name="F:BrightIdeasSoftware.Rendering.buttonStyle.ButtonMouseOver">
<summary>
鼠标经过样式
</summary>
</member>
<member name="F:BrightIdeasSoftware.Rendering.buttonStyle.ButtonFocuseAndMouseOver">
<summary>
获得焦点并鼠标经过
</summary>
</member>
<member name="T:BrightIdeasSoftware.Rendering.Util_GDI">
<summary>
自定义GDI工具绘制按钮
</summary>
</member>
<member name="M:BrightIdeasSoftware.Rendering.Util_GDI.DrawCircleButton(System.String,System.Drawing.Graphics,System.Drawing.Point,System.Int32,BrightIdeasSoftware.Rendering.buttonStyle)">
<summary>
绘制圆形按钮(用法同矩形按钮)
</summary>
<param name="text"></param>
<param name="g"></param>
<param name="Location"></param>
<param name="r"></param>
<param name="btnStyle"></param>
</member>
<member name="M:BrightIdeasSoftware.Rendering.Util_GDI.DrawRoundButton(System.String,System.Drawing.Graphics,System.Drawing.Rectangle,BrightIdeasSoftware.Rendering.buttonStyle)">
<summary>
绘制圆角按钮
</summary>
<param name="Text">要绘制的文字</param>
<param name="g">Graphics 对象</param>
<param name="rect">要填充的矩形</param>
<param name="btnStyle"></param>
</member>
<member name="M:BrightIdeasSoftware.Rendering.Util_GDI.GetRoundRectangle(System.Drawing.Rectangle,System.Int32)">
<summary>
根据普通矩形得到圆角矩形的路径
</summary>
<param name="rectangle">原始矩形</param>
<param name="r">半径</param>
<returns>图形路径</returns>
</member>
<member name="T:BrightIdeasSoftware.GlassPanelForm">
<summary>
A GlassPanelForm sits transparently over an ObjectListView to show overlays.

View File

@ -469,5 +469,21 @@
</summary>
<param name="e"></param>
</member>
<member name="T:ryUpdate.Properties.Resources">
<summary>
一个强类型的资源类,用于查找本地化的字符串等。
</summary>
</member>
<member name="P:ryUpdate.Properties.Resources.ResourceManager">
<summary>
返回此类使用的缓存的 ResourceManager 实例。
</summary>
</member>
<member name="P:ryUpdate.Properties.Resources.Culture">
<summary>
重写当前线程的 CurrentUICulture 属性,对
使用此强类型资源类的所有资源查找执行重写。
</summary>
</member>
</members>
</doc>

View File

@ -1411,7 +1411,6 @@
<summary>
获取hosts并转换hosts内容
</summary>
<param name="list">hosts内容</param>
<returns></returns>
</member>
<member name="M:ryCommon.Hosts.AddHosts(System.String)">
@ -1588,6 +1587,81 @@
</summary>
</member>
<member name="F:ryCommon.RyFiles.ShowCommands.SW_HIDE">
<summary>
</summary>
</member>
<member name="F:ryCommon.RyFiles.ShowCommands.SW_SHOWNORMAL">
<summary>
</summary>
</member>
<member name="F:ryCommon.RyFiles.ShowCommands.SW_NORMAL">
<summary>
</summary>
</member>
<member name="F:ryCommon.RyFiles.ShowCommands.SW_SHOWMINIMIZED">
<summary>
</summary>
</member>
<member name="F:ryCommon.RyFiles.ShowCommands.SW_SHOWMAXIMIZED">
<summary>
</summary>
</member>
<member name="F:ryCommon.RyFiles.ShowCommands.SW_MAXIMIZE">
<summary>
</summary>
</member>
<member name="F:ryCommon.RyFiles.ShowCommands.SW_SHOWNOACTIVATE">
<summary>
</summary>
</member>
<member name="F:ryCommon.RyFiles.ShowCommands.SW_SHOW">
<summary>
</summary>
</member>
<member name="F:ryCommon.RyFiles.ShowCommands.SW_MINIMIZE">
<summary>
</summary>
</member>
<member name="F:ryCommon.RyFiles.ShowCommands.SW_SHOWMINNOACTIVE">
<summary>
</summary>
</member>
<member name="F:ryCommon.RyFiles.ShowCommands.SW_SHOWNA">
<summary>
</summary>
</member>
<member name="F:ryCommon.RyFiles.ShowCommands.SW_RESTORE">
<summary>
</summary>
</member>
<member name="F:ryCommon.RyFiles.ShowCommands.SW_SHOWDEFAULT">
<summary>
</summary>
</member>
<member name="F:ryCommon.RyFiles.ShowCommands.SW_FORCEMINIMIZE">
<summary>
</summary>
</member>
<member name="F:ryCommon.RyFiles.ShowCommands.SW_MAX">
<summary>
</summary>
</member>
<member name="M:ryCommon.RyFiles.DeleteFile(System.String,System.Boolean,System.Boolean,System.Boolean,System.String@)">
<summary>
删除单个文件。
@ -1764,6 +1838,7 @@
</summary>
<param name="FilePath"></param>
<param name="PramCom"></param>
<param name="lpDirectory"></param>
<returns></returns>
</member>
<member name="M:ryCommon.RyFiles.RunProc(System.String)">
@ -1812,12 +1887,14 @@
<summary>
追加日志
</summary>
<param name="path"></param>
<param name="content"></param>
</member>
<member name="M:ryCommon.RyFiles.AppendAllText(System.String,System.String)">
<summary>
追加文件
</summary>
<param name="path"></param>
<param name="content"></param>
</member>
<member name="M:ryCommon.RyFiles.ReadAllText(System.String)">
@ -2030,6 +2107,188 @@
<param name="data"></param>
<returns></returns>
</member>
<member name="T:ryCommon.Auto">
<summary>
对鼠标或键盘的自动化操作
</summary>
</member>
<member name="F:ryCommon.Auto.MK_LBUTTON">
<summary>
鼠标左键
</summary>
</member>
<member name="F:ryCommon.Auto.MK_MBUTTON">
<summary>
鼠标中键
</summary>
</member>
<member name="F:ryCommon.Auto.MK_RBUTTON">
<summary>
鼠标右键
</summary>
</member>
<member name="M:ryCommon.Auto.KeyButton(System.IntPtr,System.Int32,System.Boolean)">
<summary>
模拟键盘按键
</summary>
<param name="hWnd"></param>
<param name="key"></param>
<param name="isPress">按下还是抬起</param>
</member>
<member name="M:ryCommon.Auto.Mouse_Wheel(System.IntPtr,System.Drawing.Point,System.Int32)">
<summary>
鼠标滚轮
</summary>
<param name="hWnd"></param>
<param name="mouse_position"></param>
<param name="delta"></param>
</member>
<member name="M:ryCommon.Auto.Mouse_Move(System.IntPtr,System.Int32,System.Drawing.Point)">
<summary>
鼠标移动
</summary>
<param name="hWnd"></param>
<param name="button"></param>
<param name="mouse_position"></param>
</member>
<member name="M:ryCommon.Auto.Mouse_Button(System.IntPtr,System.Windows.Forms.MouseButtons,System.Drawing.Point,System.Boolean)">
<summary>
自定义鼠标按下或抬起
</summary>
<param name="hWnd"></param>
<param name="button"></param>
<param name="mouse_position"></param>
<param name="isPress"></param>
</member>
<member name="M:ryCommon.Auto.LeftClick(System.IntPtr,System.Int32,System.Int32)">
<summary>
左键单击鼠标(支持后台单击)
</summary>
<param name="handle">指定要发送单击命令的句柄</param>
<param name="x">坐标x(句柄内的坐标,非屏幕坐标)</param>
<param name="y">坐标y(句柄内的坐标,非屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.LeftClick(System.IntPtr,System.Drawing.Point)">
<summary>
左键单击鼠标(支持后台单击)
</summary>
<param name="handle">指定要发送单击命令的句柄</param>
<param name="point">坐标(句柄内的坐标,非屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.RightClick(System.IntPtr,System.Int32,System.Int32)">
<summary>
右键单击鼠标(支持后台单击)
</summary>
<param name="handle">指定要发送单击命令的句柄</param>
<param name="x">坐标x(句柄内的坐标,非屏幕坐标)</param>
<param name="y">坐标y(句柄内的坐标,非屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.RightClick(System.IntPtr,System.Drawing.Point)">
<summary>
右键单击鼠标(支持后台单击)
</summary>
<param name="handle">指定要发送单击命令的句柄</param>
<param name="point">坐标(句柄内的坐标,非屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.MiddleClick(System.IntPtr,System.Int32,System.Int32)">
<summary>
中键单击鼠标(支持后台单击)
</summary>
<param name="handle">指定要发送单击命令的句柄</param>
<param name="x">坐标x(句柄内的坐标,非屏幕坐标)</param>
<param name="y">坐标y(句柄内的坐标,非屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.MiddleClick(System.IntPtr,System.Drawing.Point)">
<summary>
中键单击鼠标(支持后台单击)
</summary>
<param name="handle">指定要发送单击命令的句柄</param>
<param name="point">坐标(句柄内的坐标,非屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.LeftClick(System.Int32,System.Int32)">
<summary>
左键单击鼠标(不支持后台单击)
</summary>
<param name="x">坐标x(屏幕坐标)</param>
<param name="y">坐标y(屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.LeftClick(System.Drawing.Point)">
<summary>
左键单击鼠标(不支持后台单击)
</summary>
<param name="point">坐标(屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.RightClick(System.Int32,System.Int32)">
<summary>
右键单击鼠标(不支持后台单击)
</summary>
<param name="x">坐标x(屏幕坐标)</param>
<param name="y">坐标y(屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.RightClick(System.Drawing.Point)">
<summary>
右键单击鼠标(不支持后台单击)
</summary>
<param name="point">坐标(屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.MiddleClick(System.Int32,System.Int32)">
<summary>
中键单击鼠标(不支持后台单击)
</summary>
<param name="x">坐标x(屏幕坐标)</param>
<param name="y">坐标y(屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.MiddleClick(System.Drawing.Point)">
<summary>
中键单击鼠标(不支持后台单击)
</summary>
<param name="point">坐标(屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.PasteText(System.String)">
<summary>
粘贴文本
</summary>
<param name="text"></param>
</member>
<member name="M:ryCommon.Auto.GetRect(System.IntPtr,System.Drawing.Size@)">
<summary>
获取指定句柄的大小及位置
</summary>
<param name="handle"></param>
<param name="size"></param>
<returns></returns>
</member>
<member name="M:ryCommon.Auto.SetRect(System.IntPtr,System.Drawing.Size)">
<summary>
设置指定句柄的大小
</summary>
<param name="handle"></param>
<param name="size"></param>
</member>
<member name="M:ryCommon.Auto.IsInRect(MyDb.RyWin32.RECT,System.Drawing.Point)">
<summary>
判断鼠标位置是不是在指定的矩形中
</summary>
<param name="rect"></param>
<param name="mouse_position"></param>
<returns></returns>
</member>
<member name="M:ryCommon.Auto.ImageEquals(System.Drawing.Bitmap,System.Drawing.Bitmap)">
<summary>
判断2张图是否相似度超90
</summary>
<param name="bmpOne"></param>
<param name="bmpTwo"></param>
<returns></returns>
</member>
<member name="M:ryCommon.Auto.GetXsd(System.Drawing.Color,System.Drawing.Color)">
<summary>
/获取2种颜色的相似度,范围为0~100
</summary>
<param name="c1"></param>
<param name="c2"></param>
<returns></returns>
</member>
<member name="T:ryCommon.ModalForm">
<summary>
新模态窗体
@ -2503,6 +2762,48 @@
<param name="IEMode">7000 表示IE7兼容视图模式;8000 表示IE8 标准模式 ;8888 表示IE8 强制标准模式,在渲染失败的情况下不尝试用兼容视图模式</param>
<returns></returns>
</member>
<member name="M:ryCommon.RyRegedit.SetFileAssociation(System.String,System.String,System.String,System.String,System.String)">
<summary>
设置文件关联
</summary>
<param name="Ext">扩展名(如.apk)</param>
<param name="ExtName">映射的扩展名(如apkfile)</param>
<param name="sName">app名称(建议用英文数字)</param>
<param name="AssDes">文件关联描述</param>
<param name="filePath">文件路径</param>
</member>
<member name="M:ryCommon.RyRegedit.SetFileAssociation(System.String,System.String,System.String,System.String)">
<summary>
设置文件关联
</summary>
<param name="ExtName">映射的扩展名(如apkfile)</param>
<param name="sName">app名称(建议用英文数字)</param>
<param name="AssDes">文件关联描述</param>
<param name="filePath">文件路径</param>
</member>
<member name="M:ryCommon.RyRegedit.SetFileAssociationOpenAs(System.String,System.String,System.String,System.String)">
<summary>
在指定文件格式右键菜单中增加菜单
</summary>
<param name="Ext">扩展名(如.apk)</param>
<param name="sName">app名称(建议用英文数字)</param>
<param name="AssDes">文件关联描述</param>
<param name="filePath">文件路径</param>
</member>
<member name="M:ryCommon.RyRegedit.DelFileAssociation(System.String,System.String)">
<summary>
删除文件关联
</summary>
<param name="ExtName">映射的扩展名(如apkfile)</param>
<param name="sName">app名称(建议用英文数字)</param>
</member>
<member name="M:ryCommon.RyRegedit.GetFileAssociation(System.String,System.String)">
<summary>
获取文件关联是否存在
</summary>
<param name="ExtName">映射的扩展名(如apkfile)</param>
<param name="sName">app名称(建议用英文数字)</param>
</member>
<member name="T:ryCommon.RyRegedit.IeMode">
<summary>
采用的IE模式
@ -2686,6 +2987,16 @@
高级拖放事件
</summary>
</member>
<member name="F:ElevatedDragDropManager.IsVistaOrHigher">
<summary>
</summary>
</member>
<member name="F:ElevatedDragDropManager.Is7OrHigher">
<summary>
</summary>
</member>
<member name="M:ElevatedDragDropManager.#ctor">
<summary>
@ -3733,6 +4044,7 @@
获取HmacSHA256
</summary>
<param name="data"></param>
<param name="pwd"></param>
<returns></returns>
</member>
<member name="M:rySafe.MD5Sha1.GetSHA224(System.String)">
@ -4860,5 +5172,380 @@
<param name="size"></param>
<returns></returns>
</member>
<member name="T:WinAPI.Struct">
<summary>
</summary>
</member>
<member name="T:WinAPI.Struct.BLENDFUNCTION">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.BLENDFUNCTION.BlendOp">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.BLENDFUNCTION.BlendFlags">
<summary>
/
</summary>
</member>
<member name="F:WinAPI.Struct.BLENDFUNCTION.SourceConstantAlpha">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.BLENDFUNCTION.AlphaFormat">
<summary>
</summary>
</member>
<member name="T:WinAPI.Struct.FlagsSetWindowPos">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOSIZE">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOMOVE">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOZORDER">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOREDRAW">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOACTIVATE">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_FRAMECHANGED">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_SHOWWINDOW">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_HIDEWINDOW">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOCOPYBITS">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOOWNERZORDER">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOSENDCHANGING">
<summary>
/
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_DRAWFRAME">
<summary>
/
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOREPOSITION">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_DEFERERASE">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_ASYNCWINDOWPOS">
<summary>
</summary>
</member>
<member name="T:WinAPI.GDI32">
<summary>
</summary>
</member>
<member name="M:WinAPI.GDI32.DeleteObject(System.IntPtr)">
<summary>
</summary>
<param name="hObject"></param>
<returns></returns>
</member>
<member name="M:WinAPI.GDI32.SelectObject(System.IntPtr,System.IntPtr)">
<summary>
</summary>
<param name="hdc"></param>
<param name="hgdiobj"></param>
<returns></returns>
</member>
<member name="M:WinAPI.GDI32.CreateCompatibleDC(System.IntPtr)">
<summary>
</summary>
<param name="hdc"></param>
<returns></returns>
</member>
<member name="M:WinAPI.GDI32.CreateDC(System.String,System.String,System.String,System.IntPtr)">
<summary>
</summary>
<param name="driverName"></param>
<param name="deviceName"></param>
<param name="output"></param>
<param name="lpInitData"></param>
<returns></returns>
</member>
<member name="M:WinAPI.GDI32.DeleteDC(System.IntPtr)">
<summary>
</summary>
<param name="dc"></param>
<returns></returns>
</member>
<member name="T:Win32API.User32">
<summary>
</summary>
</member>
<member name="M:Win32API.User32.mouse_event(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">
<summary>
模拟鼠标点击
</summary>
<param name="dwFlags"></param>
<param name="dx"></param>
<param name="dy"></param>
<param name="dwData"></param>
<param name="dwExtraInfo"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.keybd_event(System.Windows.Forms.Keys,System.Byte,System.UInt32,System.UInt32)">
<summary>
模拟按键
</summary>
<param name="bVk"></param>
<param name="bScan"></param>
<param name="dwFlags"></param>
<param name="dwExtraInfo"></param>
</member>
<member name="M:Win32API.User32.GetWindowDC(System.IntPtr)">
<summary>
</summary>
<param name="hWnd"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.MoveWindow(System.IntPtr,System.Int32,System.Int32,System.Int32,System.Int32,System.Boolean)">
<summary>
</summary>
<param name="hWnd"></param>
<param name="x"></param>
<param name="y"></param>
<param name="width"></param>
<param name="height"></param>
<param name="repaint"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.SetParent(System.IntPtr,System.IntPtr)">
<summary>
</summary>
<param name="hwndChild"></param>
<param name="hwndParent"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.GetParent(System.IntPtr)">
<summary>
The GetParent function retrieves a handle to the specified window's parent or owner.
</summary>
<param name="hwnd">Handle to the window whose parent window handle is to be retrieved.</param>
<returns>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.</returns>
</member>
<member name="M:Win32API.User32.SendMessage(System.IntPtr,System.Int32,System.Int32,System.Int32)">
<summary>
</summary>
<param name="hwnd"></param>
<param name="wMsg"></param>
<param name="wParam"></param>
<param name="lParam"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.SendMessage(System.IntPtr,System.Int32,System.IntPtr,System.IntPtr)">
<summary>
</summary>
<param name="hwnd"></param>
<param name="wMsg"></param>
<param name="wParam"></param>
<param name="lParam"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.SendMessage(System.IntPtr,System.UInt32,System.Int32,System.Int32)">
<summary>
</summary>
<param name="hWnd"></param>
<param name="Msg"></param>
<param name="wParam"></param>
<param name="lParam"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.LoadCursorFromFile(System.String)">
<summary>
</summary>
<param name="filename"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.IsWindowVisible(System.IntPtr)">
<summary>
</summary>
<param name="hwnd"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.FindWindowEx(System.IntPtr,System.IntPtr,System.String,System.String)">
<summary>
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.
</summary>
<param name="hwndParent">Handle to the parent window whose child windows are to be searched.</param>
<param name="hwndChildAfter">Handle to a child window.</param>
<param name="lpszClass">Specifies class name.</param>
<param name="lpszWindow">Pointer to a null-terminated string that specifies the window name (the window's title).</param>
<returns>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.</returns>
</member>
<member name="M:Win32API.User32.InvalidateRect(System.IntPtr,System.Drawing.Rectangle@,System.Boolean)">
<summary>
The InvalidateRect function adds a rectangle to the specified window's update region.
</summary>
<param name="hwnd">Handle to window.</param>
<param name="rect">Rectangle coordinates.</param>
<param name="bErase">Erase state.</param>
<returns>If the function succeeds, the return value is true.If the function fails, the return value is false.</returns>
</member>
<member name="M:Win32API.User32.ValidateRect(System.IntPtr,System.Drawing.Rectangle@)">
<summary>
The ValidateRect function validates the client area within a rectangle by removing the rectangle from the update region of the specified window.
</summary>
<param name="hwnd">Handle to window.</param>
<param name="rect">Validation rectangle coordinates.</param>
<returns>If the function succeeds, the return value is true.If the function fails, the return value is false.</returns>
</member>
<member name="M:Win32API.User32.GetWindowLong(System.IntPtr,System.Int32)">
<summary>
</summary>
<param name="hWnd"></param>
<param name="dwStyle"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.GetDC(System.IntPtr)">
<summary>
</summary>
<param name="hwnd"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.ReleaseDC(System.IntPtr,System.IntPtr)">
<summary>
</summary>
<param name="hwnd"></param>
<param name="hdc"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.GetClientRect(System.IntPtr,System.Drawing.Rectangle@)">
<summary>
</summary>
<param name="hwnd"></param>
<param name="rect"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.GetWindowRect(System.IntPtr,System.Drawing.Rectangle@)">
<summary>
</summary>
<param name="hWnd"></param>
<param name="rect"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.UpdateLayeredWindow(System.IntPtr,System.IntPtr,System.Drawing.Point@,System.Drawing.Size@,System.IntPtr,System.Drawing.Point@,System.Int32,WinAPI.Struct.BLENDFUNCTION@,System.Int32)">
<summary>
</summary>
<param name="hwnd"></param>
<param name="hdcDst"></param>
<param name="pptDst"></param>
<param name="psize"></param>
<param name="hdcSrc"></param>
<param name="pprSrc"></param>
<param name="crKey"></param>
<param name="pblend"></param>
<param name="dwFlags"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.SetWindowLong(System.IntPtr,System.Int32,System.Int32)">
<summary>
</summary>
<param name="hWnd"></param>
<param name="nIndex"></param>
<param name="dwNewLong"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.SetWindowPos(System.IntPtr,System.IntPtr,System.Int32,System.Int32,System.Int32,System.Int32,WinAPI.Struct.FlagsSetWindowPos)">
<summary>
Changes the size, position, and Z order of a child, pop-up, or top-level window.
These windows are ordered according to their appearance on the screen.
The topmost window receives the highest rank and is the first window in the Z order.
</summary>
<param name="hWnd">A handle to the window.</param>
<param name="hWndAfter">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.</param>
<param name="X">Specifies the new position of the left side of the window, in client coordinates.</param>
<param name="Y">Specifies the new position of the top of the window, in client coordinates.</param>
<param name="Width">Specifies the new width of the window, in pixels.</param>
<param name="Height">Specifies the new height of the window, in pixels.</param>
<param name="flags">Specifies the window sizing and positioning flags. This parameter can be a combination of the following values.</param>
<returns>If the function succeeds, the return value is nonzero, if the function fails, the return value is zero.</returns>
</member>
<member name="M:Win32API.User32.SetWindowPos(System.IntPtr,System.IntPtr,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt32)">
<summary>
</summary>
<param name="hWnd"></param>
<param name="hWndInsertAfter"></param>
<param name="X"></param>
<param name="Y"></param>
<param name="cx"></param>
<param name="cy"></param>
<param name="uFlags"></param>
<returns></returns>
</member>
</members>
</doc>

View File

@ -4,6 +4,21 @@
<name>MyDb_SQLite</name>
</assembly>
<members>
<member name="T:ryCommonDb.ClsDb">
<summary>
</summary>
</member>
<member name="M:ryCommonDb.ClsDb.#ctor">
<summary>
</summary>
</member>
<member name="M:ryCommonDb.ClsDb.Finalize">
<summary>
</summary>
</member>
<member name="M:ryCommonDb.ClsDb.#ctor(System.String,System.String)">
<summary>
@ -19,6 +34,21 @@
<param name="DbFilePath">数据库路径</param>
<returns></returns>
</member>
<member name="F:ryCommonDb.ClsDb.SQLite_cn">
<summary>
</summary>
</member>
<member name="F:ryCommonDb.ClsDb.DbPath">
<summary>
</summary>
</member>
<member name="F:ryCommonDb.ClsDb.DbPassWord">
<summary>
</summary>
</member>
<member name="M:ryCommonDb.ClsDb.ConnDb">
<summary>
连接数据库
@ -37,6 +67,12 @@
</summary>
<returns></returns>
</member>
<member name="M:ryCommonDb.ClsDb.ChangePwd(System.String)">
<summary>
</summary>
<param name="newPwd"></param>
</member>
<member name="M:ryCommonDb.ClsDb.ConnOrCreateDb">
<summary>
连接或创建数据库,如果数据库不存在,就创建,否则连接
@ -172,5 +208,200 @@
</summary>
<returns></returns>
</member>
<member name="T:ryCommonDb.SQLiteDataProvider">
<summary>
</summary>
</member>
<member name="F:ryCommonDb.SQLiteDataProvider.myDb">
<summary>
</summary>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.ConnDb(System.String)">
<summary>
</summary>
<param name="sql"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.CloseDb">
<summary>
</summary>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.GetCount(System.String,System.String)">
<summary>
</summary>
<param name="tableName"></param>
<param name="wheresql"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.ChangePwd(System.String)">
<summary>
</summary>
<param name="newPwd"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.AddParameter(System.String,System.Object)">
<summary>
</summary>
<param name="name"></param>
<param name="value"></param>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.ClearParameter(System.Object,System.Object)">
<summary>
</summary>
<param name="name"></param>
<param name="value"></param>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.GetParameter">
<summary>
</summary>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.GetParameter(ryCommonDb.RyQuickSQL)">
<summary>
</summary>
<param name="mySQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.GetPageSQL(System.String,System.String,System.String)">
<summary>
</summary>
<param name="tableName"></param>
<param name="wheresql"></param>
<param name="orderSQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.GetPageSQL2(System.String,System.String,System.String)">
<summary>
</summary>
<param name="tableName"></param>
<param name="wheresql"></param>
<param name="orderSQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.GetPageSQL(System.String,System.String,System.String,System.String)">
<summary>
</summary>
<param name="field"></param>
<param name="tableName"></param>
<param name="wheresql"></param>
<param name="orderSQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.GetPageSQL2(System.String,System.String,System.String,System.String)">
<summary>
</summary>
<param name="field"></param>
<param name="tableName"></param>
<param name="wheresql"></param>
<param name="orderSQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.ContainsData(System.String,System.Object[])">
<summary>
</summary>
<param name="sql"></param>
<param name="Parameter"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.ReadData(System.String,System.Object[])">
<summary>
</summary>
<param name="sql"></param>
<param name="Parameter"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.ReadData(System.String,ryCommonDb.RyQuickSQL)">
<summary>
</summary>
<param name="sql"></param>
<param name="mySQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.ReadData(System.String)">
<summary>
</summary>
<param name="sql"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.ReadData(System.String,System.String)">
<summary>
</summary>
<param name="tableName"></param>
<param name="id"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.ExecuteNonQuery(System.String,System.Object[])">
<summary>
</summary>
<param name="sql"></param>
<param name="Parameter"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.ExecuteNonQuery(System.String,ryCommonDb.RyQuickSQL)">
<summary>
</summary>
<param name="sql"></param>
<param name="mySQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.ExecuteNonQuery(System.String)">
<summary>
</summary>
<param name="sql"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.BeginTransaction">
<summary>
</summary>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.Commit">
<summary>
</summary>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.DelById(System.String,System.String)">
<summary>
</summary>
<param name="tableName"></param>
<param name="id"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.CreateDb(ryCommonDb.RyQuickSQL)">
<summary>
</summary>
<param name="mySQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.Free">
<summary>
</summary>
</member>
</members>
</doc>

View File

@ -9,6 +9,13 @@
Http连接操作帮助类
</summary>
</member>
<member name="M:DotNet4.Utilities.HttpHelper.GetSmallCookie(System.String)">
<summary>
</summary>
<param name="strcookie"></param>
<returns></returns>
</member>
<member name="M:DotNet4.Utilities.HttpHelper.GetHtml(DotNet4.Utilities.HttpItem)">
<summary>
根据相传入的数据,得到相应页面数据
@ -227,7 +234,11 @@
header对象
</summary>
</member>
<!-- Badly formed XML comment ignored for member "P:DotNet4.Utilities.HttpItem.ProtocolVersion" -->
<member name="P:DotNet4.Utilities.HttpItem.ProtocolVersion">
<summary>
获取或设置用于请求的 HTTP 版本。返回结果:用于请求的 HTTP 版本。默认为 System.Net.HttpVersion.Version11。
</summary>
</member>
<member name="P:DotNet4.Utilities.HttpItem.Expect100Continue">
<summary>
获取或设置一个 System.Boolean 值,该值确定是否使用 100-Continue 行为。如果 POST 请求需要 100-Continue 响应,则为 true否则为 false。默认值为 true。
@ -371,6 +382,11 @@
CookieCollection格式的Cookie集合同时也返回String类型的cookie
</summary>
</member>
<member name="T:RyWeb.QuickWeb">
<summary>
</summary>
</member>
<member name="M:RyWeb.QuickWeb.Post(System.String,System.String,System.String)">
<summary>
以post方式获取网页源码
@ -422,6 +438,11 @@
<param name="url"></param>
<returns></returns>
</member>
<member name="P:RyWeb.QuickWeb.UserAgent">
<summary>
</summary>
</member>
<member name="M:RyWeb.QuickWeb.Get(System.String,System.String)">
<summary>
获取网页源码
@ -435,6 +456,7 @@
获取网页源码
</summary>
<param name="url"></param>
<param name="encoding"></param>
<param name="cookie"></param>
<returns></returns>
</member>
@ -445,6 +467,24 @@
<param name="url"></param>
<returns></returns>
</member>
<member name="P:RyWeb.QuickWeb.Cookie">
<summary>
</summary>
</member>
<member name="P:RyWeb.QuickWeb.Timeout">
<summary>
</summary>
</member>
<member name="M:RyWeb.QuickWeb.UrlEncode(System.String,System.Text.Encoding)">
<summary>
</summary>
<param name="str"></param>
<param name="encode"></param>
<returns></returns>
</member>
<member name="M:RyWeb.QuickWeb.ConvertUrl(System.String,System.String)">
<summary>
将相对网址转换成绝对网址
@ -453,6 +493,16 @@
<param name="cur_pageUrl">当前页面地址</param>
<returns>转换后的绝对网址</returns>
</member>
<member name="T:RyWeb.UrlDecoder">
<summary>
</summary>
</member>
<member name="T:RyWeb.WebDecode">
<summary>
</summary>
</member>
<member name="M:RyWeb.WebDecode.UrlDecode(System.String,System.Text.Encoding)">
<summary>
url解密
@ -473,7 +523,7 @@
Url加密
</summary>
<param name="str"></param>
<param name="e"></param>
<param name="encode"></param>
<returns></returns>
</member>
<member name="M:RyWeb.WebDecode.UrlEncode(System.String)">
@ -497,6 +547,24 @@
<param name="string"></param>
<returns></returns>
</member>
<member name="M:RyWeb.WebDecode.UrlEncodeNonAscii(System.Byte[],System.Int32,System.Int32,System.Boolean)">
<summary>
</summary>
<param name="bytes"></param>
<param name="offset"></param>
<param name="count"></param>
<param name="alwaysCreateNewReturnValue"></param>
<returns></returns>
</member>
<member name="M:RyWeb.WebDecode.UrlEncodeNonAscii(System.String,System.Text.Encoding)">
<summary>
</summary>
<param name="str"></param>
<param name="e"></param>
<returns></returns>
</member>
<member name="M:RyWeb.WebDecode.UrlEncodeUnicode(System.String,System.Boolean)">
<summary>
url加密,Unicode
@ -505,6 +573,20 @@
<param name="ignoreAscii"></param>
<returns></returns>
</member>
<member name="M:RyWeb.WebDecode.IsUrlSafeChar(System.Char)">
<summary>
</summary>
<param name="ch"></param>
<returns></returns>
</member>
<member name="M:RyWeb.WebDecode.IntToHex(System.Int32)">
<summary>
</summary>
<param name="n"></param>
<returns></returns>
</member>
<member name="M:RyWeb.WebDecode.ConvertHtmlInner(System.String)">
<summary>
Html解码,将html里未转义成功的重新转义。

View File

@ -22410,13 +22410,16 @@
</member>
<member name="P:BrightIdeasSoftware.BaseRenderer.UseCustomCheckboxImages">
<summary>
此渲染器是否将使用父ObjectListView中的自定义图像来绘制复选框图像。
Will this renderer use the custom images from the parent ObjectListView
to draw the checkbox images.
</summary>
<remarks>
<para>
如果为true则渲染器将使用StateImageList中的图像来表示复选框。0-未选中1-选中2-不确定。
If this is true, the renderer will use the images from the
StateImageList to represent checkboxes. 0 - unchecked, 1 - checked, 2 - indeterminate.
</para>
<para>如果为False(默认值),则渲染器将使用.NET的标准CheckBoxRenender。</para>
<para>If this is false (the default), then the renderer will use .NET's standard
CheckBoxRenderer.</para>
</remarks>
</member>
<member name="M:BrightIdeasSoftware.BaseRenderer.AlignRectangle(System.Drawing.Rectangle,System.Drawing.Rectangle)">
@ -23401,7 +23404,7 @@
</member>
<member name="M:BrightIdeasSoftware.MultiImageRenderer.#ctor(System.Object,System.Int32,System.Int32,System.Int32)">
<summary>
创建一个图像渲染器该图像渲染器最多可以绘制指定的图像的maxImages次数。
Make an image renderer that will draw the indicated image, at most maxImages times.
</summary>
<param name="imageSelector"></param>
<param name="maxImages"></param>
@ -23410,12 +23413,12 @@
</member>
<member name="P:BrightIdeasSoftware.MultiImageRenderer.ImageIndex">
<summary>
应绘制的图像索引
The index of the image that should be drawn
</summary>
</member>
<member name="P:BrightIdeasSoftware.MultiImageRenderer.ImageName">
<summary>
应绘制的图像名称
The name of the image that should be drawn
</summary>
</member>
<member name="P:BrightIdeasSoftware.MultiImageRenderer.ImageSelector">
@ -23426,17 +23429,17 @@
</member>
<member name="P:BrightIdeasSoftware.MultiImageRenderer.MaxNumberImages">
<summary>
此渲染器应绘制的最大图像数
What is the maximum number of images that this renderer should draw?
</summary>
</member>
<member name="P:BrightIdeasSoftware.MultiImageRenderer.MinimumValue">
<summary>
小于或等于此值的值将不绘制图像
Values less than or equal to this will have 0 images drawn
</summary>
</member>
<member name="P:BrightIdeasSoftware.MultiImageRenderer.MaximumValue">
<summary>
大于或等于该值的值将绘制MaxNumberImages图像
Values greater than or equal to this will have MaxNumberImages images drawn
</summary>
</member>
<member name="M:BrightIdeasSoftware.MultiImageRenderer.Render(System.Drawing.Graphics,System.Drawing.Rectangle)">
@ -23494,59 +23497,59 @@
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.UseGdiTextRendering">
<summary>
文本是否应该使用GDI例程呈现这使文本看起来更像本机列表视图控件。
Should text be rendered using GDI routines? This makes the text look more
like a native List view control.
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.TitleFont">
<summary>
获取或设置标题字体
Gets or set the font that will be used to draw the title of the task
</summary>
<remarks>If this is null, the ListView's font will be used</remarks>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.TitleFontOrDefault">
<summary>
返回已为标题设置的字体或默认值
Return a font that has been set for the title or a reasonable default
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.TitleColor">
<summary>
获取或设置任务标题(Title)的颜色
Gets or set the color of the title of the task
</summary>
<remarks>当任务未被选中或列表视图具有半透明选择机制时,将使用此颜色。
</remarks>
<remarks>This color is used when the task is not selected or when the listview
has a translucent selection mechanism.</remarks>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.TitleColorOrDefault">
<summary>
返回任务标题的颜色或默认值
Return the color of the title of the task or a reasonable default
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.DescriptionFont">
<summary>
获取或设置任务描述(Description)的字体
Gets or set the font that will be used to draw the description of the task
</summary>
<remarks>如果为null则使用listview的字体</remarks>
<remarks>If this is null, the ListView's font will be used</remarks>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.DescriptionFontOrDefault">
<summary>
返回已为Description设置的字体或默认值
Return a font that has been set for the title or a reasonable default
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.DescriptionColor">
<summary>
获取或设置任务描述(Description)的颜色
Gets or set the color of the description of the task
</summary>
<remarks>
当任务未被选中或列表视图具有半透明选择机制时,将使用此颜色。
</remarks>
<remarks>This color is used when the task is not selected or when the listview
has a translucent selection mechanism.</remarks>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.DescriptionColorOrDefault">
<summary>
返回任务描述(Description)的颜色或默认值
Return the color of the description of the task or a reasonable default
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.ImageTextSpace">
<summary>
获取或设置图片和文字之间的距离
Gets or sets the number of pixels that will be left between the image and the text
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.TopSpace">
@ -23556,12 +23559,12 @@
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.TitleDescriptionSpace">
<summary>
获取或设置标题(Title)和描述(Description)之间的距离(单位:像素)
Gets or sets the number of pixels that will be left between the title and the description
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.DescriptionAspectName">
<summary>
获取或设置跟Description挂钩的模型对象名称
Gets or sets the name of the aspect of the model object that contains the task description
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.Filter">
@ -23618,42 +23621,67 @@
</member>
<member name="T:BrightIdeasSoftware.ColumnButtonRenderer">
<summary>
此渲染器在其单元格中绘制一个功能按钮
This renderer draws a functioning button in its cell
</summary>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.SizingMode">
<summary>
获取或设置按钮的大小模式
Gets or sets how each button will be sized
</summary>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.ButtonSize">
<summary>
获取或设置SizingMode为FixedBound时按钮的大小
Gets or sets the size of the button when the SizingMode is FixedBounds
</summary>
<remarks>如果未设置,将使用单元格的边界</remarks>
<remarks>If this is not set, the bounds of the cell will be used</remarks>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.ButtonPadding">
<summary>
获取或设置当SizingMode为TextBound时单元格周围的额外空间
Gets or sets the extra space that surrounds the cell when the SizingMode is TextBounds
</summary>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.MaxButtonWidth">
<summary>
获取或设置按钮可以占用的最大宽度
-1 表示不限制宽度
Gets or sets the maximum width that a button can occupy.
-1 means there is no maximum width.
</summary>
<remarks>仅当SizingMode为TextBound时才会生效</remarks>
<remarks>This is only considered when the SizingMode is TextBounds</remarks>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.MinButtonWidth">
<summary>
获取或设置按钮可以占用的最小宽度。
-1 表示不限制宽度
Gets or sets the minimum width that a button can occupy.
-1 means there is no minimum width.
</summary>
<remarks>This is only considered when the SizingMode is TextBounds</remarks>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.ButtonForeColor">
<summary>
获取或设置此列按钮的字体颜色(如果有按钮的话)
</summary>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.ButtonBaseColor">
<summary>
获取或设置此列按钮的背景颜色(如果有按钮的话)
</summary>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.ButtonBorderColor">
<summary>
获取或设置此列按钮的边框颜色(如果有按钮的话)
</summary>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.ButtonInnerBorderColor">
<summary>
获取或设置此列按钮的内边框颜色(如果有按钮的话)
</summary>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.ButtonDrawBorder">
<summary>
获取或设置此列按钮是否画边框(如果有按钮的话)
</summary>
<remarks>仅当SizingMode为TextBound时才会生效</remarks>
</member>
<member name="M:BrightIdeasSoftware.ColumnButtonRenderer.CalculateContentSize(System.Drawing.Graphics,System.Drawing.Rectangle)">
<summary>
计算内容的大小
Calculate the size of the contents
</summary>
<param name="g"></param>
<param name="r"></param>
@ -23661,7 +23689,7 @@
</member>
<member name="M:BrightIdeasSoftware.ColumnButtonRenderer.DrawImageAndText(System.Drawing.Graphics,System.Drawing.Rectangle)">
<summary>
画按钮
Draw the button
</summary>
<param name="g"></param>
<param name="r"></param>
@ -23678,13 +23706,13 @@
</member>
<member name="M:BrightIdeasSoftware.ColumnButtonRenderer.CalculatePushButtonState">
<summary>
按钮的状态
What is the state of the button?
</summary>
<returns></returns>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.IsButtonHot">
<summary>
鼠标是否在按钮上
Is the mouse over the button?
</summary>
</member>
<member name="T:BrightIdeasSoftware.IItemStyle">
@ -23884,6 +23912,58 @@
</summary>
<param name="color"></param>
</member>
<member name="F:BrightIdeasSoftware.Rendering.buttonStyle.ButtonNormal">
<summary>
正常为选中按钮
</summary>
</member>
<member name="F:BrightIdeasSoftware.Rendering.buttonStyle.ButtonFocuse">
<summary>
获得焦点的按钮
</summary>
</member>
<member name="F:BrightIdeasSoftware.Rendering.buttonStyle.ButtonMouseOver">
<summary>
鼠标经过样式
</summary>
</member>
<member name="F:BrightIdeasSoftware.Rendering.buttonStyle.ButtonFocuseAndMouseOver">
<summary>
获得焦点并鼠标经过
</summary>
</member>
<member name="T:BrightIdeasSoftware.Rendering.Util_GDI">
<summary>
自定义GDI工具绘制按钮
</summary>
</member>
<member name="M:BrightIdeasSoftware.Rendering.Util_GDI.DrawCircleButton(System.String,System.Drawing.Graphics,System.Drawing.Point,System.Int32,BrightIdeasSoftware.Rendering.buttonStyle)">
<summary>
绘制圆形按钮(用法同矩形按钮)
</summary>
<param name="text"></param>
<param name="g"></param>
<param name="Location"></param>
<param name="r"></param>
<param name="btnStyle"></param>
</member>
<member name="M:BrightIdeasSoftware.Rendering.Util_GDI.DrawRoundButton(System.String,System.Drawing.Graphics,System.Drawing.Rectangle,BrightIdeasSoftware.Rendering.buttonStyle)">
<summary>
绘制圆角按钮
</summary>
<param name="Text">要绘制的文字</param>
<param name="g">Graphics 对象</param>
<param name="rect">要填充的矩形</param>
<param name="btnStyle"></param>
</member>
<member name="M:BrightIdeasSoftware.Rendering.Util_GDI.GetRoundRectangle(System.Drawing.Rectangle,System.Int32)">
<summary>
根据普通矩形得到圆角矩形的路径
</summary>
<param name="rectangle">原始矩形</param>
<param name="r">半径</param>
<returns>图形路径</returns>
</member>
<member name="T:BrightIdeasSoftware.GlassPanelForm">
<summary>
A GlassPanelForm sits transparently over an ObjectListView to show overlays.

View File

@ -4,11 +4,21 @@
<name>ryUpdate</name>
</assembly>
<members>
<member name="T:LiveUpdate.ClsLiveUpdate">
<summary>
</summary>
</member>
<member name="F:LiveUpdate.ClsLiveUpdate.UpdateUrl">
<summary>
升级地址
</summary>
</member>
<member name="F:LiveUpdate.ClsLiveUpdate.CurUserId">
<summary>
</summary>
</member>
<member name="F:LiveUpdate.ClsLiveUpdate.UpdateAfterTime">
<summary>
隔多久后再次检查更新
@ -34,6 +44,21 @@
当前安装的数据库版本
</summary>
</member>
<member name="F:LiveUpdate.ClsLiveUpdate.SaveFileName">
<summary>
</summary>
</member>
<member name="F:LiveUpdate.ClsLiveUpdate.DownUrl">
<summary>
</summary>
</member>
<member name="F:LiveUpdate.ClsLiveUpdate.isExit">
<summary>
</summary>
</member>
<member name="P:LiveUpdate.ClsLiveUpdate.UpdateType">
<summary>
获取当前更新的类型
@ -44,17 +69,57 @@
每隔n小时检测一次更新
</summary>
</member>
<member name="E:LiveUpdate.ClsLiveUpdate.OnReadComplete">
<summary>
读取版本信息完成后激发
</summary>
</member>
<member name="E:LiveUpdate.ClsLiveUpdate.OnNoUpdate">
<summary>
没有版本更新时激发
</summary>
</member>
<member name="E:LiveUpdate.ClsLiveUpdate.OnUpdateComplete">
<summary>
发现新版本时激发
</summary>
</member>
<member name="E:LiveUpdate.ClsLiveUpdate.OnHappenError">
<summary>
发生错误后激发
</summary>
</member>
<member name="E:LiveUpdate.ClsLiveUpdate.ProgressChanged">
<summary>
更新进度变化后激发
</summary>
</member>
<member name="M:LiveUpdate.ClsLiveUpdate.StartLiveUpdate">
<summary>
开始检测新版本
</summary>
</member>
<member name="F:LiveUpdate.ClsLiveUpdate.ParentForm">
<summary>
</summary>
</member>
<member name="M:LiveUpdate.ClsLiveUpdate.#ctor(System.Windows.Forms.Form)">
<summary>
初始化升级函数
</summary>
<param name="ower">为null,则表示事件运行在多线程模式下,否则,事件是在窗体所在线程下</param>
</member>
<member name="P:LiveUpdate.ClsLiveUpdate.AssemblyVersion">
<summary>
</summary>
</member>
<member name="P:LiveUpdate.ClsLiveUpdate.AssemblyReVersion">
<summary>
</summary>
</member>
<member name="M:LiveUpdate.ClsLiveUpdate.GetVerInfo">
<summary>
获取版本信息
@ -80,16 +145,80 @@
结束下载
</summary>
</member>
<member name="T:LiveUpdate.RyUpdate">
<summary>
</summary>
</member>
<member name="F:LiveUpdate.RyUpdate.myLiveUpdate">
<summary>
</summary>
</member>
<member name="F:LiveUpdate.RyUpdate.dict_downlist">
<summary>
</summary>
</member>
<member name="M:LiveUpdate.RyUpdate.#ctor(System.String)">
<summary>
</summary>
<param name="url"></param>
</member>
<member name="M:LiveUpdate.RyUpdate.#ctor(System.Windows.Forms.Form,System.String)">
<summary>
</summary>
<param name="_ParentForm"></param>
<param name="url"></param>
</member>
<member name="M:LiveUpdate.RyUpdate.Finalize">
<summary>
</summary>
</member>
<member name="P:LiveUpdate.RyUpdate.CurUserId">
<summary>
当前登陆用户
</summary>
</member>
<member name="P:LiveUpdate.RyUpdate.ParentForm">
<summary>
</summary>
</member>
<member name="E:LiveUpdate.RyUpdate.OnNoUpdate">
<summary>
没有版本更新时激发
</summary>
</member>
<member name="M:LiveUpdate.RyUpdate.CheckUpdate">
<summary>
</summary>
<returns></returns>
</member>
<member name="E:LiveUpdate.RyUpdate.OnUpdateCancel">
<summary>
取消更新。
</summary>
</member>
<member name="E:LiveUpdate.RyUpdate.OnAppExit">
<summary>
</summary>
</member>
<member name="T:LiveUpdate.frmStartUpdate">
<summary>
</summary>
</member>
<member name="M:LiveUpdate.frmStartUpdate.#ctor">
<summary>
</summary>
</member>
<member name="P:LiveUpdate.frmStartUpdate.T_myLiveUpdate">
<summary>
设置升级
@ -100,6 +229,19 @@
是否是在线更新
</summary>
</member>
<member name="M:LiveUpdate.frmStartUpdate.RunFile(System.String,System.String)">
<summary>
</summary>
<param name="FilePath"></param>
<param name="PramCom"></param>
<returns></returns>
</member>
<member name="E:LiveUpdate.frmStartUpdate.OnAppExit">
<summary>
</summary>
</member>
<member name="F:LiveUpdate.frmStartUpdate.components">
<summary>
Required designer variable.
@ -117,6 +259,73 @@
the contents of this method with the code editor.
</summary>
</member>
<member name="T:LiveUpdate.FrmUpdate">
<summary>
</summary>
</member>
<member name="M:LiveUpdate.FrmUpdate.#ctor(LiveUpdate.ClsLiveUpdate)">
<summary>
</summary>
<param name="_myLiveUpdate"></param>
</member>
<member name="P:LiveUpdate.FrmUpdate.T_Capion">
<summary>
提示文本
</summary>
</member>
<member name="P:LiveUpdate.FrmUpdate.T_UpdateDate">
<summary>
更新日期
</summary>
</member>
<member name="P:LiveUpdate.FrmUpdate.T_UpdateVer">
<summary>
更新版本
</summary>
</member>
<member name="P:LiveUpdate.FrmUpdate.T_UpdateDes">
<summary>
更新描述
</summary>
</member>
<member name="M:LiveUpdate.FrmUpdate.ConvertDateStr(System.String,System.String)">
<summary>
</summary>
<param name="Str"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="M:LiveUpdate.FrmUpdate.SetUpdateInfo(LiveUpdate.UpdateInfo)">
<summary>
</summary>
<param name="e"></param>
</member>
<member name="P:LiveUpdate.FrmUpdate.T_UpdateAfterTime">
<summary>
</summary>
</member>
<member name="F:LiveUpdate.FrmUpdate.canClose">
<summary>
</summary>
</member>
<member name="M:LiveUpdate.FrmUpdate.SetForegroundWindow(System.Int32)">
<summary>
</summary>
<param name="hWnd"></param>
<returns></returns>
</member>
<member name="E:LiveUpdate.FrmUpdate.OnAppExit">
<summary>
</summary>
</member>
<member name="F:LiveUpdate.FrmUpdate.components">
<summary>
Required designer variable.
@ -134,6 +343,11 @@
the contents of this method with the code editor.
</summary>
</member>
<member name="T:LiveUpdate.UpdateInfo">
<summary>
</summary>
</member>
<member name="F:LiveUpdate.UpdateInfo.UpdateType">
<summary>
更新类型,soft或者data
@ -174,5 +388,102 @@
升级程序要使用的设置xml
</summary>
</member>
<member name="T:LiveUpdate.UpdateErrorInfo">
<summary>
</summary>
</member>
<member name="F:LiveUpdate.UpdateErrorInfo.ErrorStr">
<summary>
错误字符串
</summary>
</member>
<member name="F:LiveUpdate.UpdateErrorInfo.ErrorId">
<summary>
错误id
</summary>
</member>
<member name="T:LiveUpdate.LiveUpdateEventArgs">
<summary>
</summary>
</member>
<member name="M:LiveUpdate.LiveUpdateEventArgs.#ctor">
<summary>
</summary>
</member>
<member name="P:LiveUpdate.LiveUpdateEventArgs.CurrentFileSize">
<summary>
</summary>
</member>
<member name="P:LiveUpdate.LiveUpdateEventArgs.CurrentFileName">
<summary>
</summary>
</member>
<member name="P:LiveUpdate.LiveUpdateEventArgs.CurrentUrl">
<summary>
</summary>
</member>
<member name="P:LiveUpdate.LiveUpdateEventArgs.CurrProgress">
<summary>
</summary>
</member>
<member name="P:LiveUpdate.LiveUpdateEventArgs.IsCompleted">
<summary>
</summary>
</member>
<member name="P:LiveUpdate.LiveUpdateEventArgs.CurrentStatus">
<summary>
</summary>
</member>
<member name="T:LiveUpdate.LiveUpdateProgressChanged">
<summary>
</summary>
<param name="sender"></param>
<param name="e"></param>
</member>
<member name="T:LiveUpdate.OnAppExit">
<summary>
</summary>
<param name="sender"></param>
<param name="e"></param>
</member>
<member name="T:LiveUpdate.UpdateHandler">
<summary>
</summary>
<param name="e"></param>
</member>
<member name="T:LiveUpdate.ErrorHandler">
<summary>
</summary>
<param name="e"></param>
</member>
<member name="T:ryUpdate.Properties.Resources">
<summary>
一个强类型的资源类,用于查找本地化的字符串等。
</summary>
</member>
<member name="P:ryUpdate.Properties.Resources.ResourceManager">
<summary>
返回此类使用的缓存的 ResourceManager 实例。
</summary>
</member>
<member name="P:ryUpdate.Properties.Resources.Culture">
<summary>
重写当前线程的 CurrentUICulture 属性,对
使用此强类型资源类的所有资源查找执行重写。
</summary>
</member>
</members>
</doc>

View File

@ -1411,7 +1411,6 @@
<summary>
获取hosts并转换hosts内容
</summary>
<param name="list">hosts内容</param>
<returns></returns>
</member>
<member name="M:ryCommon.Hosts.AddHosts(System.String)">
@ -1588,6 +1587,81 @@
</summary>
</member>
<member name="F:ryCommon.RyFiles.ShowCommands.SW_HIDE">
<summary>
</summary>
</member>
<member name="F:ryCommon.RyFiles.ShowCommands.SW_SHOWNORMAL">
<summary>
</summary>
</member>
<member name="F:ryCommon.RyFiles.ShowCommands.SW_NORMAL">
<summary>
</summary>
</member>
<member name="F:ryCommon.RyFiles.ShowCommands.SW_SHOWMINIMIZED">
<summary>
</summary>
</member>
<member name="F:ryCommon.RyFiles.ShowCommands.SW_SHOWMAXIMIZED">
<summary>
</summary>
</member>
<member name="F:ryCommon.RyFiles.ShowCommands.SW_MAXIMIZE">
<summary>
</summary>
</member>
<member name="F:ryCommon.RyFiles.ShowCommands.SW_SHOWNOACTIVATE">
<summary>
</summary>
</member>
<member name="F:ryCommon.RyFiles.ShowCommands.SW_SHOW">
<summary>
</summary>
</member>
<member name="F:ryCommon.RyFiles.ShowCommands.SW_MINIMIZE">
<summary>
</summary>
</member>
<member name="F:ryCommon.RyFiles.ShowCommands.SW_SHOWMINNOACTIVE">
<summary>
</summary>
</member>
<member name="F:ryCommon.RyFiles.ShowCommands.SW_SHOWNA">
<summary>
</summary>
</member>
<member name="F:ryCommon.RyFiles.ShowCommands.SW_RESTORE">
<summary>
</summary>
</member>
<member name="F:ryCommon.RyFiles.ShowCommands.SW_SHOWDEFAULT">
<summary>
</summary>
</member>
<member name="F:ryCommon.RyFiles.ShowCommands.SW_FORCEMINIMIZE">
<summary>
</summary>
</member>
<member name="F:ryCommon.RyFiles.ShowCommands.SW_MAX">
<summary>
</summary>
</member>
<member name="M:ryCommon.RyFiles.DeleteFile(System.String,System.Boolean,System.Boolean,System.Boolean,System.String@)">
<summary>
删除单个文件。
@ -1764,6 +1838,7 @@
</summary>
<param name="FilePath"></param>
<param name="PramCom"></param>
<param name="lpDirectory"></param>
<returns></returns>
</member>
<member name="M:ryCommon.RyFiles.RunProc(System.String)">
@ -1812,12 +1887,14 @@
<summary>
追加日志
</summary>
<param name="path"></param>
<param name="content"></param>
</member>
<member name="M:ryCommon.RyFiles.AppendAllText(System.String,System.String)">
<summary>
追加文件
</summary>
<param name="path"></param>
<param name="content"></param>
</member>
<member name="M:ryCommon.RyFiles.ReadAllText(System.String)">
@ -2030,6 +2107,188 @@
<param name="data"></param>
<returns></returns>
</member>
<member name="T:ryCommon.Auto">
<summary>
对鼠标或键盘的自动化操作
</summary>
</member>
<member name="F:ryCommon.Auto.MK_LBUTTON">
<summary>
鼠标左键
</summary>
</member>
<member name="F:ryCommon.Auto.MK_MBUTTON">
<summary>
鼠标中键
</summary>
</member>
<member name="F:ryCommon.Auto.MK_RBUTTON">
<summary>
鼠标右键
</summary>
</member>
<member name="M:ryCommon.Auto.KeyButton(System.IntPtr,System.Int32,System.Boolean)">
<summary>
模拟键盘按键
</summary>
<param name="hWnd"></param>
<param name="key"></param>
<param name="isPress">按下还是抬起</param>
</member>
<member name="M:ryCommon.Auto.Mouse_Wheel(System.IntPtr,System.Drawing.Point,System.Int32)">
<summary>
鼠标滚轮
</summary>
<param name="hWnd"></param>
<param name="mouse_position"></param>
<param name="delta"></param>
</member>
<member name="M:ryCommon.Auto.Mouse_Move(System.IntPtr,System.Int32,System.Drawing.Point)">
<summary>
鼠标移动
</summary>
<param name="hWnd"></param>
<param name="button"></param>
<param name="mouse_position"></param>
</member>
<member name="M:ryCommon.Auto.Mouse_Button(System.IntPtr,System.Windows.Forms.MouseButtons,System.Drawing.Point,System.Boolean)">
<summary>
自定义鼠标按下或抬起
</summary>
<param name="hWnd"></param>
<param name="button"></param>
<param name="mouse_position"></param>
<param name="isPress"></param>
</member>
<member name="M:ryCommon.Auto.LeftClick(System.IntPtr,System.Int32,System.Int32)">
<summary>
左键单击鼠标(支持后台单击)
</summary>
<param name="handle">指定要发送单击命令的句柄</param>
<param name="x">坐标x(句柄内的坐标,非屏幕坐标)</param>
<param name="y">坐标y(句柄内的坐标,非屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.LeftClick(System.IntPtr,System.Drawing.Point)">
<summary>
左键单击鼠标(支持后台单击)
</summary>
<param name="handle">指定要发送单击命令的句柄</param>
<param name="point">坐标(句柄内的坐标,非屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.RightClick(System.IntPtr,System.Int32,System.Int32)">
<summary>
右键单击鼠标(支持后台单击)
</summary>
<param name="handle">指定要发送单击命令的句柄</param>
<param name="x">坐标x(句柄内的坐标,非屏幕坐标)</param>
<param name="y">坐标y(句柄内的坐标,非屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.RightClick(System.IntPtr,System.Drawing.Point)">
<summary>
右键单击鼠标(支持后台单击)
</summary>
<param name="handle">指定要发送单击命令的句柄</param>
<param name="point">坐标(句柄内的坐标,非屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.MiddleClick(System.IntPtr,System.Int32,System.Int32)">
<summary>
中键单击鼠标(支持后台单击)
</summary>
<param name="handle">指定要发送单击命令的句柄</param>
<param name="x">坐标x(句柄内的坐标,非屏幕坐标)</param>
<param name="y">坐标y(句柄内的坐标,非屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.MiddleClick(System.IntPtr,System.Drawing.Point)">
<summary>
中键单击鼠标(支持后台单击)
</summary>
<param name="handle">指定要发送单击命令的句柄</param>
<param name="point">坐标(句柄内的坐标,非屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.LeftClick(System.Int32,System.Int32)">
<summary>
左键单击鼠标(不支持后台单击)
</summary>
<param name="x">坐标x(屏幕坐标)</param>
<param name="y">坐标y(屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.LeftClick(System.Drawing.Point)">
<summary>
左键单击鼠标(不支持后台单击)
</summary>
<param name="point">坐标(屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.RightClick(System.Int32,System.Int32)">
<summary>
右键单击鼠标(不支持后台单击)
</summary>
<param name="x">坐标x(屏幕坐标)</param>
<param name="y">坐标y(屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.RightClick(System.Drawing.Point)">
<summary>
右键单击鼠标(不支持后台单击)
</summary>
<param name="point">坐标(屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.MiddleClick(System.Int32,System.Int32)">
<summary>
中键单击鼠标(不支持后台单击)
</summary>
<param name="x">坐标x(屏幕坐标)</param>
<param name="y">坐标y(屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.MiddleClick(System.Drawing.Point)">
<summary>
中键单击鼠标(不支持后台单击)
</summary>
<param name="point">坐标(屏幕坐标)</param>
</member>
<member name="M:ryCommon.Auto.PasteText(System.String)">
<summary>
粘贴文本
</summary>
<param name="text"></param>
</member>
<member name="M:ryCommon.Auto.GetRect(System.IntPtr,System.Drawing.Size@)">
<summary>
获取指定句柄的大小及位置
</summary>
<param name="handle"></param>
<param name="size"></param>
<returns></returns>
</member>
<member name="M:ryCommon.Auto.SetRect(System.IntPtr,System.Drawing.Size)">
<summary>
设置指定句柄的大小
</summary>
<param name="handle"></param>
<param name="size"></param>
</member>
<member name="M:ryCommon.Auto.IsInRect(MyDb.RyWin32.RECT,System.Drawing.Point)">
<summary>
判断鼠标位置是不是在指定的矩形中
</summary>
<param name="rect"></param>
<param name="mouse_position"></param>
<returns></returns>
</member>
<member name="M:ryCommon.Auto.ImageEquals(System.Drawing.Bitmap,System.Drawing.Bitmap)">
<summary>
判断2张图是否相似度超90
</summary>
<param name="bmpOne"></param>
<param name="bmpTwo"></param>
<returns></returns>
</member>
<member name="M:ryCommon.Auto.GetXsd(System.Drawing.Color,System.Drawing.Color)">
<summary>
/获取2种颜色的相似度,范围为0~100
</summary>
<param name="c1"></param>
<param name="c2"></param>
<returns></returns>
</member>
<member name="T:ryCommon.ModalForm">
<summary>
新模态窗体
@ -2503,6 +2762,48 @@
<param name="IEMode">7000 表示IE7兼容视图模式;8000 表示IE8 标准模式 ;8888 表示IE8 强制标准模式,在渲染失败的情况下不尝试用兼容视图模式</param>
<returns></returns>
</member>
<member name="M:ryCommon.RyRegedit.SetFileAssociation(System.String,System.String,System.String,System.String,System.String)">
<summary>
设置文件关联
</summary>
<param name="Ext">扩展名(如.apk)</param>
<param name="ExtName">映射的扩展名(如apkfile)</param>
<param name="sName">app名称(建议用英文数字)</param>
<param name="AssDes">文件关联描述</param>
<param name="filePath">文件路径</param>
</member>
<member name="M:ryCommon.RyRegedit.SetFileAssociation(System.String,System.String,System.String,System.String)">
<summary>
设置文件关联
</summary>
<param name="ExtName">映射的扩展名(如apkfile)</param>
<param name="sName">app名称(建议用英文数字)</param>
<param name="AssDes">文件关联描述</param>
<param name="filePath">文件路径</param>
</member>
<member name="M:ryCommon.RyRegedit.SetFileAssociationOpenAs(System.String,System.String,System.String,System.String)">
<summary>
在指定文件格式右键菜单中增加菜单
</summary>
<param name="Ext">扩展名(如.apk)</param>
<param name="sName">app名称(建议用英文数字)</param>
<param name="AssDes">文件关联描述</param>
<param name="filePath">文件路径</param>
</member>
<member name="M:ryCommon.RyRegedit.DelFileAssociation(System.String,System.String)">
<summary>
删除文件关联
</summary>
<param name="ExtName">映射的扩展名(如apkfile)</param>
<param name="sName">app名称(建议用英文数字)</param>
</member>
<member name="M:ryCommon.RyRegedit.GetFileAssociation(System.String,System.String)">
<summary>
获取文件关联是否存在
</summary>
<param name="ExtName">映射的扩展名(如apkfile)</param>
<param name="sName">app名称(建议用英文数字)</param>
</member>
<member name="T:ryCommon.RyRegedit.IeMode">
<summary>
采用的IE模式
@ -2686,6 +2987,16 @@
高级拖放事件
</summary>
</member>
<member name="F:ElevatedDragDropManager.IsVistaOrHigher">
<summary>
</summary>
</member>
<member name="F:ElevatedDragDropManager.Is7OrHigher">
<summary>
</summary>
</member>
<member name="M:ElevatedDragDropManager.#ctor">
<summary>
@ -3733,6 +4044,7 @@
获取HmacSHA256
</summary>
<param name="data"></param>
<param name="pwd"></param>
<returns></returns>
</member>
<member name="M:rySafe.MD5Sha1.GetSHA224(System.String)">
@ -4860,5 +5172,380 @@
<param name="size"></param>
<returns></returns>
</member>
<member name="T:WinAPI.Struct">
<summary>
</summary>
</member>
<member name="T:WinAPI.Struct.BLENDFUNCTION">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.BLENDFUNCTION.BlendOp">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.BLENDFUNCTION.BlendFlags">
<summary>
/
</summary>
</member>
<member name="F:WinAPI.Struct.BLENDFUNCTION.SourceConstantAlpha">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.BLENDFUNCTION.AlphaFormat">
<summary>
</summary>
</member>
<member name="T:WinAPI.Struct.FlagsSetWindowPos">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOSIZE">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOMOVE">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOZORDER">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOREDRAW">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOACTIVATE">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_FRAMECHANGED">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_SHOWWINDOW">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_HIDEWINDOW">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOCOPYBITS">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOOWNERZORDER">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOSENDCHANGING">
<summary>
/
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_DRAWFRAME">
<summary>
/
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_NOREPOSITION">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_DEFERERASE">
<summary>
</summary>
</member>
<member name="F:WinAPI.Struct.FlagsSetWindowPos.SWP_ASYNCWINDOWPOS">
<summary>
</summary>
</member>
<member name="T:WinAPI.GDI32">
<summary>
</summary>
</member>
<member name="M:WinAPI.GDI32.DeleteObject(System.IntPtr)">
<summary>
</summary>
<param name="hObject"></param>
<returns></returns>
</member>
<member name="M:WinAPI.GDI32.SelectObject(System.IntPtr,System.IntPtr)">
<summary>
</summary>
<param name="hdc"></param>
<param name="hgdiobj"></param>
<returns></returns>
</member>
<member name="M:WinAPI.GDI32.CreateCompatibleDC(System.IntPtr)">
<summary>
</summary>
<param name="hdc"></param>
<returns></returns>
</member>
<member name="M:WinAPI.GDI32.CreateDC(System.String,System.String,System.String,System.IntPtr)">
<summary>
</summary>
<param name="driverName"></param>
<param name="deviceName"></param>
<param name="output"></param>
<param name="lpInitData"></param>
<returns></returns>
</member>
<member name="M:WinAPI.GDI32.DeleteDC(System.IntPtr)">
<summary>
</summary>
<param name="dc"></param>
<returns></returns>
</member>
<member name="T:Win32API.User32">
<summary>
</summary>
</member>
<member name="M:Win32API.User32.mouse_event(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">
<summary>
模拟鼠标点击
</summary>
<param name="dwFlags"></param>
<param name="dx"></param>
<param name="dy"></param>
<param name="dwData"></param>
<param name="dwExtraInfo"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.keybd_event(System.Windows.Forms.Keys,System.Byte,System.UInt32,System.UInt32)">
<summary>
模拟按键
</summary>
<param name="bVk"></param>
<param name="bScan"></param>
<param name="dwFlags"></param>
<param name="dwExtraInfo"></param>
</member>
<member name="M:Win32API.User32.GetWindowDC(System.IntPtr)">
<summary>
</summary>
<param name="hWnd"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.MoveWindow(System.IntPtr,System.Int32,System.Int32,System.Int32,System.Int32,System.Boolean)">
<summary>
</summary>
<param name="hWnd"></param>
<param name="x"></param>
<param name="y"></param>
<param name="width"></param>
<param name="height"></param>
<param name="repaint"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.SetParent(System.IntPtr,System.IntPtr)">
<summary>
</summary>
<param name="hwndChild"></param>
<param name="hwndParent"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.GetParent(System.IntPtr)">
<summary>
The GetParent function retrieves a handle to the specified window's parent or owner.
</summary>
<param name="hwnd">Handle to the window whose parent window handle is to be retrieved.</param>
<returns>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.</returns>
</member>
<member name="M:Win32API.User32.SendMessage(System.IntPtr,System.Int32,System.Int32,System.Int32)">
<summary>
</summary>
<param name="hwnd"></param>
<param name="wMsg"></param>
<param name="wParam"></param>
<param name="lParam"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.SendMessage(System.IntPtr,System.Int32,System.IntPtr,System.IntPtr)">
<summary>
</summary>
<param name="hwnd"></param>
<param name="wMsg"></param>
<param name="wParam"></param>
<param name="lParam"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.SendMessage(System.IntPtr,System.UInt32,System.Int32,System.Int32)">
<summary>
</summary>
<param name="hWnd"></param>
<param name="Msg"></param>
<param name="wParam"></param>
<param name="lParam"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.LoadCursorFromFile(System.String)">
<summary>
</summary>
<param name="filename"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.IsWindowVisible(System.IntPtr)">
<summary>
</summary>
<param name="hwnd"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.FindWindowEx(System.IntPtr,System.IntPtr,System.String,System.String)">
<summary>
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.
</summary>
<param name="hwndParent">Handle to the parent window whose child windows are to be searched.</param>
<param name="hwndChildAfter">Handle to a child window.</param>
<param name="lpszClass">Specifies class name.</param>
<param name="lpszWindow">Pointer to a null-terminated string that specifies the window name (the window's title).</param>
<returns>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.</returns>
</member>
<member name="M:Win32API.User32.InvalidateRect(System.IntPtr,System.Drawing.Rectangle@,System.Boolean)">
<summary>
The InvalidateRect function adds a rectangle to the specified window's update region.
</summary>
<param name="hwnd">Handle to window.</param>
<param name="rect">Rectangle coordinates.</param>
<param name="bErase">Erase state.</param>
<returns>If the function succeeds, the return value is true.If the function fails, the return value is false.</returns>
</member>
<member name="M:Win32API.User32.ValidateRect(System.IntPtr,System.Drawing.Rectangle@)">
<summary>
The ValidateRect function validates the client area within a rectangle by removing the rectangle from the update region of the specified window.
</summary>
<param name="hwnd">Handle to window.</param>
<param name="rect">Validation rectangle coordinates.</param>
<returns>If the function succeeds, the return value is true.If the function fails, the return value is false.</returns>
</member>
<member name="M:Win32API.User32.GetWindowLong(System.IntPtr,System.Int32)">
<summary>
</summary>
<param name="hWnd"></param>
<param name="dwStyle"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.GetDC(System.IntPtr)">
<summary>
</summary>
<param name="hwnd"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.ReleaseDC(System.IntPtr,System.IntPtr)">
<summary>
</summary>
<param name="hwnd"></param>
<param name="hdc"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.GetClientRect(System.IntPtr,System.Drawing.Rectangle@)">
<summary>
</summary>
<param name="hwnd"></param>
<param name="rect"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.GetWindowRect(System.IntPtr,System.Drawing.Rectangle@)">
<summary>
</summary>
<param name="hWnd"></param>
<param name="rect"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.UpdateLayeredWindow(System.IntPtr,System.IntPtr,System.Drawing.Point@,System.Drawing.Size@,System.IntPtr,System.Drawing.Point@,System.Int32,WinAPI.Struct.BLENDFUNCTION@,System.Int32)">
<summary>
</summary>
<param name="hwnd"></param>
<param name="hdcDst"></param>
<param name="pptDst"></param>
<param name="psize"></param>
<param name="hdcSrc"></param>
<param name="pprSrc"></param>
<param name="crKey"></param>
<param name="pblend"></param>
<param name="dwFlags"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.SetWindowLong(System.IntPtr,System.Int32,System.Int32)">
<summary>
</summary>
<param name="hWnd"></param>
<param name="nIndex"></param>
<param name="dwNewLong"></param>
<returns></returns>
</member>
<member name="M:Win32API.User32.SetWindowPos(System.IntPtr,System.IntPtr,System.Int32,System.Int32,System.Int32,System.Int32,WinAPI.Struct.FlagsSetWindowPos)">
<summary>
Changes the size, position, and Z order of a child, pop-up, or top-level window.
These windows are ordered according to their appearance on the screen.
The topmost window receives the highest rank and is the first window in the Z order.
</summary>
<param name="hWnd">A handle to the window.</param>
<param name="hWndAfter">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.</param>
<param name="X">Specifies the new position of the left side of the window, in client coordinates.</param>
<param name="Y">Specifies the new position of the top of the window, in client coordinates.</param>
<param name="Width">Specifies the new width of the window, in pixels.</param>
<param name="Height">Specifies the new height of the window, in pixels.</param>
<param name="flags">Specifies the window sizing and positioning flags. This parameter can be a combination of the following values.</param>
<returns>If the function succeeds, the return value is nonzero, if the function fails, the return value is zero.</returns>
</member>
<member name="M:Win32API.User32.SetWindowPos(System.IntPtr,System.IntPtr,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt32)">
<summary>
</summary>
<param name="hWnd"></param>
<param name="hWndInsertAfter"></param>
<param name="X"></param>
<param name="Y"></param>
<param name="cx"></param>
<param name="cy"></param>
<param name="uFlags"></param>
<returns></returns>
</member>
</members>
</doc>

View File

@ -4,6 +4,39 @@
<name>MyDb_MSSQL</name>
</assembly>
<members>
<member name="T:ryCommonDb.MSSQLDb">
<summary>
</summary>
</member>
<member name="T:ryCommonDb.MSSQLDb.ErrorHandler">
<summary>
</summary>
<param name="sender"></param>
<param name="errorStr"></param>
<param name="errorId"></param>
</member>
<member name="E:ryCommonDb.MSSQLDb.OnError">
<summary>
</summary>
</member>
<member name="F:ryCommonDb.MSSQLDb.SQL_cn">
<summary>
</summary>
</member>
<member name="F:ryCommonDb.MSSQLDb.fv_ConnStr">
<summary>
</summary>
</member>
<member name="M:ryCommonDb.MSSQLDb.#ctor">
<summary>
</summary>
</member>
<member name="M:ryCommonDb.MSSQLDb.#ctor(System.String)">
<summary>
连接数据库
@ -20,6 +53,11 @@
<param name="uId">用户id</param>
<param name="pwd">用户密码</param>
</member>
<member name="M:ryCommonDb.MSSQLDb.Finalize">
<summary>
</summary>
</member>
<member name="M:ryCommonDb.MSSQLDb.ConnDb">
<summary>
连接数据库
@ -111,5 +149,200 @@
<param name="SQLText">SQL语句</param>
<returns>运行失败,则返回-1存在结果返回1不存在结果返回0</returns>
</member>
<member name="M:ryCommonDb.MSSQLDb.Dispose">
<summary>
</summary>
</member>
<member name="T:ryCommonDb.SqlDataProvider">
<summary>
</summary>
</member>
<member name="M:ryCommonDb.SqlDataProvider.ConnDb(System.String)">
<summary>
</summary>
<param name="sql"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SqlDataProvider.CloseDb">
<summary>
</summary>
<returns></returns>
</member>
<member name="M:ryCommonDb.SqlDataProvider.GetCount(System.String,System.String)">
<summary>
</summary>
<param name="tableName"></param>
<param name="wheresql"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SqlDataProvider.ChangePwd(System.String)">
<summary>
</summary>
<param name="newPwd"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SqlDataProvider.AddParameter(System.String,System.Object)">
<summary>
</summary>
<param name="name"></param>
<param name="value"></param>
</member>
<member name="M:ryCommonDb.SqlDataProvider.ClearParameter(System.Object,System.Object)">
<summary>
</summary>
<param name="name"></param>
<param name="value"></param>
</member>
<member name="M:ryCommonDb.SqlDataProvider.GetParameter">
<summary>
</summary>
<returns></returns>
</member>
<member name="M:ryCommonDb.SqlDataProvider.GetParameter(ryCommonDb.RyQuickSQL)">
<summary>
</summary>
<param name="mySQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SqlDataProvider.GetPageSQL(System.String,System.String,System.String)">
<summary>
</summary>
<param name="tableName"></param>
<param name="wheresql"></param>
<param name="orderSQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SqlDataProvider.GetPageSQL(System.String,System.String,System.String,System.String)">
<summary>
</summary>
<param name="field"></param>
<param name="tableName"></param>
<param name="wheresql"></param>
<param name="orderSQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SqlDataProvider.GetPageSQL2(System.String,System.String,System.String)">
<summary>
</summary>
<param name="tableName"></param>
<param name="wheresql"></param>
<param name="orderSQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SqlDataProvider.GetPageSQL2(System.String,System.String,System.String,System.String)">
<summary>
</summary>
<param name="field"></param>
<param name="tableName"></param>
<param name="wheresql"></param>
<param name="orderSQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SqlDataProvider.ContainsData(System.String,System.Object[])">
<summary>
</summary>
<param name="sql"></param>
<param name="Parameter"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SqlDataProvider.ReadData(System.String,System.Object[])">
<summary>
</summary>
<param name="sql"></param>
<param name="Parameter"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SqlDataProvider.ReadData(System.String,ryCommonDb.RyQuickSQL)">
<summary>
</summary>
<param name="sql"></param>
<param name="mySQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SqlDataProvider.ReadData(System.String)">
<summary>
</summary>
<param name="sql"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SqlDataProvider.ReadData(System.String,System.String)">
<summary>
</summary>
<param name="tableName"></param>
<param name="id"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SqlDataProvider.ExecuteNonQuery(System.String,System.Object[])">
<summary>
</summary>
<param name="sql"></param>
<param name="Parameter"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SqlDataProvider.ExecuteNonQuery(System.String,ryCommonDb.RyQuickSQL)">
<summary>
</summary>
<param name="sql"></param>
<param name="mySQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SqlDataProvider.ExecuteNonQuery(System.String)">
<summary>
</summary>
<param name="sql"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SqlDataProvider.DelById(System.String,System.String)">
<summary>
</summary>
<param name="tableName"></param>
<param name="id"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SqlDataProvider.CreateDb(ryCommonDb.RyQuickSQL)">
<summary>
</summary>
<param name="mySQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SqlDataProvider.BeginTransaction">
<summary>
</summary>
</member>
<member name="M:ryCommonDb.SqlDataProvider.Commit">
<summary>
</summary>
</member>
<member name="M:ryCommonDb.SqlDataProvider.Free">
<summary>
</summary>
</member>
</members>
</doc>

View File

@ -4,6 +4,39 @@
<name>MyDb_MySQL</name>
</assembly>
<members>
<member name="T:ryCommonDb.ClsMySQLDb">
<summary>
</summary>
</member>
<member name="T:ryCommonDb.ClsMySQLDb.ErrorHandler">
<summary>
</summary>
<param name="sender"></param>
<param name="errorStr"></param>
<param name="errorId"></param>
</member>
<member name="E:ryCommonDb.ClsMySQLDb.OnError">
<summary>
</summary>
</member>
<member name="F:ryCommonDb.ClsMySQLDb.SQL_cn">
<summary>
</summary>
</member>
<member name="F:ryCommonDb.ClsMySQLDb.fv_ConnStr">
<summary>
</summary>
</member>
<member name="M:ryCommonDb.ClsMySQLDb.#ctor">
<summary>
</summary>
</member>
<member name="M:ryCommonDb.ClsMySQLDb.#ctor(System.String)">
<summary>
连接数据库
@ -20,6 +53,11 @@
<param name="uId">用户id</param>
<param name="pwd">用户密码</param>
</member>
<member name="M:ryCommonDb.ClsMySQLDb.Finalize">
<summary>
</summary>
</member>
<member name="M:ryCommonDb.ClsMySQLDb.ConnDb">
<summary>
连接数据库
@ -111,5 +149,200 @@
<param name="SQLText">SQL语句</param>
<returns>运行失败,则返回-1存在结果返回1不存在结果返回0</returns>
</member>
<member name="M:ryCommonDb.ClsMySQLDb.Dispose">
<summary>
</summary>
</member>
<member name="T:ryCommonDb.MySqlDataProvider">
<summary>
</summary>
</member>
<member name="M:ryCommonDb.MySqlDataProvider.ConnDb(System.String)">
<summary>
</summary>
<param name="sql"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.MySqlDataProvider.CloseDb">
<summary>
</summary>
<returns></returns>
</member>
<member name="M:ryCommonDb.MySqlDataProvider.GetCount(System.String,System.String)">
<summary>
</summary>
<param name="tableName"></param>
<param name="wheresql"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.MySqlDataProvider.ChangePwd(System.String)">
<summary>
</summary>
<param name="newPwd"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.MySqlDataProvider.AddParameter(System.String,System.Object)">
<summary>
</summary>
<param name="name"></param>
<param name="value"></param>
</member>
<member name="M:ryCommonDb.MySqlDataProvider.ClearParameter(System.Object,System.Object)">
<summary>
</summary>
<param name="name"></param>
<param name="value"></param>
</member>
<member name="M:ryCommonDb.MySqlDataProvider.GetParameter">
<summary>
</summary>
<returns></returns>
</member>
<member name="M:ryCommonDb.MySqlDataProvider.GetParameter(ryCommonDb.RyQuickSQL)">
<summary>
</summary>
<param name="mySQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.MySqlDataProvider.GetPageSQL(System.String,System.String,System.String)">
<summary>
</summary>
<param name="tableName"></param>
<param name="wheresql"></param>
<param name="orderSQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.MySqlDataProvider.GetPageSQL(System.String,System.String,System.String,System.String)">
<summary>
</summary>
<param name="field"></param>
<param name="tableName"></param>
<param name="wheresql"></param>
<param name="orderSQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.MySqlDataProvider.GetPageSQL2(System.String,System.String,System.String)">
<summary>
</summary>
<param name="tableName"></param>
<param name="wheresql"></param>
<param name="orderSQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.MySqlDataProvider.GetPageSQL2(System.String,System.String,System.String,System.String)">
<summary>
</summary>
<param name="field"></param>
<param name="tableName"></param>
<param name="wheresql"></param>
<param name="orderSQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.MySqlDataProvider.ContainsData(System.String,System.Object[])">
<summary>
</summary>
<param name="sql"></param>
<param name="Parameter"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.MySqlDataProvider.ReadData(System.String,System.Object[])">
<summary>
</summary>
<param name="sql"></param>
<param name="Parameter"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.MySqlDataProvider.ReadData(System.String,ryCommonDb.RyQuickSQL)">
<summary>
</summary>
<param name="sql"></param>
<param name="mySQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.MySqlDataProvider.ReadData(System.String)">
<summary>
</summary>
<param name="sql"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.MySqlDataProvider.ReadData(System.String,System.String)">
<summary>
</summary>
<param name="tableName"></param>
<param name="id"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.MySqlDataProvider.ExecuteNonQuery(System.String,System.Object[])">
<summary>
</summary>
<param name="sql"></param>
<param name="Parameter"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.MySqlDataProvider.ExecuteNonQuery(System.String,ryCommonDb.RyQuickSQL)">
<summary>
</summary>
<param name="sql"></param>
<param name="mySQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.MySqlDataProvider.ExecuteNonQuery(System.String)">
<summary>
</summary>
<param name="sql"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.MySqlDataProvider.DelById(System.String,System.String)">
<summary>
</summary>
<param name="tableName"></param>
<param name="id"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.MySqlDataProvider.CreateDb(ryCommonDb.RyQuickSQL)">
<summary>
</summary>
<param name="mySQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.MySqlDataProvider.BeginTransaction">
<summary>
</summary>
</member>
<member name="M:ryCommonDb.MySqlDataProvider.Commit">
<summary>
</summary>
</member>
<member name="M:ryCommonDb.MySqlDataProvider.Free">
<summary>
</summary>
</member>
</members>
</doc>

View File

@ -4,6 +4,21 @@
<name>MyDb_SQLite</name>
</assembly>
<members>
<member name="T:ryCommonDb.ClsDb">
<summary>
</summary>
</member>
<member name="M:ryCommonDb.ClsDb.#ctor">
<summary>
</summary>
</member>
<member name="M:ryCommonDb.ClsDb.Finalize">
<summary>
</summary>
</member>
<member name="M:ryCommonDb.ClsDb.#ctor(System.String,System.String)">
<summary>
@ -19,6 +34,21 @@
<param name="DbFilePath">数据库路径</param>
<returns></returns>
</member>
<member name="F:ryCommonDb.ClsDb.SQLite_cn">
<summary>
</summary>
</member>
<member name="F:ryCommonDb.ClsDb.DbPath">
<summary>
</summary>
</member>
<member name="F:ryCommonDb.ClsDb.DbPassWord">
<summary>
</summary>
</member>
<member name="M:ryCommonDb.ClsDb.ConnDb">
<summary>
连接数据库
@ -37,6 +67,12 @@
</summary>
<returns></returns>
</member>
<member name="M:ryCommonDb.ClsDb.ChangePwd(System.String)">
<summary>
</summary>
<param name="newPwd"></param>
</member>
<member name="M:ryCommonDb.ClsDb.ConnOrCreateDb">
<summary>
连接或创建数据库,如果数据库不存在,就创建,否则连接
@ -172,5 +208,200 @@
</summary>
<returns></returns>
</member>
<member name="T:ryCommonDb.SQLiteDataProvider">
<summary>
</summary>
</member>
<member name="F:ryCommonDb.SQLiteDataProvider.myDb">
<summary>
</summary>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.ConnDb(System.String)">
<summary>
</summary>
<param name="sql"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.CloseDb">
<summary>
</summary>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.GetCount(System.String,System.String)">
<summary>
</summary>
<param name="tableName"></param>
<param name="wheresql"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.ChangePwd(System.String)">
<summary>
</summary>
<param name="newPwd"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.AddParameter(System.String,System.Object)">
<summary>
</summary>
<param name="name"></param>
<param name="value"></param>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.ClearParameter(System.Object,System.Object)">
<summary>
</summary>
<param name="name"></param>
<param name="value"></param>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.GetParameter">
<summary>
</summary>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.GetParameter(ryCommonDb.RyQuickSQL)">
<summary>
</summary>
<param name="mySQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.GetPageSQL(System.String,System.String,System.String)">
<summary>
</summary>
<param name="tableName"></param>
<param name="wheresql"></param>
<param name="orderSQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.GetPageSQL2(System.String,System.String,System.String)">
<summary>
</summary>
<param name="tableName"></param>
<param name="wheresql"></param>
<param name="orderSQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.GetPageSQL(System.String,System.String,System.String,System.String)">
<summary>
</summary>
<param name="field"></param>
<param name="tableName"></param>
<param name="wheresql"></param>
<param name="orderSQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.GetPageSQL2(System.String,System.String,System.String,System.String)">
<summary>
</summary>
<param name="field"></param>
<param name="tableName"></param>
<param name="wheresql"></param>
<param name="orderSQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.ContainsData(System.String,System.Object[])">
<summary>
</summary>
<param name="sql"></param>
<param name="Parameter"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.ReadData(System.String,System.Object[])">
<summary>
</summary>
<param name="sql"></param>
<param name="Parameter"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.ReadData(System.String,ryCommonDb.RyQuickSQL)">
<summary>
</summary>
<param name="sql"></param>
<param name="mySQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.ReadData(System.String)">
<summary>
</summary>
<param name="sql"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.ReadData(System.String,System.String)">
<summary>
</summary>
<param name="tableName"></param>
<param name="id"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.ExecuteNonQuery(System.String,System.Object[])">
<summary>
</summary>
<param name="sql"></param>
<param name="Parameter"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.ExecuteNonQuery(System.String,ryCommonDb.RyQuickSQL)">
<summary>
</summary>
<param name="sql"></param>
<param name="mySQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.ExecuteNonQuery(System.String)">
<summary>
</summary>
<param name="sql"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.BeginTransaction">
<summary>
</summary>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.Commit">
<summary>
</summary>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.DelById(System.String,System.String)">
<summary>
</summary>
<param name="tableName"></param>
<param name="id"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.CreateDb(ryCommonDb.RyQuickSQL)">
<summary>
</summary>
<param name="mySQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.Free">
<summary>
</summary>
</member>
</members>
</doc>

View File

@ -9,6 +9,13 @@
Http连接操作帮助类
</summary>
</member>
<member name="M:DotNet4.Utilities.HttpHelper.GetSmallCookie(System.String)">
<summary>
</summary>
<param name="strcookie"></param>
<returns></returns>
</member>
<member name="M:DotNet4.Utilities.HttpHelper.GetHtml(DotNet4.Utilities.HttpItem)">
<summary>
根据相传入的数据,得到相应页面数据
@ -227,7 +234,11 @@
header对象
</summary>
</member>
<!-- Badly formed XML comment ignored for member "P:DotNet4.Utilities.HttpItem.ProtocolVersion" -->
<member name="P:DotNet4.Utilities.HttpItem.ProtocolVersion">
<summary>
获取或设置用于请求的 HTTP 版本。返回结果:用于请求的 HTTP 版本。默认为 System.Net.HttpVersion.Version11。
</summary>
</member>
<member name="P:DotNet4.Utilities.HttpItem.Expect100Continue">
<summary>
获取或设置一个 System.Boolean 值,该值确定是否使用 100-Continue 行为。如果 POST 请求需要 100-Continue 响应,则为 true否则为 false。默认值为 true。
@ -371,6 +382,11 @@
CookieCollection格式的Cookie集合同时也返回String类型的cookie
</summary>
</member>
<member name="T:RyWeb.QuickWeb">
<summary>
</summary>
</member>
<member name="M:RyWeb.QuickWeb.Post(System.String,System.String,System.String)">
<summary>
以post方式获取网页源码
@ -422,6 +438,11 @@
<param name="url"></param>
<returns></returns>
</member>
<member name="P:RyWeb.QuickWeb.UserAgent">
<summary>
</summary>
</member>
<member name="M:RyWeb.QuickWeb.Get(System.String,System.String)">
<summary>
获取网页源码
@ -435,6 +456,7 @@
获取网页源码
</summary>
<param name="url"></param>
<param name="encoding"></param>
<param name="cookie"></param>
<returns></returns>
</member>
@ -445,6 +467,24 @@
<param name="url"></param>
<returns></returns>
</member>
<member name="P:RyWeb.QuickWeb.Cookie">
<summary>
</summary>
</member>
<member name="P:RyWeb.QuickWeb.Timeout">
<summary>
</summary>
</member>
<member name="M:RyWeb.QuickWeb.UrlEncode(System.String,System.Text.Encoding)">
<summary>
</summary>
<param name="str"></param>
<param name="encode"></param>
<returns></returns>
</member>
<member name="M:RyWeb.QuickWeb.ConvertUrl(System.String,System.String)">
<summary>
将相对网址转换成绝对网址
@ -453,6 +493,16 @@
<param name="cur_pageUrl">当前页面地址</param>
<returns>转换后的绝对网址</returns>
</member>
<member name="T:RyWeb.UrlDecoder">
<summary>
</summary>
</member>
<member name="T:RyWeb.WebDecode">
<summary>
</summary>
</member>
<member name="M:RyWeb.WebDecode.UrlDecode(System.String,System.Text.Encoding)">
<summary>
url解密
@ -473,7 +523,7 @@
Url加密
</summary>
<param name="str"></param>
<param name="e"></param>
<param name="encode"></param>
<returns></returns>
</member>
<member name="M:RyWeb.WebDecode.UrlEncode(System.String)">
@ -497,6 +547,24 @@
<param name="string"></param>
<returns></returns>
</member>
<member name="M:RyWeb.WebDecode.UrlEncodeNonAscii(System.Byte[],System.Int32,System.Int32,System.Boolean)">
<summary>
</summary>
<param name="bytes"></param>
<param name="offset"></param>
<param name="count"></param>
<param name="alwaysCreateNewReturnValue"></param>
<returns></returns>
</member>
<member name="M:RyWeb.WebDecode.UrlEncodeNonAscii(System.String,System.Text.Encoding)">
<summary>
</summary>
<param name="str"></param>
<param name="e"></param>
<returns></returns>
</member>
<member name="M:RyWeb.WebDecode.UrlEncodeUnicode(System.String,System.Boolean)">
<summary>
url加密,Unicode
@ -505,6 +573,20 @@
<param name="ignoreAscii"></param>
<returns></returns>
</member>
<member name="M:RyWeb.WebDecode.IsUrlSafeChar(System.Char)">
<summary>
</summary>
<param name="ch"></param>
<returns></returns>
</member>
<member name="M:RyWeb.WebDecode.IntToHex(System.Int32)">
<summary>
</summary>
<param name="n"></param>
<returns></returns>
</member>
<member name="M:RyWeb.WebDecode.ConvertHtmlInner(System.String)">
<summary>
Html解码,将html里未转义成功的重新转义。

View File

@ -22410,13 +22410,16 @@
</member>
<member name="P:BrightIdeasSoftware.BaseRenderer.UseCustomCheckboxImages">
<summary>
此渲染器是否将使用父ObjectListView中的自定义图像来绘制复选框图像。
Will this renderer use the custom images from the parent ObjectListView
to draw the checkbox images.
</summary>
<remarks>
<para>
如果为true则渲染器将使用StateImageList中的图像来表示复选框。0-未选中1-选中2-不确定。
If this is true, the renderer will use the images from the
StateImageList to represent checkboxes. 0 - unchecked, 1 - checked, 2 - indeterminate.
</para>
<para>如果为False(默认值),则渲染器将使用.NET的标准CheckBoxRenender。</para>
<para>If this is false (the default), then the renderer will use .NET's standard
CheckBoxRenderer.</para>
</remarks>
</member>
<member name="M:BrightIdeasSoftware.BaseRenderer.AlignRectangle(System.Drawing.Rectangle,System.Drawing.Rectangle)">
@ -23401,7 +23404,7 @@
</member>
<member name="M:BrightIdeasSoftware.MultiImageRenderer.#ctor(System.Object,System.Int32,System.Int32,System.Int32)">
<summary>
创建一个图像渲染器该图像渲染器最多可以绘制指定的图像的maxImages次数。
Make an image renderer that will draw the indicated image, at most maxImages times.
</summary>
<param name="imageSelector"></param>
<param name="maxImages"></param>
@ -23410,12 +23413,12 @@
</member>
<member name="P:BrightIdeasSoftware.MultiImageRenderer.ImageIndex">
<summary>
应绘制的图像索引
The index of the image that should be drawn
</summary>
</member>
<member name="P:BrightIdeasSoftware.MultiImageRenderer.ImageName">
<summary>
应绘制的图像名称
The name of the image that should be drawn
</summary>
</member>
<member name="P:BrightIdeasSoftware.MultiImageRenderer.ImageSelector">
@ -23426,17 +23429,17 @@
</member>
<member name="P:BrightIdeasSoftware.MultiImageRenderer.MaxNumberImages">
<summary>
此渲染器应绘制的最大图像数
What is the maximum number of images that this renderer should draw?
</summary>
</member>
<member name="P:BrightIdeasSoftware.MultiImageRenderer.MinimumValue">
<summary>
小于或等于此值的值将不绘制图像
Values less than or equal to this will have 0 images drawn
</summary>
</member>
<member name="P:BrightIdeasSoftware.MultiImageRenderer.MaximumValue">
<summary>
大于或等于该值的值将绘制MaxNumberImages图像
Values greater than or equal to this will have MaxNumberImages images drawn
</summary>
</member>
<member name="M:BrightIdeasSoftware.MultiImageRenderer.Render(System.Drawing.Graphics,System.Drawing.Rectangle)">
@ -23494,59 +23497,59 @@
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.UseGdiTextRendering">
<summary>
文本是否应该使用GDI例程呈现这使文本看起来更像本机列表视图控件。
Should text be rendered using GDI routines? This makes the text look more
like a native List view control.
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.TitleFont">
<summary>
获取或设置标题字体
Gets or set the font that will be used to draw the title of the task
</summary>
<remarks>If this is null, the ListView's font will be used</remarks>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.TitleFontOrDefault">
<summary>
返回已为标题设置的字体或默认值
Return a font that has been set for the title or a reasonable default
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.TitleColor">
<summary>
获取或设置任务标题(Title)的颜色
Gets or set the color of the title of the task
</summary>
<remarks>当任务未被选中或列表视图具有半透明选择机制时,将使用此颜色。
</remarks>
<remarks>This color is used when the task is not selected or when the listview
has a translucent selection mechanism.</remarks>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.TitleColorOrDefault">
<summary>
返回任务标题的颜色或默认值
Return the color of the title of the task or a reasonable default
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.DescriptionFont">
<summary>
获取或设置任务描述(Description)的字体
Gets or set the font that will be used to draw the description of the task
</summary>
<remarks>如果为null则使用listview的字体</remarks>
<remarks>If this is null, the ListView's font will be used</remarks>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.DescriptionFontOrDefault">
<summary>
返回已为Description设置的字体或默认值
Return a font that has been set for the title or a reasonable default
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.DescriptionColor">
<summary>
获取或设置任务描述(Description)的颜色
Gets or set the color of the description of the task
</summary>
<remarks>
当任务未被选中或列表视图具有半透明选择机制时,将使用此颜色。
</remarks>
<remarks>This color is used when the task is not selected or when the listview
has a translucent selection mechanism.</remarks>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.DescriptionColorOrDefault">
<summary>
返回任务描述(Description)的颜色或默认值
Return the color of the description of the task or a reasonable default
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.ImageTextSpace">
<summary>
获取或设置图片和文字之间的距离
Gets or sets the number of pixels that will be left between the image and the text
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.TopSpace">
@ -23556,12 +23559,12 @@
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.TitleDescriptionSpace">
<summary>
获取或设置标题(Title)和描述(Description)之间的距离(单位:像素)
Gets or sets the number of pixels that will be left between the title and the description
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.DescriptionAspectName">
<summary>
获取或设置跟Description挂钩的模型对象名称
Gets or sets the name of the aspect of the model object that contains the task description
</summary>
</member>
<member name="P:BrightIdeasSoftware.DescribedTaskRenderer.Filter">
@ -23618,42 +23621,67 @@
</member>
<member name="T:BrightIdeasSoftware.ColumnButtonRenderer">
<summary>
此渲染器在其单元格中绘制一个功能按钮
This renderer draws a functioning button in its cell
</summary>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.SizingMode">
<summary>
获取或设置按钮的大小模式
Gets or sets how each button will be sized
</summary>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.ButtonSize">
<summary>
获取或设置SizingMode为FixedBound时按钮的大小
Gets or sets the size of the button when the SizingMode is FixedBounds
</summary>
<remarks>如果未设置,将使用单元格的边界</remarks>
<remarks>If this is not set, the bounds of the cell will be used</remarks>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.ButtonPadding">
<summary>
获取或设置当SizingMode为TextBound时单元格周围的额外空间
Gets or sets the extra space that surrounds the cell when the SizingMode is TextBounds
</summary>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.MaxButtonWidth">
<summary>
获取或设置按钮可以占用的最大宽度
-1 表示不限制宽度
Gets or sets the maximum width that a button can occupy.
-1 means there is no maximum width.
</summary>
<remarks>仅当SizingMode为TextBound时才会生效</remarks>
<remarks>This is only considered when the SizingMode is TextBounds</remarks>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.MinButtonWidth">
<summary>
获取或设置按钮可以占用的最小宽度。
-1 表示不限制宽度
Gets or sets the minimum width that a button can occupy.
-1 means there is no minimum width.
</summary>
<remarks>This is only considered when the SizingMode is TextBounds</remarks>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.ButtonForeColor">
<summary>
获取或设置此列按钮的字体颜色(如果有按钮的话)
</summary>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.ButtonBaseColor">
<summary>
获取或设置此列按钮的背景颜色(如果有按钮的话)
</summary>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.ButtonBorderColor">
<summary>
获取或设置此列按钮的边框颜色(如果有按钮的话)
</summary>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.ButtonInnerBorderColor">
<summary>
获取或设置此列按钮的内边框颜色(如果有按钮的话)
</summary>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.ButtonDrawBorder">
<summary>
获取或设置此列按钮是否画边框(如果有按钮的话)
</summary>
<remarks>仅当SizingMode为TextBound时才会生效</remarks>
</member>
<member name="M:BrightIdeasSoftware.ColumnButtonRenderer.CalculateContentSize(System.Drawing.Graphics,System.Drawing.Rectangle)">
<summary>
计算内容的大小
Calculate the size of the contents
</summary>
<param name="g"></param>
<param name="r"></param>
@ -23661,7 +23689,7 @@
</member>
<member name="M:BrightIdeasSoftware.ColumnButtonRenderer.DrawImageAndText(System.Drawing.Graphics,System.Drawing.Rectangle)">
<summary>
画按钮
Draw the button
</summary>
<param name="g"></param>
<param name="r"></param>
@ -23678,13 +23706,13 @@
</member>
<member name="M:BrightIdeasSoftware.ColumnButtonRenderer.CalculatePushButtonState">
<summary>
按钮的状态
What is the state of the button?
</summary>
<returns></returns>
</member>
<member name="P:BrightIdeasSoftware.ColumnButtonRenderer.IsButtonHot">
<summary>
鼠标是否在按钮上
Is the mouse over the button?
</summary>
</member>
<member name="T:BrightIdeasSoftware.IItemStyle">
@ -23884,6 +23912,58 @@
</summary>
<param name="color"></param>
</member>
<member name="F:BrightIdeasSoftware.Rendering.buttonStyle.ButtonNormal">
<summary>
正常为选中按钮
</summary>
</member>
<member name="F:BrightIdeasSoftware.Rendering.buttonStyle.ButtonFocuse">
<summary>
获得焦点的按钮
</summary>
</member>
<member name="F:BrightIdeasSoftware.Rendering.buttonStyle.ButtonMouseOver">
<summary>
鼠标经过样式
</summary>
</member>
<member name="F:BrightIdeasSoftware.Rendering.buttonStyle.ButtonFocuseAndMouseOver">
<summary>
获得焦点并鼠标经过
</summary>
</member>
<member name="T:BrightIdeasSoftware.Rendering.Util_GDI">
<summary>
自定义GDI工具绘制按钮
</summary>
</member>
<member name="M:BrightIdeasSoftware.Rendering.Util_GDI.DrawCircleButton(System.String,System.Drawing.Graphics,System.Drawing.Point,System.Int32,BrightIdeasSoftware.Rendering.buttonStyle)">
<summary>
绘制圆形按钮(用法同矩形按钮)
</summary>
<param name="text"></param>
<param name="g"></param>
<param name="Location"></param>
<param name="r"></param>
<param name="btnStyle"></param>
</member>
<member name="M:BrightIdeasSoftware.Rendering.Util_GDI.DrawRoundButton(System.String,System.Drawing.Graphics,System.Drawing.Rectangle,BrightIdeasSoftware.Rendering.buttonStyle)">
<summary>
绘制圆角按钮
</summary>
<param name="Text">要绘制的文字</param>
<param name="g">Graphics 对象</param>
<param name="rect">要填充的矩形</param>
<param name="btnStyle"></param>
</member>
<member name="M:BrightIdeasSoftware.Rendering.Util_GDI.GetRoundRectangle(System.Drawing.Rectangle,System.Int32)">
<summary>
根据普通矩形得到圆角矩形的路径
</summary>
<param name="rectangle">原始矩形</param>
<param name="r">半径</param>
<returns>图形路径</returns>
</member>
<member name="T:BrightIdeasSoftware.GlassPanelForm">
<summary>
A GlassPanelForm sits transparently over an ObjectListView to show overlays.

View File

@ -4,11 +4,21 @@
<name>ryUpdate</name>
</assembly>
<members>
<member name="T:LiveUpdate.ClsLiveUpdate">
<summary>
</summary>
</member>
<member name="F:LiveUpdate.ClsLiveUpdate.UpdateUrl">
<summary>
升级地址
</summary>
</member>
<member name="F:LiveUpdate.ClsLiveUpdate.CurUserId">
<summary>
</summary>
</member>
<member name="F:LiveUpdate.ClsLiveUpdate.UpdateAfterTime">
<summary>
隔多久后再次检查更新
@ -34,6 +44,21 @@
当前安装的数据库版本
</summary>
</member>
<member name="F:LiveUpdate.ClsLiveUpdate.SaveFileName">
<summary>
</summary>
</member>
<member name="F:LiveUpdate.ClsLiveUpdate.DownUrl">
<summary>
</summary>
</member>
<member name="F:LiveUpdate.ClsLiveUpdate.isExit">
<summary>
</summary>
</member>
<member name="P:LiveUpdate.ClsLiveUpdate.UpdateType">
<summary>
获取当前更新的类型
@ -44,17 +69,57 @@
每隔n小时检测一次更新
</summary>
</member>
<member name="E:LiveUpdate.ClsLiveUpdate.OnReadComplete">
<summary>
读取版本信息完成后激发
</summary>
</member>
<member name="E:LiveUpdate.ClsLiveUpdate.OnNoUpdate">
<summary>
没有版本更新时激发
</summary>
</member>
<member name="E:LiveUpdate.ClsLiveUpdate.OnUpdateComplete">
<summary>
发现新版本时激发
</summary>
</member>
<member name="E:LiveUpdate.ClsLiveUpdate.OnHappenError">
<summary>
发生错误后激发
</summary>
</member>
<member name="E:LiveUpdate.ClsLiveUpdate.ProgressChanged">
<summary>
更新进度变化后激发
</summary>
</member>
<member name="M:LiveUpdate.ClsLiveUpdate.StartLiveUpdate">
<summary>
开始检测新版本
</summary>
</member>
<member name="F:LiveUpdate.ClsLiveUpdate.ParentForm">
<summary>
</summary>
</member>
<member name="M:LiveUpdate.ClsLiveUpdate.#ctor(System.Windows.Forms.Form)">
<summary>
初始化升级函数
</summary>
<param name="ower">为null,则表示事件运行在多线程模式下,否则,事件是在窗体所在线程下</param>
</member>
<member name="P:LiveUpdate.ClsLiveUpdate.AssemblyVersion">
<summary>
</summary>
</member>
<member name="P:LiveUpdate.ClsLiveUpdate.AssemblyReVersion">
<summary>
</summary>
</member>
<member name="M:LiveUpdate.ClsLiveUpdate.GetVerInfo">
<summary>
获取版本信息
@ -80,16 +145,80 @@
结束下载
</summary>
</member>
<member name="T:LiveUpdate.RyUpdate">
<summary>
</summary>
</member>
<member name="F:LiveUpdate.RyUpdate.myLiveUpdate">
<summary>
</summary>
</member>
<member name="F:LiveUpdate.RyUpdate.dict_downlist">
<summary>
</summary>
</member>
<member name="M:LiveUpdate.RyUpdate.#ctor(System.String)">
<summary>
</summary>
<param name="url"></param>
</member>
<member name="M:LiveUpdate.RyUpdate.#ctor(System.Windows.Forms.Form,System.String)">
<summary>
</summary>
<param name="_ParentForm"></param>
<param name="url"></param>
</member>
<member name="M:LiveUpdate.RyUpdate.Finalize">
<summary>
</summary>
</member>
<member name="P:LiveUpdate.RyUpdate.CurUserId">
<summary>
当前登陆用户
</summary>
</member>
<member name="P:LiveUpdate.RyUpdate.ParentForm">
<summary>
</summary>
</member>
<member name="E:LiveUpdate.RyUpdate.OnNoUpdate">
<summary>
没有版本更新时激发
</summary>
</member>
<member name="M:LiveUpdate.RyUpdate.CheckUpdate">
<summary>
</summary>
<returns></returns>
</member>
<member name="E:LiveUpdate.RyUpdate.OnUpdateCancel">
<summary>
取消更新。
</summary>
</member>
<member name="E:LiveUpdate.RyUpdate.OnAppExit">
<summary>
</summary>
</member>
<member name="T:LiveUpdate.frmStartUpdate">
<summary>
</summary>
</member>
<member name="M:LiveUpdate.frmStartUpdate.#ctor">
<summary>
</summary>
</member>
<member name="P:LiveUpdate.frmStartUpdate.T_myLiveUpdate">
<summary>
设置升级
@ -100,6 +229,19 @@
是否是在线更新
</summary>
</member>
<member name="M:LiveUpdate.frmStartUpdate.RunFile(System.String,System.String)">
<summary>
</summary>
<param name="FilePath"></param>
<param name="PramCom"></param>
<returns></returns>
</member>
<member name="E:LiveUpdate.frmStartUpdate.OnAppExit">
<summary>
</summary>
</member>
<member name="F:LiveUpdate.frmStartUpdate.components">
<summary>
Required designer variable.
@ -117,6 +259,73 @@
the contents of this method with the code editor.
</summary>
</member>
<member name="T:LiveUpdate.FrmUpdate">
<summary>
</summary>
</member>
<member name="M:LiveUpdate.FrmUpdate.#ctor(LiveUpdate.ClsLiveUpdate)">
<summary>
</summary>
<param name="_myLiveUpdate"></param>
</member>
<member name="P:LiveUpdate.FrmUpdate.T_Capion">
<summary>
提示文本
</summary>
</member>
<member name="P:LiveUpdate.FrmUpdate.T_UpdateDate">
<summary>
更新日期
</summary>
</member>
<member name="P:LiveUpdate.FrmUpdate.T_UpdateVer">
<summary>
更新版本
</summary>
</member>
<member name="P:LiveUpdate.FrmUpdate.T_UpdateDes">
<summary>
更新描述
</summary>
</member>
<member name="M:LiveUpdate.FrmUpdate.ConvertDateStr(System.String,System.String)">
<summary>
</summary>
<param name="Str"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="M:LiveUpdate.FrmUpdate.SetUpdateInfo(LiveUpdate.UpdateInfo)">
<summary>
</summary>
<param name="e"></param>
</member>
<member name="P:LiveUpdate.FrmUpdate.T_UpdateAfterTime">
<summary>
</summary>
</member>
<member name="F:LiveUpdate.FrmUpdate.canClose">
<summary>
</summary>
</member>
<member name="M:LiveUpdate.FrmUpdate.SetForegroundWindow(System.Int32)">
<summary>
</summary>
<param name="hWnd"></param>
<returns></returns>
</member>
<member name="E:LiveUpdate.FrmUpdate.OnAppExit">
<summary>
</summary>
</member>
<member name="F:LiveUpdate.FrmUpdate.components">
<summary>
Required designer variable.
@ -134,6 +343,11 @@
the contents of this method with the code editor.
</summary>
</member>
<member name="T:LiveUpdate.UpdateInfo">
<summary>
</summary>
</member>
<member name="F:LiveUpdate.UpdateInfo.UpdateType">
<summary>
更新类型,soft或者data
@ -174,5 +388,102 @@
升级程序要使用的设置xml
</summary>
</member>
<member name="T:LiveUpdate.UpdateErrorInfo">
<summary>
</summary>
</member>
<member name="F:LiveUpdate.UpdateErrorInfo.ErrorStr">
<summary>
错误字符串
</summary>
</member>
<member name="F:LiveUpdate.UpdateErrorInfo.ErrorId">
<summary>
错误id
</summary>
</member>
<member name="T:LiveUpdate.LiveUpdateEventArgs">
<summary>
</summary>
</member>
<member name="M:LiveUpdate.LiveUpdateEventArgs.#ctor">
<summary>
</summary>
</member>
<member name="P:LiveUpdate.LiveUpdateEventArgs.CurrentFileSize">
<summary>
</summary>
</member>
<member name="P:LiveUpdate.LiveUpdateEventArgs.CurrentFileName">
<summary>
</summary>
</member>
<member name="P:LiveUpdate.LiveUpdateEventArgs.CurrentUrl">
<summary>
</summary>
</member>
<member name="P:LiveUpdate.LiveUpdateEventArgs.CurrProgress">
<summary>
</summary>
</member>
<member name="P:LiveUpdate.LiveUpdateEventArgs.IsCompleted">
<summary>
</summary>
</member>
<member name="P:LiveUpdate.LiveUpdateEventArgs.CurrentStatus">
<summary>
</summary>
</member>
<member name="T:LiveUpdate.LiveUpdateProgressChanged">
<summary>
</summary>
<param name="sender"></param>
<param name="e"></param>
</member>
<member name="T:LiveUpdate.OnAppExit">
<summary>
</summary>
<param name="sender"></param>
<param name="e"></param>
</member>
<member name="T:LiveUpdate.UpdateHandler">
<summary>
</summary>
<param name="e"></param>
</member>
<member name="T:LiveUpdate.ErrorHandler">
<summary>
</summary>
<param name="e"></param>
</member>
<member name="T:ryUpdate.Properties.Resources">
<summary>
一个强类型的资源类,用于查找本地化的字符串等。
</summary>
</member>
<member name="P:ryUpdate.Properties.Resources.ResourceManager">
<summary>
返回此类使用的缓存的 ResourceManager 实例。
</summary>
</member>
<member name="P:ryUpdate.Properties.Resources.Culture">
<summary>
重写当前线程的 CurrentUICulture 属性,对
使用此强类型资源类的所有资源查找执行重写。
</summary>
</member>
</members>
</doc>

View File

@ -1,4 +1,10 @@
### 2021-01-23 dev更新
### 2021-02-11更新
------
#### MyDb V2.1.2102.1101
- *.[新增]新增Auto类增加 鼠标模拟操作和按键模拟操作。
- *.[新增]新增WinAPI命名空间,将windows自带的API集中在这个命名空间。
### 2021-01-23 dev更新
------
#### ryUpdate V2.2.2101.2301

View File

@ -28,35 +28,35 @@
/// </summary>
private void InitializeComponent()
{
this.btnCancel = new ryControls.ButtonEx();
this.btnOK = new ryControls.ButtonEx();
this.BtnCancel = new ryControls.ButtonEx();
this.BtnOK = new ryControls.ButtonEx();
this.label1 = new System.Windows.Forms.Label();
this.txtName = new ryControls.TextBoxEx2();
this.SuspendLayout();
//
// btnCancel
// BtnCancel
//
this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnCancel.ForeColor = System.Drawing.Color.White;
this.btnCancel.Location = new System.Drawing.Point(363, 310);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(65, 27);
this.btnCancel.TabIndex = 5;
this.btnCancel.Text = "取消";
this.btnCancel.UseVisualStyleBackColor = true;
this.btnCancel.Click += new System.EventHandler(this.BtnCancel_Click);
this.BtnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.BtnCancel.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
this.BtnCancel.Location = new System.Drawing.Point(363, 310);
this.BtnCancel.Name = "BtnCancel";
this.BtnCancel.Size = new System.Drawing.Size(65, 27);
this.BtnCancel.TabIndex = 5;
this.BtnCancel.Text = "取消";
this.BtnCancel.UseVisualStyleBackColor = true;
this.BtnCancel.Click += new System.EventHandler(this.BtnCancel_Click);
//
// btnOK
// BtnOK
//
this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnOK.ForeColor = System.Drawing.Color.White;
this.btnOK.Location = new System.Drawing.Point(292, 310);
this.btnOK.Name = "btnOK";
this.btnOK.Size = new System.Drawing.Size(65, 27);
this.btnOK.TabIndex = 4;
this.btnOK.Text = "确定";
this.btnOK.UseVisualStyleBackColor = true;
this.btnOK.Click += new System.EventHandler(this.BtnOK_Click);
this.BtnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.BtnOK.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
this.BtnOK.Location = new System.Drawing.Point(292, 310);
this.BtnOK.Name = "BtnOK";
this.BtnOK.Size = new System.Drawing.Size(65, 27);
this.BtnOK.TabIndex = 4;
this.BtnOK.Text = "确定";
this.BtnOK.UseVisualStyleBackColor = true;
this.BtnOK.Click += new System.EventHandler(this.BtnOK_Click);
//
// label1
//
@ -70,25 +70,33 @@
// txtName
//
this.txtName.BackColor = System.Drawing.Color.White;
this.txtName.EmptyText = "";
this.txtName.Location = new System.Drawing.Point(55, 12);
this.txtName.MaxLength = 999999999;
this.txtName.Multiline = false;
this.txtName.Name = "txtName";
this.txtName.OnlyNumeric = false;
this.txtName.PasswordChar = '\0';
this.txtName.ReadOnly = false;
this.txtName.SelectedText = "";
this.txtName.SelectionLength = 0;
this.txtName.SelectionStart = 0;
this.txtName.Size = new System.Drawing.Size(372, 25);
this.txtName.TabIndex = 6;
this.txtName.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.txtName.ToolTip = "";
this.txtName.WordWrap = true;
//
// frmAdd
// FrmAdd
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(438, 347);
this.Controls.Add(this.label1);
this.Controls.Add(this.txtName);
this.Controls.Add(this.btnCancel);
this.Controls.Add(this.btnOK);
this.Name = "frmAdd";
this.Controls.Add(this.BtnCancel);
this.Controls.Add(this.BtnOK);
this.Name = "FrmAdd";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "新增";
this.ResumeLayout(false);
@ -98,8 +106,8 @@
#endregion
private ryControls.ButtonEx btnCancel;
private ryControls.ButtonEx btnOK;
private ryControls.ButtonEx BtnCancel;
private ryControls.ButtonEx BtnOK;
private System.Windows.Forms.Label label1;
private ryControls.TextBoxEx2 txtName;
}

View File

@ -55,8 +55,10 @@
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.chromeTabControl1 = new ryControls.ChromeTabControl();
this.tabPage1 = new System.Windows.Forms.TabPage();
this.button2 = new System.Windows.Forms.Button();
this.button1 = new System.Windows.Forms.Button();
this.iconViewEx1 = new ryControls.IconViewEx();
this.hotkeyTextBox1 = new ryControls.HotkeyTextBox();
this.textBox1 = new System.Windows.Forms.TextBox();
this.MenuTray.SuspendLayout();
this.menuStrip1.SuspendLayout();
this.chromeTabControl1.SuspendLayout();
@ -147,7 +149,9 @@
//
// tabPage1
//
this.tabPage1.Controls.Add(this.hotkeyTextBox1);
this.tabPage1.Controls.Add(this.textBox1);
this.tabPage1.Controls.Add(this.button2);
this.tabPage1.Controls.Add(this.button1);
this.tabPage1.Controls.Add(this.iconViewEx1);
this.tabPage1.Location = new System.Drawing.Point(1, 29);
this.tabPage1.Name = "tabPage1";
@ -157,8 +161,29 @@
this.tabPage1.Text = "首页";
this.tabPage1.UseVisualStyleBackColor = true;
//
// button2
//
this.button2.Location = new System.Drawing.Point(276, 31);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(112, 38);
this.button2.TabIndex = 2;
this.button2.Text = "button2";
this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// button1
//
this.button1.Location = new System.Drawing.Point(49, 31);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(112, 38);
this.button1.TabIndex = 1;
this.button1.Text = "button1";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// iconViewEx1
//
this.iconViewEx1.BadgeListImage = ((System.Collections.Generic.List<System.Drawing.Image>)(resources.GetObject("iconViewEx1.BadgeListImage")));
this.iconViewEx1.HideSelection = false;
this.iconViewEx1.Icon = ((System.Drawing.Image)(resources.GetObject("iconViewEx1.Icon")));
this.iconViewEx1.IconSize = 64;
@ -184,6 +209,7 @@
this.iconViewEx1.OwnerDraw = true;
this.iconViewEx1.SelectedBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(229)))), ((int)(((byte)(195)))), ((int)(((byte)(101)))));
this.iconViewEx1.SelectedEndBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(236)))), ((int)(((byte)(181)))));
this.iconViewEx1.SelectedForeColor = System.Drawing.Color.Black;
this.iconViewEx1.SelectedStartBackColor = System.Drawing.Color.LightYellow;
this.iconViewEx1.Size = new System.Drawing.Size(451, 341);
this.iconViewEx1.TabIndex = 0;
@ -192,16 +218,12 @@
this.iconViewEx1.UseCompatibleStateImageBehavior = false;
this.iconViewEx1.View = System.Windows.Forms.View.Tile;
//
// hotkeyTextBox1
// textBox1
//
this.hotkeyTextBox1.BackColor = System.Drawing.Color.White;
this.hotkeyTextBox1.HotKey = "0+0";
this.hotkeyTextBox1.Location = new System.Drawing.Point(85, 124);
this.hotkeyTextBox1.Name = "hotkeyTextBox1";
this.hotkeyTextBox1.Size = new System.Drawing.Size(278, 44);
this.hotkeyTextBox1.T_Key = System.Windows.Forms.Keys.None;
this.hotkeyTextBox1.T_Modifiers = 0;
this.hotkeyTextBox1.TabIndex = 1;
this.textBox1.Location = new System.Drawing.Point(447, 45);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(275, 21);
this.textBox1.TabIndex = 3;
//
// FrmStart
//
@ -221,6 +243,7 @@
this.menuStrip1.PerformLayout();
this.chromeTabControl1.ResumeLayout(false);
this.tabPage1.ResumeLayout(false);
this.tabPage1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
@ -239,6 +262,8 @@
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private ryControls.IconViewEx iconViewEx1;
private ryControls.HotkeyTextBox hotkeyTextBox1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.TextBox textBox1;
}
}

View File

@ -143,5 +143,18 @@ namespace Itrycn_Project2
return;
}
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("这是一个测试", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
private void button2_Click(object sender, EventArgs e)
{
//var point= button1.PointToScreen(button1.Location);
// ryCommon.Auto.LeftClick(point.X+5, point.Y+5);
textBox1.Focus();
Auto.PasteText("你好");
}
}
}

View File

@ -126,6 +126,18 @@
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>246, 17</value>
</metadata>
<data name="iconViewEx1.BadgeListImage" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAKABU3lzdGVtLkRyYXdpbmcsIFZlcnNpb249NC4wLjAuMCwgQ3Vs
dHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhXV0sIG1zY29ybGliLCBW
ZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0
ZTA4OQwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwg
UHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQUBAAAAN1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5l
cmljLkxpc3RgMVtbU3lzdGVtLkRyYXdpbmcuSW1hZ2UDAAAABl9pdGVtcwVfc2l6ZQhfdmVyc2lvbgQA
ABZTeXN0ZW0uRHJhd2luZy5JbWFnZVtdAwAAAAgIAgAAAAkEAAAAAAAAAAAAAAAHBAAAAAABAAAAAAAA
AAQUU3lzdGVtLkRyYXdpbmcuSW1hZ2UDAAAACw==
</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="iconViewEx1.Icon" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>

View File

@ -78,7 +78,7 @@ namespace ryCommon
for (int i = 0; i < _list.Count; i++)
{
bool HaveRecord = false;
for (int m = from_list.Count-1; m>0; m--) //去host文件里查找是否已含有该内容
for (int m = from_list.Count-1; m>=0; m--) //去host文件里查找是否已含有该内容
{
if (from_list[m].Comment.Length > 0) { continue; }
if(_list[i].Domain.ToLower()== from_list[m].Domain.ToLower())

View File

@ -100,6 +100,9 @@
<Compile Include="SysFuns\RyWin32.cs" />
<Compile Include="SysFuns\SuperForm.cs" />
<Compile Include="SysFuns\WinHotReg.cs" />
<Compile Include="WinAPI\Structs.cs" />
<Compile Include="WinAPI\GDI32.cs" />
<Compile Include="WinAPI\User32.cs" />
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

View File

@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
// 方法是按如下所示使用“*”: :
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.1.2012.3001")]
[assembly: AssemblyFileVersion("2.1.2012.3001")]
[assembly: AssemblyVersion("2.1.2102.1101")]
[assembly: AssemblyFileVersion("2.1.2102.1101")]

View File

@ -1,35 +1,330 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Forms;
using Win32API;
namespace ryCommon.SysFuns
namespace ryCommon
{
/// <summary>
/// 对鼠标或键盘的自动化操作
/// </summary>
public class Auto
{
uint WM_LBUTTONDOWN = 0x201;
uint WM_LBUTTONUP = 0x202;
/// <summary>
/// 鼠标左键
/// </summary>
public const int MK_LBUTTON = 1;//鼠标左键
/// <summary>
/// 鼠标中键
/// </summary>
public const int MK_MBUTTON = 16;//鼠标中键
/// <summary>
/// 鼠标右键
/// </summary>
public const int MK_RBUTTON = 2;//鼠标右键
//移动鼠标
const int MOUSEEVENTF_MOVE = 0x0001;
//模拟鼠标左键按下
const int MOUSEEVENTF_LEFTDOWN = 0x0002;
//模拟鼠标左键抬起
const int MOUSEEVENTF_LEFTUP = 0x0004;
//模拟鼠标右键按下
const int MOUSEEVENTF_RIGHTDOWN = 0x0008;
//模拟鼠标右键抬起
const int MOUSEEVENTF_RIGHTUP = 0x0010;
//模拟鼠标中键按下
const int MOUSEEVENTF_MIDDLEDOWN = 0x0020;
//模拟鼠标中键抬起
const int MOUSEEVENTF_MIDDLEUP = 0x0040;
//标示是否采用绝对坐标
const int MOUSEEVENTF_ABSOLUTE = 0x8000;
//模拟鼠标滚轮滚动操作必须配合dwData参数
const int MOUSEEVENTF_WHEEL = 0x0800;
const uint WM_LBUTTONDOWN = 0x201;
const uint WM_LBUTTONUP = 0x202;
const int WM_RBUTTONDOWN = 516; // 鼠标右键按下
const int WM_RBUTTONUP = 517; // 鼠标右键抬起
const int WM_MBUTTONDOWN = 519; // 鼠标中键按下
const int WM_MBUTTONUP = 520; // 鼠标中键抬起
const uint WM_MOUSEWHEEL = 0x020A;
const uint WM_MOUSEMOVE = 0x0200;
const uint WM_KEYDOWN = 0x0100;
const uint WM_KEYUP = 0x0101;
[DllImport("user32.dll", SetLastError = true)]
static extern bool SendMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);
private int MakeLParam(int LoWord, int HiWord)
private static int MakeLParam(int LoWord, int HiWord)
{
return ((HiWord << 16) | (LoWord & 0xffff));
}
/// <summary>
/// 模拟键盘按键
/// </summary>
/// <param name="hWnd"></param>
/// <param name="key"></param>
/// <param name="isPress">按下还是抬起</param>
public static void KeyButton(IntPtr hWnd, int key, bool isPress)
{
if (isPress)
User32.SendMessage(hWnd, WM_KEYDOWN, key, 0);
else
User32.SendMessage(hWnd, WM_KEYUP, key, 0);
}
/// <summary>
/// 鼠标滚轮
/// </summary>
/// <param name="hWnd"></param>
/// <param name="mouse_position"></param>
/// <param name="delta"></param>
public static void Mouse_Wheel(IntPtr hWnd, Point mouse_position, int delta)
{
User32.SendMessage(hWnd, WM_MOUSEWHEEL, delta * 65536, mouse_position.X + mouse_position.Y * 65536);
}
/// <summary>
/// 鼠标移动
/// </summary>
/// <param name="hWnd"></param>
/// <param name="button"></param>
/// <param name="mouse_position"></param>
public static void Mouse_Move(IntPtr hWnd, int button, Point mouse_position)
{
User32.SendMessage(hWnd, WM_MOUSEMOVE, button, mouse_position.X + mouse_position.Y * 65536);
}
/// <summary>
/// 自定义鼠标按下或抬起
/// </summary>
/// <param name="hWnd"></param>
/// <param name="button"></param>
/// <param name="mouse_position"></param>
/// <param name="isPress"></param>
public static void Mouse_Button(IntPtr hWnd,MouseButtons button, Point mouse_position, bool isPress)
{
if (button == MouseButtons.Middle)
{
if (isPress)
User32.SendMessage(hWnd, WM_MBUTTONDOWN, MK_MBUTTON, mouse_position.X + mouse_position.Y * 65536);
else
User32.SendMessage(hWnd, WM_MBUTTONUP, 0, mouse_position.X + mouse_position.Y * 65536);
}
else if (button == MouseButtons.Right)
{
if (isPress)
User32.SendMessage(hWnd, WM_RBUTTONDOWN, MK_RBUTTON, mouse_position.X + mouse_position.Y * 65536);
else
User32.SendMessage(hWnd, WM_RBUTTONUP, 0, mouse_position.X + mouse_position.Y * 65536);
}
else if (button == MouseButtons.Left)
{
if (isPress)
User32.SendMessage(hWnd, WM_LBUTTONDOWN, MK_LBUTTON, mouse_position.X + mouse_position.Y * 65536);
else
User32.SendMessage(hWnd, WM_LBUTTONUP, 0, mouse_position.X + mouse_position.Y * 65536);
}
}
/// <summary>
///左键单击鼠标(支持后台单击)
/// </summary>
/// <param name="handle">指定要发送单击命令的句柄</param>
/// <param name="x">坐标x(句柄内的坐标,非屏幕坐标)</param>
/// <param name="y">坐标y(句柄内的坐标,非屏幕坐标)</param>
public void LeftClick(IntPtr handle, int x, int y)
public static void LeftClick(IntPtr handle, int x, int y)
{
SendMessage(handle, WM_LBUTTONDOWN, 1, MakeLParam(x, y));
SendMessage(handle, WM_LBUTTONUP, 0, MakeLParam(x, y));
User32.SendMessage(handle, WM_LBUTTONDOWN, 1, MakeLParam(x, y));
User32.SendMessage(handle, WM_LBUTTONUP, 0, MakeLParam(x, y));
}
/// <summary>
///左键单击鼠标(支持后台单击)
/// </summary>
/// <param name="handle">指定要发送单击命令的句柄</param>
/// <param name="point">坐标(句柄内的坐标,非屏幕坐标)</param>
public static void LeftClick(IntPtr handle,Point point)
{
LeftClick(handle,point.X,point.Y);
}
/// <summary>
///右键单击鼠标(支持后台单击)
/// </summary>
/// <param name="handle">指定要发送单击命令的句柄</param>
/// <param name="x">坐标x(句柄内的坐标,非屏幕坐标)</param>
/// <param name="y">坐标y(句柄内的坐标,非屏幕坐标)</param>
public static void RightClick(IntPtr handle, int x, int y)
{
User32.SendMessage(handle, WM_RBUTTONDOWN, 1, MakeLParam(x, y));
User32.SendMessage(handle, WM_RBUTTONUP, 0, MakeLParam(x, y));
}
/// <summary>
///右键单击鼠标(支持后台单击)
/// </summary>
/// <param name="handle">指定要发送单击命令的句柄</param>
/// <param name="point">坐标(句柄内的坐标,非屏幕坐标)</param>
public static void RightClick(IntPtr handle, Point point)
{
RightClick(handle, point.X, point.Y);
}
/// <summary>
///中键单击鼠标(支持后台单击)
/// </summary>
/// <param name="handle">指定要发送单击命令的句柄</param>
/// <param name="x">坐标x(句柄内的坐标,非屏幕坐标)</param>
/// <param name="y">坐标y(句柄内的坐标,非屏幕坐标)</param>
public static void MiddleClick(IntPtr handle, int x, int y)
{
User32.SendMessage(handle, WM_MBUTTONDOWN, 1, MakeLParam(x, y));
User32.SendMessage(handle, WM_MBUTTONUP, 0, MakeLParam(x, y));
}
/// <summary>
///中键单击鼠标(支持后台单击)
/// </summary>
/// <param name="handle">指定要发送单击命令的句柄</param>
/// <param name="point">坐标(句柄内的坐标,非屏幕坐标)</param>
public static void MiddleClick(IntPtr handle, Point point)
{
MiddleClick(handle, point.X, point.Y);
}
/// <summary>
///左键单击鼠标(不支持后台单击)
/// </summary>
/// <param name="x">坐标x(屏幕坐标)</param>
/// <param name="y">坐标y(屏幕坐标)</param>
public static void LeftClick(int x, int y)
{
Cursor.Position = new System.Drawing.Point(x,y);
User32.mouse_event(MOUSEEVENTF_LEFTDOWN , 0,0, 0, 0);
User32.mouse_event(MOUSEEVENTF_LEFTUP, 0,0, 0, 0);
}
/// <summary>
///左键单击鼠标(不支持后台单击)
/// </summary>
/// <param name="point">坐标(屏幕坐标)</param>
public static void LeftClick(Point point)
{
LeftClick(point.X, point.Y);
}
/// <summary>
///右键单击鼠标(不支持后台单击)
/// </summary>
/// <param name="x">坐标x(屏幕坐标)</param>
/// <param name="y">坐标y(屏幕坐标)</param>
public static void RightClick(int x, int y)
{
Cursor.Position = new System.Drawing.Point(x, y);
User32.mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0);
User32.mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0);
}
/// <summary>
///右键单击鼠标(不支持后台单击)
/// </summary>
/// <param name="point">坐标(屏幕坐标)</param>
public static void RightClick(Point point)
{
RightClick(point.X, point.Y);
}
/// <summary>
///中键单击鼠标(不支持后台单击)
/// </summary>
/// <param name="x">坐标x(屏幕坐标)</param>
/// <param name="y">坐标y(屏幕坐标)</param>
public static void MiddleClick(int x, int y)
{
Cursor.Position = new System.Drawing.Point(x, y);
User32.mouse_event(MOUSEEVENTF_MIDDLEDOWN, 0, 0, 0, 0);
User32.mouse_event(MOUSEEVENTF_MIDDLEUP, 0, 0, 0, 0);
}
/// <summary>
///中键单击鼠标(不支持后台单击)
/// </summary>
/// <param name="point">坐标(屏幕坐标)</param>
public static void MiddleClick(Point point)
{
MiddleClick(point.X, point.Y);
}
/// <summary>
/// 粘贴文本
/// </summary>
/// <param name="text"></param>
public static void PasteText(string text)
{
var _text = Clipboard.GetText();
try
{
Clipboard.SetText(text);
}
catch { }
SendKeys.SendWait("^{V}");
}
/// <summary>
/// 获取指定句柄的大小及位置
/// </summary>
/// <param name="handle"></param>
/// <param name="size"></param>
/// <returns></returns>
public static Rectangle GetRect(IntPtr handle, out Size size)
{
IntPtr hdcSrc = User32.GetWindowDC(handle);
Rectangle windowRect = new Rectangle();
size = new Size(0, 0);
if (hdcSrc == IntPtr.Zero) { return windowRect; }
User32.GetWindowRect(handle, ref windowRect);
int width = windowRect.Right - windowRect.Left;
int height = windowRect.Bottom - windowRect.Top;
size = new Size(width, height);
return windowRect;
}
/// <summary>
/// 设置指定句柄的大小
/// </summary>
/// <param name="handle"></param>
/// <param name="size"></param>
public static void SetRect(IntPtr handle, Size size)
{
var rect = GetRect(handle, out var size2);
User32.MoveWindow(handle, rect.Left, rect.Top, size.Width, size.Height, true);
}
/// <summary>
/// 判断鼠标位置是不是在指定的矩形中
/// </summary>
/// <param name="rect"></param>
/// <param name="mouse_position"></param>
/// <returns></returns>
public static bool IsInRect(MyDb.RyWin32.RECT rect, Point mouse_position)
{
return mouse_position.X >= rect.Left && mouse_position.X <= rect.Right && mouse_position.Y >= rect.Top && mouse_position.Y <= rect.Bottom;
}
/// <summary>
/// 判断2张图是否相似度超90
/// </summary>
/// <param name="bmpOne"></param>
/// <param name="bmpTwo"></param>
/// <returns></returns>
public static bool ImageEquals(Bitmap bmpOne, Bitmap bmpTwo)
{
if (bmpOne == null && bmpTwo == null) { return true; }
if (bmpOne == null || bmpTwo == null) { return false; }
for (int i = 0; i < bmpOne.Width; i++)
{
for (int j = 0; j < bmpOne.Height; j++)
{
double xsd = GetXsd(bmpOne.GetPixel(i, j), bmpTwo.GetPixel(i, j));
if (xsd < 90)
return false;
}
}
return true;
}
/// <summary>
/// /获取2种颜色的相似度,范围为0~100
/// </summary>
/// <param name="c1"></param>
/// <param name="c2"></param>
/// <returns></returns>
public static double GetXsd(Color c1, Color c2)
{
//像素点相似度公式(255 - abs(r1 - r2) * 0.297 - abs(g1 - g2) * 0.593 - abs(b1 - b2) * 0.11) / 255
double xsd2 = (255 - Math.Abs(c1.R - c2.R) * 0.297 - Math.Abs(c1.G - c2.G) * 0.593 - Math.Abs(c1.B - c2.B) * 0.11) / 255;
return xsd2 * 100;
}
}
}

View File

@ -172,6 +172,126 @@ namespace ryCommon
}
}
/// <summary>
/// 设置文件关联
/// </summary>
/// <param name="Ext">扩展名(如.apk)</param>
/// <param name="ExtName">映射的扩展名(如apkfile)</param>
/// <param name="sName">app名称(建议用英文数字)</param>
/// <param name="AssDes">文件关联描述</param>
/// <param name="filePath">文件路径</param>
public static void SetFileAssociation(string Ext, string ExtName, string sName, string AssDes, string filePath)
{
RegistryKey LRoot = Registry.ClassesRoot;
try
{
RegistryKey reg1 = LRoot.CreateSubKey(Ext);
reg1.SetValue("", ExtName);
reg1.Close();
}
catch { }
LRoot.Close();
SetFileAssociation(ExtName, sName, AssDes, filePath);
}
/// <summary>
/// 设置文件关联
/// </summary>
/// <param name="ExtName">映射的扩展名(如apkfile)</param>
/// <param name="sName">app名称(建议用英文数字)</param>
/// <param name="AssDes">文件关联描述</param>
/// <param name="filePath">文件路径</param>
public static void SetFileAssociation(string ExtName, string sName, string AssDes, string filePath)
{
RegistryKey LRoot = Registry.ClassesRoot;
try
{
SetReg(sName);
SetReg("open");
RegistryKey reg_3 = LRoot.CreateSubKey(ExtName + @"\DefaultIcon");
reg_3.SetValue("", filePath + ",0");
reg_3.Close();
void SetReg(string key)
{
RegistryKey reg1 = LRoot.CreateSubKey(ExtName + @"\shell\" + key);
reg1.SetValue("", AssDes);
reg1.Close();
RegistryKey reg_2 = LRoot.CreateSubKey(ExtName + @"\shell\" + key + "\\command");
reg_2.SetValue("", "\"" + filePath + "\" \"%1\"");
reg_2.Close();
}
}
catch
{ }
LRoot.Close();
}
/// <summary>
/// 在指定文件格式右键菜单中增加菜单
/// </summary>
///<param name="Ext">扩展名(如.apk)</param>
/// <param name="sName">app名称(建议用英文数字)</param>
/// <param name="AssDes">文件关联描述</param>
/// <param name="filePath">文件路径</param>
public static void SetFileAssociationOpenAs(string Ext, string sName, string AssDes, string filePath)
{
RegistryKey LRoot = Registry.ClassesRoot;
try
{
SetReg(sName);
void SetReg(string key)
{
RegistryKey reg1 = LRoot.CreateSubKey(Ext + @"\shell\" + key);
reg1.SetValue("", AssDes);
reg1.Close();
RegistryKey reg_2 = LRoot.CreateSubKey(Ext + @"\shell\" + key + "\\command");
reg_2.SetValue("", "\"" + filePath + "\" \"%1\"");
reg_2.Close();
}
}
catch { }
LRoot.Close();
}
/// <summary>
/// 删除文件关联
/// </summary>
/// <param name="ExtName">映射的扩展名(如apkfile)</param>
/// <param name="sName">app名称(建议用英文数字)</param>
public static void DelFileAssociation(string ExtName, string sName)
{
RegistryKey LRoot = Registry.ClassesRoot;
try
{
RegistryKey reg1 = LRoot.OpenSubKey(ExtName + @"\shell");
if (reg1 != null)
{
reg1.DeleteSubKeyTree(sName);
reg1.Close();
}
}
catch { }
LRoot.Close();
}
/// <summary>
/// 获取文件关联是否存在
/// </summary>
/// <param name="ExtName">映射的扩展名(如apkfile)</param>
/// <param name="sName">app名称(建议用英文数字)</param>
public static bool GetFileAssociation(string ExtName, string sName)
{
bool result = false;
RegistryKey LRoot = Registry.ClassesRoot;
try
{
RegistryKey reg1 = LRoot.OpenSubKey(ExtName + @"\shell\"+ sName);
if (reg1 != null)
{
reg1.Close();
result = true;
}
}
catch { }
LRoot.Close();
return result;
}
/// <summary>
/// 采用的IE模式
/// </summary>
public enum IeMode

View File

@ -282,5 +282,6 @@ namespace MyDb
MoveWindow(sub_form, 0, 0, size.Width, size.Height, false);
return true;
}
}
}

View File

@ -0,0 +1,59 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
namespace WinAPI
{
/// <summary>
///
/// </summary>
public class GDI32
{
/// <summary>
///
/// </summary>
/// <param name="hObject"></param>
/// <returns></returns>
[DllImport("gdi32")]
public static extern bool DeleteObject(IntPtr hObject);
/// <summary>
///
/// </summary>
/// <param name="hdc"></param>
/// <param name="hgdiobj"></param>
/// <returns></returns>
[DllImport("gdi32")]
public static extern IntPtr SelectObject(IntPtr hdc, IntPtr hgdiobj);
/// <summary>
///
/// </summary>
/// <param name="hdc"></param>
/// <returns></returns>
[DllImport("gdi32", SetLastError = true)]
public static extern IntPtr CreateCompatibleDC(IntPtr hdc);
/// <summary>
///
/// </summary>
/// <param name="driverName"></param>
/// <param name="deviceName"></param>
/// <param name="output"></param>
/// <param name="lpInitData"></param>
/// <returns></returns>
[DllImport("gdi32")]
public static extern IntPtr CreateDC(
String driverName,
String deviceName,
String output,
IntPtr lpInitData);
/// <summary>
///
/// </summary>
/// <param name="dc"></param>
/// <returns></returns>
[DllImport("gdi32")]
public static extern bool DeleteDC(
IntPtr dc);
}
}

View File

@ -0,0 +1,108 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
namespace WinAPI
{
/// <summary>
///
/// </summary>
public class Struct
{
#region Struct
/// <summary>
///
/// </summary>
[StructLayout(LayoutKind.Sequential)]
public struct BLENDFUNCTION
{
/// <summary>
///
/// </summary>
public byte BlendOp;
/// <summary>
/// /
/// </summary>
public byte BlendFlags;
/// <summary>
///
/// </summary>
public byte SourceConstantAlpha;
/// <summary>
///
/// </summary>
public byte AlphaFormat;
}
#endregion
/// <summary>
///
/// </summary>
[Flags]
public enum FlagsSetWindowPos : uint
{
/// <summary>
///
/// </summary>
SWP_NOSIZE = 0x0001,
/// <summary>
///
/// </summary>
SWP_NOMOVE = 0x0002,
/// <summary>
///
/// </summary>
SWP_NOZORDER = 0x0004,
/// <summary>
///
/// </summary>
SWP_NOREDRAW = 0x0008,
/// <summary>
///
/// </summary>
SWP_NOACTIVATE = 0x0010,
/// <summary>
///
/// </summary>
SWP_FRAMECHANGED = 0x0020,
/// <summary>
///
/// </summary>
SWP_SHOWWINDOW = 0x0040,
/// <summary>
///
/// </summary>
SWP_HIDEWINDOW = 0x0080,
/// <summary>
///
/// </summary>
SWP_NOCOPYBITS = 0x0100,
/// <summary>
///
/// </summary>
SWP_NOOWNERZORDER = 0x0200,
/// <summary>
/// /
/// </summary>
SWP_NOSENDCHANGING = 0x0400,
/// <summary>
/// /
/// </summary>
SWP_DRAWFRAME = 0x0020,
/// <summary>
///
/// </summary>
SWP_NOREPOSITION = 0x0200,
/// <summary>
///
/// </summary>
SWP_DEFERERASE = 0x2000,
/// <summary>
///
/// </summary>
SWP_ASYNCWINDOWPOS = 0x4000
};
}
}

View File

@ -0,0 +1,289 @@
using System;
using System.Text;
using System.Drawing;
using System.Runtime.InteropServices;
using static WinAPI.Struct;
using System.Windows.Forms;
namespace Win32API
{
/// <summary>
///
/// </summary>
public partial class User32
{
#region UnmanagedMethods
/// <summary>
/// 模拟鼠标点击
/// </summary>
/// <param name="dwFlags"></param>
/// <param name="dx"></param>
/// <param name="dy"></param>
/// <param name="dwData"></param>
/// <param name="dwExtraInfo"></param>
/// <returns></returns>
[DllImport("user32")]
public static extern int mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);
/// <summary>
/// 模拟按键
/// </summary>
/// <param name="bVk"></param>
/// <param name="bScan"></param>
/// <param name="dwFlags"></param>
/// <param name="dwExtraInfo"></param>
[DllImport("user32.dll", EntryPoint = "keybd_event", SetLastError = true)]
public static extern void keybd_event(Keys bVk, byte bScan, uint dwFlags, uint dwExtraInfo);
/// <summary>
///
/// </summary>
/// <param name="hWnd"></param>
/// <returns></returns>
[DllImport("User32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr GetWindowDC(IntPtr hWnd);
/// <summary>
///
/// </summary>
/// <param name="hWnd"></param>
/// <param name="x"></param>
/// <param name="y"></param>
/// <param name="width"></param>
/// <param name="height"></param>
/// <param name="repaint"></param>
/// <returns></returns>
[DllImport("User32.dll", CharSet = CharSet.Auto)]
public static extern bool MoveWindow(IntPtr hWnd, int x, int y, int width, int height, bool repaint);
/// <summary>
///
/// </summary>
/// <param name="hwndChild"></param>
/// <param name="hwndParent"></param>
/// <returns></returns>
[DllImport("user32", CharSet = CharSet.Auto)]
public static extern IntPtr SetParent(IntPtr hwndChild, IntPtr hwndParent);
/// <summary>
/// The GetParent function retrieves a handle to the specified window's parent or owner.
/// </summary>
/// <param name="hwnd">Handle to the window whose parent window handle is to be retrieved.</param>
/// <returns>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.</returns>
[DllImport("user32", CharSet = CharSet.Auto)]
public static extern IntPtr GetParent(IntPtr hwnd);
/// <summary>
///
/// </summary>
/// <param name="hwnd"></param>
/// <param name="wMsg"></param>
/// <param name="wParam"></param>
/// <param name="lParam"></param>
/// <returns></returns>
[DllImport("user32", CharSet = CharSet.Auto)]
public static extern int SendMessage(
IntPtr hwnd,
int wMsg,
int wParam,
int lParam);
/// <summary>
///
/// </summary>
/// <param name="hwnd"></param>
/// <param name="wMsg"></param>
/// <param name="wParam"></param>
/// <param name="lParam"></param>
/// <returns></returns>
[DllImport("user32", CharSet = CharSet.Auto)]
public static extern int SendMessage(
IntPtr hwnd,
int wMsg,
IntPtr wParam,
IntPtr lParam);
/// <summary>
///
/// </summary>
/// <param name="hWnd"></param>
/// <param name="Msg"></param>
/// <param name="wParam"></param>
/// <param name="lParam"></param>
/// <returns></returns>
[DllImport("user32.dll", SetLastError = true)]
public static extern bool SendMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);
/// <summary>
///
/// </summary>
/// <param name="filename"></param>
/// <returns></returns>
[DllImport("user32", CharSet = CharSet.Auto)]
public static extern IntPtr LoadCursorFromFile(string filename);
/// <summary>
///
/// </summary>
/// <param name="hwnd"></param>
/// <returns></returns>
[DllImport("user32", CharSet = CharSet.Auto)]
public static extern bool IsWindowVisible(IntPtr hwnd);
/// <summary>
/// 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.
/// </summary>
/// <param name="hwndParent">Handle to the parent window whose child windows are to be searched.</param>
/// <param name="hwndChildAfter">Handle to a child window.</param>
/// <param name="lpszClass">Specifies class name.</param>
/// <param name="lpszWindow">Pointer to a null-terminated string that specifies the window name (the window's title).</param>
/// <returns>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.</returns>
[DllImport("user32", CharSet = CharSet.Auto)]
public static extern IntPtr FindWindowEx(
IntPtr hwndParent,
IntPtr hwndChildAfter,
[MarshalAs(UnmanagedType.LPTStr)]
string lpszClass,
[MarshalAs(UnmanagedType.LPTStr)]
string lpszWindow);
/// <summary>
/// The InvalidateRect function adds a rectangle to the specified window's update region.
/// </summary>
/// <param name="hwnd">Handle to window.</param>
/// <param name="rect">Rectangle coordinates.</param>
/// <param name="bErase">Erase state.</param>
/// <returns>If the function succeeds, the return value is true.If the function fails, the return value is false.</returns>
[DllImport("user32", CharSet = CharSet.Auto)]
public static extern bool InvalidateRect(
IntPtr hwnd,
ref Rectangle rect,
bool bErase);
/// <summary>
/// The ValidateRect function validates the client area within a rectangle by removing the rectangle from the update region of the specified window.
/// </summary>
/// <param name="hwnd">Handle to window.</param>
/// <param name="rect">Validation rectangle coordinates.</param>
/// <returns>If the function succeeds, the return value is true.If the function fails, the return value is false.</returns>
[DllImport("user32", CharSet = CharSet.Auto)]
public static extern bool ValidateRect(
IntPtr hwnd,
ref Rectangle rect);
/// <summary>
///
/// </summary>
/// <param name="hWnd"></param>
/// <param name="dwStyle"></param>
/// <returns></returns>
[DllImport("user32", CharSet = CharSet.Auto)]
public static extern int GetWindowLong(
IntPtr hWnd,
int dwStyle);
/// <summary>
///
/// </summary>
/// <param name="hwnd"></param>
/// <returns></returns>
[DllImport("user32", CharSet = CharSet.Auto)]
public static extern IntPtr GetDC(
IntPtr hwnd);
/// <summary>
///
/// </summary>
/// <param name="hwnd"></param>
/// <param name="hdc"></param>
/// <returns></returns>
[DllImport("user32", CharSet = CharSet.Auto)]
public static extern int ReleaseDC(
IntPtr hwnd,
IntPtr hdc);
//[DllImport("user32", SetLastError = false)]
//internal static extern IntPtr GetDesktopWindow();
//[DllImport("user32", CharSet = CharSet.Auto)]
//internal static extern int GetScrollPos(
// IntPtr hwnd,
// int nBar);
/// <summary>
///
/// </summary>
/// <param name="hwnd"></param>
/// <param name="rect"></param>
/// <returns></returns>
[DllImport("user32", CharSet = CharSet.Auto)]
public static extern int GetClientRect(
IntPtr hwnd,
[In, Out] ref Rectangle rect);
/// <summary>
///
/// </summary>
/// <param name="hWnd"></param>
/// <param name="rect"></param>
/// <returns></returns>
[DllImport("user32", CharSet = CharSet.Auto)]
public static extern bool GetWindowRect(
IntPtr hWnd,
[In, Out] ref Rectangle rect);
/// <summary>
///
/// </summary>
/// <param name="hwnd"></param>
/// <param name="hdcDst"></param>
/// <param name="pptDst"></param>
/// <param name="psize"></param>
/// <param name="hdcSrc"></param>
/// <param name="pprSrc"></param>
/// <param name="crKey"></param>
/// <param name="pblend"></param>
/// <param name="dwFlags"></param>
/// <returns></returns>
[DllImport("user32", ExactSpelling = true, SetLastError = true)]
public static extern bool UpdateLayeredWindow(IntPtr hwnd, IntPtr hdcDst, ref Point pptDst, ref Size psize, IntPtr hdcSrc, ref Point pprSrc, Int32 crKey, ref BLENDFUNCTION pblend, Int32 dwFlags);
/// <summary>
///
/// </summary>
/// <param name="hWnd"></param>
/// <param name="nIndex"></param>
/// <param name="dwNewLong"></param>
/// <returns></returns>
[DllImport("user32", CharSet = CharSet.Auto)]
public static extern uint SetWindowLong(
IntPtr hWnd,
int nIndex,
int dwNewLong);
/// <summary>
/// Changes the size, position, and Z order of a child, pop-up, or top-level window.
/// These windows are ordered according to their appearance on the screen.
/// The topmost window receives the highest rank and is the first window in the Z order.
/// </summary>
/// <param name="hWnd">A handle to the window.</param>
/// <param name="hWndAfter">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.</param>
/// <param name="X">Specifies the new position of the left side of the window, in client coordinates.</param>
/// <param name="Y">Specifies the new position of the top of the window, in client coordinates.</param>
/// <param name="Width">Specifies the new width of the window, in pixels.</param>
/// <param name="Height">Specifies the new height of the window, in pixels.</param>
/// <param name="flags">Specifies the window sizing and positioning flags. This parameter can be a combination of the following values.</param>
/// <returns>If the function succeeds, the return value is nonzero, if the function fails, the return value is zero.</returns>
[DllImport("user32", CharSet = CharSet.Auto)]
public static extern int SetWindowPos(
IntPtr hWnd,
IntPtr hWndAfter,
int X,
int Y,
int Width,
int Height,
FlagsSetWindowPos flags);
/// <summary>
///
/// </summary>
/// <param name="hWnd"></param>
/// <param name="hWndInsertAfter"></param>
/// <param name="X"></param>
/// <param name="Y"></param>
/// <param name="cx"></param>
/// <param name="cy"></param>
/// <param name="uFlags"></param>
/// <returns></returns>
[DllImport("user32", CharSet = CharSet.Auto)]
public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X,
int Y, int cx, int cy, uint uFlags);
#endregion
}
}

Binary file not shown.

Binary file not shown.

View File

@ -212,8 +212,8 @@ namespace ryControls
else
{
HaveTextShow(); txtSearch.Text = _text;
txtSearch.Select(0, 1);
txtSearch.Select(_text.Length, 0);
//txtSearch.Select(0, 1);
//txtSearch.Select(_text.Length, 0);
}
}
}

View File

@ -0,0 +1,126 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Text;
namespace ryControls
{
/// <summary>
/// 建立圆角路径的样式。
/// </summary>
public enum RoundStyle
{
/// <summary>
/// 四个角都不是圆角。
/// </summary>
None = 0,
/// <summary>
/// 四个角都为圆角。
/// </summary>
All = 1,
/// <summary>
/// 左边两个角为圆角。
/// </summary>
Left = 2,
/// <summary>
/// 右边两个角为圆角。
/// </summary>
Right = 3,
/// <summary>
/// 上边两个角为圆角。
/// </summary>
Top = 4,
/// <summary>
/// 下边两个角为圆角。
/// </summary>
Bottom = 5,
/// <summary>
/// 左下角为圆角。
/// </summary>
BottomLeft = 6,
/// <summary>
/// 右下角为圆角。
/// </summary>
BottomRight = 7
}
/// <summary>
/// 画图相关API
/// </summary>
public class Drawing
{
/// <summary>
/// 建立带有圆角样式的路径。
/// </summary>
/// <param name="rect">用来建立路径的矩形。</param>
/// <param name="radius">圆角的大小。</param>
/// <param name="style">圆角的样式。</param>
/// <param name="correction">是否把矩形长宽减 1,以便画出边框。</param>
/// <returns>建立的路径。</returns>
public static GraphicsPath CreatePath(Rectangle rect, int radius, RoundStyle style, bool correction)
{
GraphicsPath path = new GraphicsPath();
int radiusCorrection = correction ? 1 : 0;
switch (style)
{
case RoundStyle.None:
path.AddRectangle(rect);
break;
case RoundStyle.All:
path.AddArc(rect.X, rect.Y, radius, radius, 180, 90);
path.AddArc(rect.Right - radius - radiusCorrection, rect.Y, radius, radius, 270, 90);
path.AddArc(rect.Right - radius - radiusCorrection, rect.Bottom - radius - radiusCorrection, radius, radius, 0, 90);
path.AddArc(rect.X, rect.Bottom - radius - radiusCorrection, radius, radius, 90, 90);
break;
case RoundStyle.Left:
path.AddArc(rect.X, rect.Y, radius, radius, 180, 90);
path.AddLine(rect.Right - radiusCorrection, rect.Y, rect.Right - radiusCorrection, rect.Bottom - radiusCorrection);
path.AddArc(rect.X, rect.Bottom - radius - radiusCorrection, radius, radius, 90, 90);
break;
case RoundStyle.Right:
path.AddArc(rect.Right - radius - radiusCorrection, rect.Y, radius, radius, 270, 90);
path.AddArc(rect.Right - radius - radiusCorrection, rect.Bottom - radius - radiusCorrection, radius, radius, 0, 90);
path.AddLine(rect.X, rect.Bottom - radiusCorrection, rect.X, rect.Y);
break;
case RoundStyle.Top:
path.AddArc(rect.X, rect.Y, radius, radius, 180, 90);
path.AddArc(rect.Right - radius - radiusCorrection, rect.Y, radius, radius, 270, 90);
path.AddLine(rect.Right - radiusCorrection, rect.Bottom - radiusCorrection, rect.X, rect.Bottom - radiusCorrection);
break;
case RoundStyle.Bottom:
path.AddArc(rect.Right - radius - radiusCorrection, rect.Bottom - radius - radiusCorrection, radius, radius, 0, 90);
path.AddArc(rect.X, rect.Bottom - radius - radiusCorrection, radius, radius, 90, 90);
path.AddLine(rect.X, rect.Y, rect.Right - radiusCorrection, rect.Y);
break;
case RoundStyle.BottomLeft:
path.AddArc(
rect.X,
rect.Bottom - radius - radiusCorrection,
radius,
radius,
90,
90);
path.AddLine(rect.X, rect.Y, rect.Right - radiusCorrection, rect.Y);
path.AddLine(
rect.Right - radiusCorrection,
rect.Y,
rect.Right - radiusCorrection,
rect.Bottom - radiusCorrection);
break;
case RoundStyle.BottomRight:
path.AddArc(
rect.Right - radius - radiusCorrection,
rect.Bottom - radius - radiusCorrection,
radius,
radius,
0,
90);
path.AddLine(rect.X, rect.Bottom - radiusCorrection, rect.X, rect.Y);
path.AddLine(rect.X, rect.Y, rect.Right - radiusCorrection, rect.Y);
break;
}
path.CloseFigure(); //这句很关键,缺少会没有左边线。
return path;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,238 @@
using ryControls;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Text;
namespace BrightIdeasSoftware.Rendering
{
enum buttonStyle
{
/// <summary>
/// 正常为选中按钮
/// </summary>
ButtonNormal,
/// <summary>
/// 获得焦点的按钮
/// </summary>
ButtonFocuse,
/// <summary>
/// 鼠标经过样式
/// </summary>
ButtonMouseOver,
/// <summary>
/// 获得焦点并鼠标经过
/// </summary>
ButtonFocuseAndMouseOver
}
/// <summary>
/// 自定义GDI工具绘制按钮
/// </summary>
class Util_GDI
{
/// <summary>
/// 绘制圆形按钮(用法同矩形按钮)
/// </summary>
/// <param name="text"></param>
/// <param name="g"></param>
/// <param name="Location"></param>
/// <param name="r"></param>
/// <param name="btnStyle"></param>
public static void DrawCircleButton(string text, Graphics g, Point Location, int r, buttonStyle btnStyle)
{
Graphics Gcircle = g;
Rectangle rect = new Rectangle(Location.X, Location.Y, r, r);
Pen p = new Pen(new SolidBrush(Color.Black));
Gcircle.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
Gcircle.DrawEllipse(p, rect);
if (btnStyle == buttonStyle.ButtonFocuse)
{
Gcircle.FillEllipse(new SolidBrush(ColorTranslator.FromHtml("#338FCC")), rect);
}
else if (btnStyle == buttonStyle.ButtonMouseOver)
{
Gcircle.FillEllipse(new SolidBrush(ColorTranslator.FromHtml("#EAC100")), rect);
}
else if (btnStyle == buttonStyle.ButtonFocuseAndMouseOver)
{
Gcircle.FillEllipse(new SolidBrush(ColorTranslator.FromHtml("#EAC100")), rect);
}
p.DashStyle = DashStyle.Dash;
if (btnStyle != buttonStyle.ButtonNormal)
{
Gcircle.DrawEllipse(p, new Rectangle(rect.X + 2, rect.Y + 2, rect.Width - 4, rect.Height - 4));//虚线框
}
Gcircle.FillEllipse(new SolidBrush(Color.WhiteSmoke), new Rectangle(rect.X + 3, rect.Y + 3, rect.Width - 6, rect.Height - 6));
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Center;
sf.LineAlignment = StringAlignment.Center;
Gcircle.DrawString(text, new Font(new FontFamily("宋体"), 10), new SolidBrush(Color.Black), rect, sf);
p.Dispose();
}
public static Color GetColor(Color colorBase, int a, int r, int g, int b)
{
int a0 = colorBase.A;
int r0 = colorBase.R;
int g0 = colorBase.G;
int b0 = colorBase.B;
if (a + a0 > 255) { a = 255; } else { a = Math.Max(a + a0, 0); }
if (r + r0 > 255) { r = 255; } else { r = Math.Max(r + r0, 0); }
if (g + g0 > 255) { g = 255; } else { g = Math.Max(g + g0, 0); }
if (b + b0 > 255) { b = 255; } else { b = Math.Max(b + b0, 0); }
return Color.FromArgb(a, r, g, b);
}
public static void DrawButtonX(string Text, Graphics g,
Rectangle rect,
Color ForeColor,
Color baseColor,
Color borderColor,
Color innerBorderColor,
RoundStyle style,
int roundWidth, bool drawBorder)
{
RenderBackgroundInternal(g, rect, baseColor, borderColor, innerBorderColor, style, roundWidth, 0.35f, drawBorder, false, LinearGradientMode.Vertical);
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Center;
sf.LineAlignment = StringAlignment.Center;
g.DrawString(Text, new Font("宋体", 10), new SolidBrush(ForeColor), rect, sf);
}
private static void RenderBackgroundInternal(
Graphics g,
Rectangle rect,
Color baseColor,
Color borderColor,
Color innerBorderColor,
RoundStyle style,
int roundWidth,//圆角半径
float basePosition,
bool drawBorder,
bool drawGlass,
LinearGradientMode mode)
{
if (drawBorder)//是否画边框
{
rect.Width--;
rect.Height--;
}
using (LinearGradientBrush brush = new LinearGradientBrush(rect, Color.Transparent, Color.Transparent, mode))
{
Color[] colors = new Color[4];
colors[0] = GetColor(baseColor, 0, 35, 24, 9);
colors[1] = GetColor(baseColor, 0, 0, 0, 0);
colors[2] = baseColor;
colors[3] = GetColor(baseColor, 0, 0, 0, 0);
ColorBlend blend = new ColorBlend();
blend.Positions = new float[] { 0.0f, basePosition, basePosition, 1.0f };
blend.Colors = colors;
brush.InterpolationColors = blend;
if (style != RoundStyle.None)
{
using (GraphicsPath path =
ryControls.Drawing.CreatePath(rect, roundWidth, style, false))
{
g.FillPath(brush, path);
}
if (baseColor.A > 80)
{
Rectangle rectTop = rect;
if (mode == LinearGradientMode.Vertical)
{
// rectTop.Height = (int)(rectTop.Height * basePosition);
}
else
{
// rectTop.Width = (int)(rect.Width * basePosition);
}
using (GraphicsPath pathTop = ryControls.Drawing.CreatePath(
rectTop, roundWidth, RoundStyle.Top, false))
{
using (SolidBrush brushAlpha =
new SolidBrush(Color.FromArgb(80, 255, 255, 255)))
{
g.FillPath(brushAlpha, pathTop);
}
}
}
}
}
}
/// <summary>
/// 绘制圆角按钮
/// </summary>
/// <param name="Text">要绘制的文字</param>
/// <param name="g">Graphics 对象</param>
/// <param name="rect">要填充的矩形</param>
/// <param name="btnStyle"></param>
public static void DrawRoundButton(string Text, Graphics g, Rectangle rect, buttonStyle btnStyle)
{
//g.Clear(Color.White);
g.SmoothingMode = SmoothingMode.AntiAlias;//消除锯齿
Rectangle rectangle = rect;
Brush b = b = new SolidBrush(Color.Gray);
if (btnStyle == buttonStyle.ButtonFocuse)
{
b = new SolidBrush(ColorTranslator.FromHtml("#338FCC"));
}
else if (btnStyle == buttonStyle.ButtonMouseOver)
{
b = new SolidBrush(ColorTranslator.FromHtml("#C6A300"));
}
else if (btnStyle == buttonStyle.ButtonFocuseAndMouseOver)
{
b = new SolidBrush(ColorTranslator.FromHtml("#C6A300"));
}
g.DrawPath(new Pen(b), GetRoundRectangle(rectangle, 2));
rectangle = new Rectangle(rect.X + 2, rect.Y + 2, rect.Width - 4, rect.Height - 4);
Pen p = new Pen(Color.Gray, 0.5f);
p.DashStyle = DashStyle.Dash;
if (btnStyle == buttonStyle.ButtonFocuse || btnStyle == buttonStyle.ButtonFocuseAndMouseOver)
{
g.DrawRectangle(p, rectangle);//虚线框
}
g.FillRectangle(new SolidBrush(Color.Green), rectangle);//白色背景
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Center;
sf.LineAlignment = StringAlignment.Center;
g.DrawString(Text, new Font("宋体", 10), new SolidBrush(Color.White), rectangle, sf);
p.Dispose();
b.Dispose();
g.SmoothingMode = SmoothingMode.Default;
}
/// <summary>
/// 根据普通矩形得到圆角矩形的路径
/// </summary>
/// <param name="rectangle">原始矩形</param>
/// <param name="r">半径</param>
/// <returns>图形路径</returns>
private static GraphicsPath GetRoundRectangle(Rectangle rectangle, int r)
{
int l = 2 * r;
// 把圆角矩形分成八段直线、弧的组合,依次加到路径中
GraphicsPath gp = new GraphicsPath();
gp.AddLine(new Point(rectangle.X + r, rectangle.Y), new Point(rectangle.Right - r, rectangle.Y));
gp.AddArc(new Rectangle(rectangle.Right - l, rectangle.Y, l, l), 270F, 90F);
gp.AddLine(new Point(rectangle.Right, rectangle.Y + r), new Point(rectangle.Right, rectangle.Bottom - r));
gp.AddArc(new Rectangle(rectangle.Right - l, rectangle.Bottom - l, l, l), 0F, 90F);
gp.AddLine(new Point(rectangle.Right - r, rectangle.Bottom), new Point(rectangle.X + r, rectangle.Bottom));
gp.AddArc(new Rectangle(rectangle.X, rectangle.Bottom - l, l, l), 90F, 90F);
gp.AddLine(new Point(rectangle.X, rectangle.Bottom - r), new Point(rectangle.X, rectangle.Y + r));
gp.AddArc(new Rectangle(rectangle.X, rectangle.Y, l, l), 180F, 90F);
return gp;
}
}
}

View File

@ -321,6 +321,7 @@
<Compile Include="ObjectListView\Rendering\TreeRenderer.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="ObjectListView\Rendering\Util_GDI.cs" />
<Compile Include="ObjectListView\SubControls\GlassPanelForm.cs">
<SubType>Form</SubType>
</Compile>

View File

@ -0,0 +1,63 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
namespace ryUpdate.Properties {
using System;
/// <summary>
/// 一个强类型的资源类,用于查找本地化的字符串等。
/// </summary>
// 此类是由 StronglyTypedResourceBuilder
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// 返回此类使用的缓存的 ResourceManager 实例。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ryUpdate.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// 重写当前线程的 CurrentUICulture 属性,对
/// 使用此强类型资源类的所有资源查找执行重写。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -66,6 +66,7 @@
//
// BtnOK
//
this.BtnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.BtnOK.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
this.BtnOK.Enabled = false;
this.BtnOK.Location = new System.Drawing.Point(397, 249);
@ -78,11 +79,11 @@
//
// pictureBox1
//
this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
this.pictureBox1.Location = new System.Drawing.Point(-1, -1);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(144, 287);
this.pictureBox1.Size = new System.Drawing.Size(144, 164);
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pictureBox1.TabIndex = 0;
this.pictureBox1.TabStop = false;
//
@ -95,7 +96,7 @@
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(484, 285);
this.ClientSize = new System.Drawing.Size(483, 282);
this.Controls.Add(this.BtnOK);
this.Controls.Add(this.label2);
this.Controls.Add(this.progressBar1);

View File

@ -120,351 +120,527 @@
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
/P8+OmXzcxjRswAAAABJRU5ErkJggg==
iVBORw0KGgoAAAANSUhEUgAAAUcAAAFICAYAAADDHzy+AAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH
DwAAjA8AAP1SAACBQAAAfXkAAOmLAAA85QAAGcxzPIV3AAAKOWlDQ1BQaG90b3Nob3AgSUNDIHByb2Zp
bGUAAEjHnZZ3VFTXFofPvXd6oc0w0hl6ky4wgPQuIB0EURhmBhjKAMMMTWyIqEBEEREBRZCggAGjoUis
iGIhKKhgD0gQUGIwiqioZEbWSnx5ee/l5ffHvd/aZ+9z99l7n7UuACRPHy4vBZYCIJkn4Ad6ONNXhUfQ
sf0ABniAAaYAMFnpqb5B7sFAJC83F3q6yAn8i94MAUj8vmXo6U+ng/9P0qxUvgAAyF/E5mxOOkvE+SJO
yhSkiu0zIqbGJIoZRomZL0pQxHJijlvkpZ99FtlRzOxkHlvE4pxT2clsMfeIeHuGkCNixEfEBRlcTqaI
b4tYM0mYzBXxW3FsMoeZDgCKJLYLOKx4EZuImMQPDnQR8XIAcKS4LzjmCxZwsgTiQ7mkpGbzuXHxArou
S49uam3NoHtyMpM4AoGhP5OVyOSz6S4pyalMXjYAi2f+LBlxbemiIluaWltaGpoZmX5RqP+6+Dcl7u0i
vQr43DOI1veH7a/8UuoAYMyKarPrD1vMfgA6tgIgd/8Pm+YhACRFfWu/8cV5aOJ5iRcIUm2MjTMzM424
HJaRuKC/6386/A198T0j8Xa/l4fuyollCpMEdHHdWClJKUI+PT2VyeLQDf88xP848K/zWBrIieXwOTxR
RKhoyri8OFG7eWyugJvCo3N5/6mJ/zDsT1qca5Eo9Z8ANcoISN2gAuTnPoCiEAESeVDc9d/75oMPBeKb
F6Y6sTj3nwX9+65wifiRzo37HOcSGExnCfkZi2viawnQgAAkARXIAxWgAXSBITADVsAWOAI3sAL4gWAQ
DtYCFogHyYAPMkEu2AwKQBHYBfaCSlAD6kEjaAEnQAc4DS6Ay+A6uAnugAdgBIyD52AGvAHzEARhITJE
geQhVUgLMoDMIAZkD7lBPlAgFA5FQ3EQDxJCudAWqAgqhSqhWqgR+hY6BV2ArkID0D1oFJqCfoXewwhM
gqmwMqwNG8MM2An2hoPhNXAcnAbnwPnwTrgCroOPwe3wBfg6fAcegZ/DswhAiAgNUUMMEQbigvghEUgs
wkc2IIVIOVKHtCBdSC9yCxlBppF3KAyKgqKjDFG2KE9UCIqFSkNtQBWjKlFHUe2oHtQt1ChqBvUJTUYr
oQ3QNmgv9Cp0HDoTXYAuRzeg29CX0HfQ4+g3GAyGhtHBWGE8MeGYBMw6TDHmAKYVcx4zgBnDzGKxWHms
AdYO64dlYgXYAux+7DHsOewgdhz7FkfEqeLMcO64CBwPl4crxzXhzuIGcRO4ebwUXgtvg/fDs/HZ+BJ8
Pb4LfwM/jp8nSBN0CHaEYEICYTOhgtBCuER4SHhFJBLVidbEACKXuIlYQTxOvEIcJb4jyZD0SS6kSJKQ
tJN0hHSedI/0ikwma5MdyRFkAXknuZF8kfyY/FaCImEk4SXBltgoUSXRLjEo8UISL6kl6SS5VjJHslzy
pOQNyWkpvJS2lIsUU2qDVJXUKalhqVlpirSptJ90snSxdJP0VelJGayMtoybDFsmX+awzEWZMQpC0aC4
UFiULZR6yiXKOBVD1aF6UROoRdRvqP3UGVkZ2WWyobJZslWyZ2RHaAhNm+ZFS6KV0E7QhmjvlygvcVrC
WbJjScuSwSVzcopyjnIcuUK5Vrk7cu/l6fJu8onyu+U75B8poBT0FQIUMhUOKlxSmFakKtoqshQLFU8o
3leClfSVApXWKR1W6lOaVVZR9lBOVd6vfFF5WoWm4qiSoFKmclZlSpWiaq/KVS1TPaf6jC5Ld6In0Svo
PfQZNSU1TzWhWq1av9q8uo56iHqeeqv6Iw2CBkMjVqNMo1tjRlNV01czV7NZ874WXouhFa+1T6tXa05b
RztMe5t2h/akjpyOl06OTrPOQ12yroNumm6d7m09jB5DL1HvgN5NfVjfQj9ev0r/hgFsYGnANThgMLAU
vdR6KW9p3dJhQ5Khk2GGYbPhqBHNyMcoz6jD6IWxpnGE8W7jXuNPJhYmSSb1Jg9MZUxXmOaZdpn+aqZv
xjKrMrttTjZ3N99o3mn+cpnBMs6yg8vuWlAsfC22WXRbfLS0suRbtlhOWWlaRVtVWw0zqAx/RjHjijXa
2tl6o/Vp63c2ljYCmxM2v9ga2ibaNtlOLtdZzllev3zMTt2OaVdrN2JPt4+2P2Q/4qDmwHSoc3jiqOHI
dmxwnHDSc0pwOub0wtnEme/c5jznYuOy3uW8K+Lq4Vro2u8m4xbiVun22F3dPc692X3Gw8Jjncd5T7Sn
t+duz2EvZS+WV6PXzAqrFetX9HiTvIO8K72f+Oj78H26fGHfFb57fB+u1FrJW9nhB/y8/Pb4PfLX8U/z
/z4AE+AfUBXwNNA0MDewN4gSFBXUFPQm2Dm4JPhBiG6IMKQ7VDI0MrQxdC7MNaw0bGSV8ar1q66HK4Rz
wzsjsBGhEQ0Rs6vdVu9dPR5pEVkQObRGZ03WmqtrFdYmrT0TJRnFjDoZjY4Oi26K/sD0Y9YxZ2O8Yqpj
ZlgurH2s52xHdhl7imPHKeVMxNrFlsZOxtnF7YmbineIL4+f5rpwK7kvEzwTahLmEv0SjyQuJIUltSbj
kqOTT/FkeIm8nhSVlKyUgVSD1ILUkTSbtL1pM3xvfkM6lL4mvVNAFf1M9Ql1hVuFoxn2GVUZbzNDM09m
SWfxsvqy9bN3ZE/kuOd8vQ61jrWuO1ctd3Pu6Hqn9bUboA0xG7o3amzM3zi+yWPT0c2EzYmbf8gzySvN
e70lbEtXvnL+pvyxrR5bmwskCvgFw9tst9VsR23nbu/fYb5j/45PhezCa0UmReVFH4pZxde+Mv2q4quF
nbE7+0ssSw7uwuzi7Rra7bD7aKl0aU7p2B7fPe1l9LLCstd7o/ZeLV9WXrOPsE+4b6TCp6Jzv+b+Xfs/
VMZX3qlyrmqtVqreUT13gH1g8KDjwZYa5ZqimveHuIfu1nrUttdp15UfxhzOOPy0PrS+92vG140NCg1F
DR+P8I6MHA082tNo1djYpNRU0gw3C5unjkUeu/mN6zedLYYtta201qLj4Ljw+LNvo78dOuF9ovsk42TL
d1rfVbdR2grbofbs9pmO+I6RzvDOgVMrTnV32Xa1fW/0/ZHTaqerzsieKTlLOJt/duFczrnZ86nnpy/E
XRjrjup+cHHVxds9AT39l7wvXbnsfvlir1PvuSt2V05ftbl66hrjWsd1y+vtfRZ9bT9Y/NDWb9nffsPq
RudN65tdA8sHzg46DF645Xrr8m2v29fvrLwzMBQydHc4cnjkLvvu5L2key/vZ9yff7DpIfph4SOpR+WP
lR7X/aj3Y+uI5ciZUdfRvidBTx6Mscae/5T+04fx/Kfkp+UTqhONk2aTp6fcp24+W/1s/Hnq8/npgp+l
f65+ofviu18cf+mbWTUz/pL/cuHX4lfyr468Xva6e9Z/9vGb5Dfzc4Vv5d8efcd41/s+7P3EfOYH7IeK
j3ofuz55f3q4kLyw8Bv3hPP74uYdwgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAb0pJREFUeF7tnXecVNXd
8El5nyd5Sp7EEJOoSd5Eo4kp5jFRFCtqBMWCYgcVsCIWLCgRI6CoKAgqCEoTkSZFiii9SO8sbWGXJkvf
ZWGXpSxg3vOe77l7du/O/KZsmZ07s+eP70fZnZ2595zf7zun3zp16tStEJmZeXW2bDlUJzv7YJ1t24rq
ZGTsqLNr18k6u3efqLNjx9E6e/Z8o///ZJ3c3P9n/p//7t3r/Vdi3z7z37qav2se1/TWTNdkavZpijTK
4XCkDcc1+ZotmtUa8p28J//xQN0SL4hYn1i/4Bv+H//gIXyEl/ATnsJXeEvyWXTEH0ammuT4H5obNT11
IWTs3fuv/7dnz7/Url3/Ujt2/Evl5PxLff21x7ZtHlu3OhyOVMfmM5Df27d7+U7ek/94AB/gBfxQ4gl8
UeqPdJTjtzUNNSP0zR/evdsrEApo8+Z/qaysb9T69d+oNWu+UatWfaNWrPhGLV/+jVq27KRh6VKHw5EO
2Jwmx1eu9PKdvCf/8QA+wAv4AU/gC7xR4o9vp5Mc/0vfzNP6Brdxo3xLbNnyL7Vxo1cgFNDixSfV/Pkn
1VdfnVSzZp1UM2eeUNOne0yb5nA40hGb4+Q7eU/+4wF8gBfwA57AF3ijRJTb8AleSWU5fl////O6mZy3
c6fXpOZGMzK+UUuWnFTz5p1Us2efLBXg1Kkn1JQpJ9TkyQ6HozZC/uMBK078gCfwBd7AH3gEn+AV7ZcX
8EyqyfFuffHbaRZj/XXrvO4xN8o3hJWhv2C+/NLhcDjKe8HKEm/gDzyCT/AKfsEznm+CL8f/qy9yCmbf
suUbtXatZ/2vvuKb4Li+0eP6hj2+/NLhcDhiY52BP/AIPsEr+AXPeC3Jb6bin6DK8d5du/5VuG2bN7DK
wOucOZ4Up0xxQnQ4HFUHj+ATvIJf8Ay+wTv4x/NQcOT4fX0xgxgwZaZpxYqTau5cJ0WHw5E4/JLEN3gH
/+Ah7aOP8FKy5fjTXbu+WYS1aeIuWuTNPNnus3RTDofDUV3gGXyDd/APHvJakXip6KfJkuOZO3Z8s2XT
JtYqeeOKXCQX/MUXDofDUXPgHfyDh/ARXsJPeKqm5fiHnJxvdjO1Tp9/1iym4Z0YHQ5H8sA/eAgf4SX8
hKfwVU3I8Vv6Q87Zvv2bnZmZ35hm7IwZTLk7MTocjuSDh/ARXsJPeMrzVd45+CvEZzEQfxjO2LHz6ixd
+vXP9AdtZnZo4UJv0sVJ0eFwBA28hJ/wFL7CW/jr88+XiH6TEX8Yjpbj97ZtO7GUD1qwgIWZTowOhyO4
4Cc8ha+85T4nlmo5fl/ym4z4wzC+vW1b8Uc0UTGxE6PD4UgFrCDxFv7CY/gsxG8REH9Yjm9lZxe1YHCT
PrzrSjscjlQCX+Et/IXH8BleC/GcgPjDUr61bNmOM7OzTx5aupTJFz6oWH+gw+FwpA54C3/hMXyG1/Bb
iO9CEH9Yyneys4/NWLmSjd/MAskf7HA4HEEHf+ExfIbX8FuI70IQf2j4dkZG3v1r1rBHukyMkyY5HA5H
6mEFic/wmvYb3eso44/iD+t+q0ePYT/MzDy+g5meKVOcGB0OR+qDx/AZXsNveA7fhfivBPGHdb+TkZH/
8vLl3gSME6PD4UgX8Blew294Dt+F+K+E8B9+q2vXj+quWXM833anpQ9wOByOVKWse338AL7DeyEe1IT9
oO53lizZ+8LixRwk4brTDocj/cBr+A3P4Tu8F+JBTfkffOt3v7v8P1esOJoze7a3bEd6Y4fD4Uh18Bue
W7ny2A68h//K+7DcP+p+Z/r0rKau1ehwONIdf+txxozs2/BfeR+W/QNrfm/hwvwJrtXocDhqA7b1qL03
Ef+VeDBMjt++//72P120qPgoexFdq9HhcKQ7tvWI9x588OWf4cEyJ5bJ8f9MmLC2xVdfYdNj6vPPHY7E
MnHiUTVu3OGI8Hvp7xyO6gTf4T38hwfLnOj9D03J/5g+fdfw6dMxqvwmDkc0PvusSI0Yka8+/nivGjBg
p+rTZ5t6773NqkePjeqtt9arN95Yq7p0yVCvvLJKdey4PG54PX/H3/M+vB/vy/vzOXwen8vnS9flcEQD
3+E9/IcHS3xYKkeakj+cPbtw++TJ3oulN3E4ENCwYfvVwIG7VO/eW42okFbnzitEsdU0XAfXw3VxfVwn
1+vE6YgEvsN7+A8PlviwVI7/p3XrN/4wZ47rUjvKGDv2kGmV9e37tXr77Y3q1VczRCGlClw/98H9cF/c
n3TfjtoH3sN/eBAf+uX4/Q8/nH3/9Omu1VhbYXzv008Pmm7qO+9km26sJJh0g/vkfrlv7t+Nc9ZObNe6
X785jDuWnBbu9a//e+TIdW97WwXlP3akH2PGFKpBg3YZOVR0HDBdoRx69swy5UL5SOXmSD+8rnWxwoP4
0POi17/+0dix2z6jaenkmL7QKho+fL/q0+drMy7XsSPjhI5oUE6UF+XmWpXpC97Df3gQH3perFP3u5pT
x43bveyLL0ggRzoxYcJR9ckneeq997aUjBnKEnDE5pVXMkw5fvJJrilXqbwdqQv+Gzduz3J86HmxTt1/
15wxYcL+7dhT+iNH6sEMba9eW50QEwTl2qvXFlPOUvk7Ug/8hwfxoedFb/Dx/06cePDgpEl8GzpSFWZf
P/wwR73++hrVqdMKRw1BeVPulL9UL47UwPPfwYP40PNinbqcRnHmhAkFRz//PPwPHMHG6zbvM5MIrPGT
ktdRM1D+1AP14XW7HakE/tMePIYPPS/WqftfmrM///yw+aX0R47gwaJmWiuvvbZaTFRHcqFeqB/qSao/
R/DAf3gQH3pe9KatfzdxopNjKjBqVIHZ+cGSEykpHcGCeqK+qDepPh3BwfOfkePvPC/WqfsDzblOjsGG
pSQ9e2aLCehIDag/uyTIETx8cjzX86Inxz+MH++dgsJYiSM4MBvavfsGMdlShQ4dlqtnnlmuHntsmWrZ
cqlq1myJuv32JappU48bblgchv0dr+P1/B1/z/vwftLnpArUJ/Uq1bcjeeA/PIgPnRwDzPDh+ertt7N0
Mq0MNB07rlRt2y5XLVosU02aLFENGixSf/vbQvW73y1Qp58+T/34x3PVD39Y/fC+vD+fw+fxuXw+18H1
cF3S9QYJ6pd6lurfUfM4OQacESMOlHSf5YRKJi+8sEK1arXMtOwuumih+u1v5ydMflWF6+L6uE6ul+vm
+qX7SjbUN/UuxYOj5ogiR2bVjugXOZLB6NEF5ozCzp1XBoannlqu7rhjibrkkkXqN7+ZL0oo1eA+uB/u
i/uT7jtZUP/EgRQfjsSD//Cgk2NAGDeuSH3wwXb16qurxISpSdq1W2HG+C64YKH6+c/niXJJN7hP7pf7
5v6lcqlJiAPigbiQ4sWROJwcAwRnCnoHxcqJkmgYl3vwwWXqmmsWq7POSmzL8Cc/mafOPpvu+HJ1/fWr
VZMma9Q996xXLVpkqpYtN6i2bbNL4d/8nN/zOl7P3/H3vI/0/tUF5UB5UC6Uj1RuNQFxQXxIceNIDE6O
AYCuEydVS0mRaBjjeuCBZeqyyxZVW+uwbt156vzzmZBZo558Mlt1756jRo7cpxYsKFBZWUfV/v0nVXHx
vwzHjpVx9Ghs/K+378H78b68P5/D5/G5fD7XwfVI11lRfvazeaacKC/KTSrPREOcuK52zRBRjrYZP368
I1Hw0Kj+/XeYQwukREgkDz+8TF1xxSJ12mlVE8eZZy5St9zCcWdb1ZgxuSojo0gVFX1TKj6EduTIv9Th
w/CN+d2hQ9UP78v78zl8nhUp18HvuC6uj+vkerlu6X7ihXKj/ChHqXwTCfFC3BA/Ulw5qgf8hwedHGsY
ZiPfeitTDP5EwezsTTctqfRkyo9+NFddeOFy9fjjWWrIkL1q48YjpRK0AkyU/KqKJ0/vOq00uX7ug/vh
vrg/6b5j8etfz1c33rjYlK9U7omC+CGOpPhyVB0nxxqGb3ueWcI2MingEwHLVi68cGGlltkwrvfEE9n6
2nPV3r3HjVRolQVZhPFihcn9cF/cH/dJl/zcc5eI5RGNU07hy2OhKW+pHhIBcUQ8uVZk9ePkWIPwTJJu
3TJNQCeajh1XqTvuWKq7jxVrJZLgjRplqB49ctTKlYdKu8bpIMNYeLL8plSWdMUpB8qDcpHKKxKUO+VP
PUj1U90QV8SXFHeOyhFFjof0L/k2clQHPBLUPqM5kbz44krVuPESs1tESloJupN//3uG6tNnp9q+vbi0
m5zuMowF92+74ZQL5XPttRkV6n5TD9QH9SLVV3VCfBFnUvw5Kg7+w4NOjgmChzLZB1Ylkn/8Y6W6+uqK
LW2pV2+56tVrh9q27ZgTYgz8oqS8KDfKTypXCeqF+mnfPvGSJN6IOykeHfETVY68gLEMR+UYOjRPvf76
WjGAqwtaJNdeG78Uf/az+eqxx7LMshe6jk6IFceKkvKjHClPylUq71CoJ+or0S1JTiMn/qS4dMSH5z8n
x2qnf/+dZsmFFLjVQYcOK9V11y1Wp54anxQvuGCZvqbdKi/vRMkYopz4jophxygpV8qXcpbKPxTqrVGj
xaYepfqtDrwlPzvF+HTExsmxmuG5IeyJlYK1OujceZW6/falcS/YvvHGNWry5P0mgV0rMXHY1iTl/OWX
+025S/URCvV4221LTb1K9V0dEI/EpRSvjsg4OVYjdjaa/bCJ4OGH2TIXu/v24x/PU61abVDLl3uzzbVh
pjkoUM6UN+VO+VMP1IdUT36oV+pXqvfqwM5mS3HrkHFyrCZ4FjTjPHRlqpt27VaawxCkpPLDchOSMTPz
SIkU5QR21AyUP/VAfVAv8SwHop6pbykOqgrxSZxK8esIx8mxGhg0aLfq0mW1GJBVgYfGN2myNOZkC0tL
mjdfr9asKXJSDCBWktTPvfdmxlwKRH1T79S/FBdVgTglXqU4dpQnohw/+6xQ/6LIPC3NERnveDE5EKvC
U0+tNKdaS8nj54YbVqsVK2z3WU5ORzCwkqS+qDepPv1Q/8SBFB9VhbiV4tlRhue/QifHisIAd69eW8TA
qwqdOmWoRo2WxOyCcdrMxIn7nRRTECtJ6o96lOrX4u1YWmLiQoqXqmAnaqT4djg5VgoW2PbokSUGXFVo
23alOvvs6K3F009fYI7kKiz0ZkfdREtqYme3qUfqk3qV6ttCXBAfUtxUBeKYeJbivLbj5FhBRo8uVG+/
vcFs1apOmjZdqurWlRPD0qzZepWTU+ykmEZQjyz/YXsi9SvVu4X4IE6k+KkKxDNxLcV7bcbJsQLwIPbu
3TPFAKssL764Snetos9En3POYjVhQp7pijkppifUK/U7fnyeOQlJigML8ULcSPFUWYhr4luK+9qKk2Oc
2DWMzPZVFw8/vCLqARHManJcWG7uCddarAVQv9Qz9U29R5vVJm6IHymuKotdCynFf20kohzHjvWa2WPH
OkaOPKjefHO9GFCV5cYbl0YNflqLM2YccK3FWohtRVL/0VqRxA9xJMVXZSHOiXcpD2obnv9EOdLEPqR/
WbsZOfJAtYqxY8cMdcEF0Y/ov/vu9WrPnuOmFSElj6N2QP0TB8SDFCcW4unll+keyzFXUTxBHhDzoTbh
+a/AyVHi00+9Rxm89trqaqFdu1VRD5/9+c/nq4EDd7vWoqMU24okLogPKW6AuCK+pLirDHSxR42iBSnn
Rm3AyTECBAYBIgVOZWjTZmXUwyIuuGC5Wr/+sBtbdIRBPBAXxAdxIsUPEF/EmRR/laF79w1mkkbKj9qA
k6MAj758++2NYsBUhvvuWx51mc5992Wq/PyTbjG3IyrEB3FCvEhxBMQZ8SbFYWWwj4KV8iTdcXIMgQWx
PXtmi4FSGW6+eakYxMBpLe++u8Osc3OtRUc8ECfEC3ET7bQf4k6Kx8pAPpAXUr6kMxHlOGaM920xZkzt
gi2Br722psp06bJGNWgQ+Ql2v/71QjVnzgEnRkeFsYIkfogjKb6A+CMOpfisKOSFlC/pjOc/J0cDm/E5
1qmqvPrqGnXxxZGXYPzv/y41z0x2s9GOqkD8EEfEkxRnQBwSj1KcVhTyQ8qbdCWKHJmpKtS/rB0MGLBT
DIiK8sorq9Vf/xp5qQ5P+WN5hhtfdFQHxBHP2yaupHiD889fZOJSiteKQp5I+ZOOeP47WLvlOGTIPjEQ
KkrnzqvVX/4SuZtz//2Z5qABJ0ZHdWLjifiS4g6IS+JTituKQr5IeZRu1Ho5Dh+er7p2XScGQUUg8P78
58hifO65zW79oiNhEFfEF3EmxR8Qn9UhSPJl+PD9Yj6lExHlOHr0QfMCTutIV9hHylouKQAqAl2WaC3G
Tp22OjE6Eo4VZKdO28Q4BOK0OrrY5A35I+VVuuD5r5bKkcM+33hjbZXo0mVt1DFGzupzYnTUFFaQxJ0U
j0C8ErdSPFcE8kfKq3Sh1sqxX78dYoVXBB7YX7++PCvNoQDvv7/TidFR41hB9umzM+LhJsQt8SvFdUUg
j6T8SgeiyPGA/mWB/mX6wYCyVNEVJdo6RsTo1jA6kgVxR/z17bsroiCJXymuKwr5JOVZquP570DtkSOn
jXCYhFTJFeHmmyM/++Ott7a7FqMj6VhB9u69U4xTII6l+K4I5BN5JeVbKlPr5Fgd44z33bdCDDRwky+O
IEEcEo9vvPG1GK9APEtxXhG88Uc551KVqHLkBZzKkS6wgLVr17VV4sknV0V8jnS7dm65jiN4WEG+8IK8
zId4Jq6leK8I5JeUd6mKJ8laIMdhw/abQzxZo1VZXnhhtTrtNFmMPKzdidERVKwgH3pooxi/xDXxLcV9
vJBf5JmUf6lIrZAj67F69swSKzReXnllrTrrLPnxmddcs0oVFHgBKAWmwxEEiE+46aY1YhwT35070wqU
cyAeeNQr+SblYapRK+TIhnmpIivChRfKS3Z4KLvbK+1IFZBjXt4J9be/yROKxLkU/xWBfJPyMNWIIsd8
/Qu+AVKbTz7ZJ1ZgRYg0M33WWYtUdvZRJ0ZHSkG8ErfErxTXxLuUBxWBvJPyMZXAf3gwTI6jRuWbF9BE
TlVYXkB3+s03GQ+pHI89tkpcJ8ZBo7NmHXDHjjlSEuKW+JUOzCXeiXspH+KF7jX5J+VlquBJMk3l+OGH
Obqi1leal19eq04/XX6o0TvveCd4S4Hn8Ni377hateqgmjJlj/roo626TDNVhw4Z6oknlqn771+o7rln
vm6lzAmjWbMFqmXLReqpp5brOuCo/g1q6NBtavr0vWrdukJ14MAJ8fMcFYP45URxKb6Je+Jfyot4If+k
vEwV0laOQ4fmmcWpUqXFy9/+Jo8z8gwPt/ulPHv2FKuZM/epXr2y1NNPr1BNmsxR9epN1kwxXHQRTFUX
X2yZVkr9+mX4f25fy9/Z94H69aeoO+5gdnWV6t9/s1qwIM+Mo0nX5YgM8UscRzrqjPiX8iJeyD/yUMrP
VCBt5fjuu5vFCouXO+6QF3rz9Lf9+0/WejEiI1pyr7++zojKCswKENFdcsl0demlM9Rll81Ul18+U11x
xSx15ZWzDQ0azDFcddVXIXg/B/ta/o6/530uvXS6eV9PpIjTE+Yll0w1rc333stSixfnq4KCk+J1O8pD
HPPQrgsvlJ9qSB5I+REv5KGUn6lAWsrxo492628tvrkqx/PPr1F164aPxfDcYB6PWVsnYGgdjh27Qz35
5HItq+mlMrQi9CToCRDRXXMNJ5/PUw0bLlDXXbdQXX/9ItW48WJ1ww1L1I03LlU33QTLdFe6DP7Nz/k9
r+P1/B1/z/vwfrwv78/n8HmXXTbDfD6tTSvpq6+eYbrw06btcd3wGBDPmZlHxOdikwft2q0R8yReBg3a
LeZp0Ikox08/3a9fcMAMqqYSI0bkm8eqSpUUD2+8sU6dfbZ8NuOAAbtr3QQMLbCpU/eYrvKllyKfKUZC
VoZXXGFF6EkQkSE1RHfLLSvUbbet0q2P1equu9aoe+5Zp5o3X28WzN933wbdndtoaNEiqxT7M37P65o1
W6/uvnut+fvbb89QTZuu1O+73Ej0hhsWG2lee+18I0xam7Qyy2RZJkrW7y1Zki/eo8OboEFiUtyfffYC
kxdSvsQD+UheSvkaZPAfHkwbObLGSqqgeGncWF62c/fd62vVDpht246YLur1188uFSJdWrq3SAgZIUNa
drT0br11hZEXImvePNMIrlWrTeqhhzarhx/eqh59dJt67LGvVZs229Xjj+cYnnhih2anbomWwb/5uX3N
Y49tV61bf60eeWSbfp8t6sEHN+v3zTbvj2jvumut+VxEzHUg54YN52shzjUtSwTuF+Vdd81XQ4ZsU3v3
Fov3XVshrolv4lyKf/JCypd4IS+lfA0yaSVHBn+7ddugKyOzUjz33Bp1yinhgXH22YvNQu/aIMbVqwvU
Sy+t1kLxxvQQS5kQ56lGjRbqLu8SI6M77sgwrcEyEW4xImvTBvHtVE89tUu3OHerZ5/da3juuX26i5ar
nn8e8tQLL0SG3/M6Xs/f8ffPPEMLdrd5XwSKaJEun4swaW0iZ2TZpMly07JE4IjcipIhALreV101w5xm
zZeAVA61EeKbh3Wdc074RCR5QX5IeRMP5CX5KeVtUEkrOb7//jaxYuKBZSbnnhvenWbN14wZ6b+ecc2a
Ah38K7UQbStxhuky0wJr1GiBESKtwzvvXGNahi1bZhsp0Rp8/PEdRljIywoQwbVvv1/94x/56sUX4YDq
0AEOavnGD6/n7/h73of34315fz4HaT799B7z+bQ0kTPXRRedLjlderrhnihpUX5lut60grnPyy6bpruM
69XXXx8NK5PaCHFOvEtre3//+4UmT6T8iQfyU8rboJI2cuTAzW7d+IaqHLffLs9OP/lktuluSIGUDmze
fFjLJsOIglYVrStaiUx80EWlBYZg6MLSOqOLTIuNLrCVIa08hFUmwTK5/fOfBdWOX5xWmnw+LU2uh9Yl
10eXvEyU60yLkrFQxilpBdOa5EuAe7/88mmmJbl7t+tuE+/EvZQPt922QsyfeCFPpfwNIhHlOHLkfvOC
ESNSg169toiVEQ8vvbRWnXpq+Ow03Yt9+06kZXeaBdrvvpulW1HlpUjrigmVW29dabqodJm9FuJ20zqj
pWZbhkiJVl0iRRgv9hqQJa1Lr2W5zwjcE+XXZrySrjeTOwwLMF7Kl4DX5fYkee21M82C84MHa+9SIOKd
uJe61xxvRr5IeRQP5KmUv0HEk6QoR8YH8vWLgs/HH+8VKyJeLrpIftzB+PF5admd/vLL3WaipbwU6Tov
NbPLdEdpJTKex9ge3VaEaFuHVoiSpIKAFaXXHfdESYuybdvdpuv9yCNbTWsS+fMlQJfbStK2JNmls3z5
AbH8agPEPfEv5QX5IuVRvJCvUh4HDfyHB1Najl6rcUOlePxx+fgmBJFus9NMPjz7LOOK3pgiMmAZDOOJ
SJGu8wMPbDKtLNtKRCy0xIIuxEhYUXotSq/rzX3RmkT+fAkwqYQk/S1JxiRZukSM5OUdF8sznSHuiX/y
QMoP8iY0l+LFaz3KuRwkUl6OfAsxVlQZqKhzzgmfhDn99AVq+/bitBLjpEm7deLPMrPPTEggAWTAukES
wEqxbdtdppVlu81WLpJ4Ug3uwxun9FqTfkkyweS1JFeYsVZmuFlgTuv6ttvmqhUral8rkvjPySk2+RCa
I+QN+SPlVTwMHhz81mPKy7FXr81i4cfDPfesCqt06NEjJ22604wtvvzyGtNapAvNbC0TEoy5IQNaTszw
0lJEil7XORjjiInC3pskSbrbjEkyEcUsPUMO3hbIaeqDDzapwsLaNRZJHvTsKT8Dm/yR8ioeyFspn4NE
RDmOGJFnXjB8eHDh20cq+Hh47bVMddpp4dulzjtvqQmKdGg1rl9fqG6/fb5pLdouNAul77xztZloYewN
Kdjuc7pLMRRJkoyxsticiRtmt5mcopVtW5GcKLRz5zGxvNMRmwfkRWiukD/kkZRf8UD+SnkdFDxJpqgc
e/feIhZ6PNx4o7zRPl0mYehGX3WVd1gDrUW6ioyrMa7IrhUmJsqkmB7d544dC3RXr1B9+GGRGjr0sBo7
9oj68ssjatq0o2rGjKPqq6+OGaZPP2p+NmnSETV69GH18cdF6v33D+lEP2DGJJmAYrkSQw2MR7JO0t+K
vOUWutkHxXJPR8iHCRPkyRnySMqveGDsUcrroBBDjvv1i4JJVcYaX301U/30p+FLd268cU3KT8IUFn6j
gy7b7HChtUOrh1loWot0GelCM2vL7LM30ZKaUnzttUL10UdF6osvjqglS46prVuPm9NlWIITCvvDJaTX
5uWdVFlZxWru3MOKwwfefHOXluTGklbk4pKxSGb4Z5pZf6kO0g3ygbwgP0Jzhjwin6Q8iwfyWMrvIID/
UlKOffpsMxvaK0PjxuGtRnYErFx5KKVP3OH0mQ4d2PrndaNp7TC2yAJor7W4w7QW/eOKkniCSOfOBWrQ
oCI1e/ZRtWXL8VKZSdKrLuxn7N9/Qq1adViNHLlXtyw3mHJlUotyHjRoq1gX6QZ5sWrVIXHnzPXXLxfz
LB7IYym/g0BKynHo0FzVo4dc2LF45ZVM8bnTrVptMN+OUmCkAiw3efzx5abbxyk5dKNZnsPYGRMNzELT
WkylLvQrrxSY7vGyZcWmRRdNhkyU0GquOt57SZ9h2bWrWI0bt1t3vzPM4nFaQPytVC/pBPlBnoTmDvlE
Xkn5FgvymHyW8jzZRJTj8OF55gU8hzZocPy6VNDx0KhReKuRM+s2bjySsq1GTph58MGlZnyRbh+TCHSj
WZ7C2Bm7RPwTLpKIgkSfPofUvHnHVG7uCVGI8YpQKqtQpL+Tka9j+/ZjauDArWrAgC3mZ9JnpAvkR1bW
EfGsU/JKyrd4IJ+lPE82niRTTI49e2aLhRwLxkakVuMjj2xM2efBcADt/fcvMuNgjC9yziFLdNgqx8wr
y3NY/Bz0sUUmU4YPP6yTz+sySyKSpCWVSXUifabMSZWfn/6H6pInjz66MSyHyCvyS8q7WJDPUp4nm5ST
48CBu0xTvDLcdFP44RKp3GrMzT2uW4eLzcQLy3RYm8eCbvZCs27R342WhBQEOnUqUGPHHlY5OeGtREmI
UjnUJKHXY5Fem46QJ+SL1HpkfFvKu3ggr6V8TyZR5Mg4QJ5+UbDo3XurLsysCtO160bxGPgHHtiQkq1G
xhhbt15mJgY4LILlJizTYe0is9GclBPkbvTLLxeokSMP627piXJC9KRYO8WTKpAvDz4Y3no844z5qls3
ZCfnYDTIaynfk4nXQMxNDTly3JFUsPFw993hu2GYeVu1qijlWo0I47nnVpWI0ZuR5pECTLxwXFfQxxc/
/PBQWPc5tJUo3bcjGJAvGRlF4sx18+YZYv7FA/kt5X2yiCjHYcNyzQs4vTcoMHArFWo8/Pa34XuomzZd
m5Iz1O+8k2W60l6LETF6M9IsXkaMQT0kgrWJ8+cfc1JMA8gb8ic0p8gzKf/igfyW8j5ZeJJMETm+++4m
1bNnVoV54onwSoRp0/JTrtU4YkRO6RijFSMLu5mRZv1iUMX4ySdFateu8l1oJ8XUhbwhf6S8It+kPIwF
+S3lfbJIGTl+9NEesUDjoX798H2h9eotT7lWI89jbtDA2/XC5AuPK6DFGGQxslaR1qKTYvpB/pBHoblF
vkl5GA88VlnK/2SQMnLs23e7LrzsCtOly0b14x+Hz6yl2mNWt28/qluK3jObOeqfWWmeyMcYY1DF+N57
hWrbtuM+KZaJUbpHR2pB/vTvH/44V/KNvJPyMRbkuZT/ySCKHBkczdUvCgbvvEOXWi7QaNx+e/hEDLPW
eXmp8/gDpMLuFw6QYJ806xh5lguz0kEdYxw+vMgs4natxfSF/CGPpFUg5J2Uj7Egzz/5RHZATeM1EPeF
y3Ho0H3mBVxosmEN1DvvUHAVg8I+66zwiZjWrbNSavlO//5bzIkwHE7LWYPsk2YdYxDFyLVMmXLEtRZr
CeQR+RSaY+SdJ7uKQ75LHqhpPEkGXI59+34tFmIsnn56XVilwYIFBSkzEbNqVYFuMc4xB9RyMgzPh+YM
Ro7WCtpynY4dD6rFi8vGF11rMf0hj8gnKc/IPykvY0G+Sx6oaVJCjsxiSYUYi6uvDh8sZgC5uDg1Wo0H
DpxULVosMTPTnMXIAbWcw8iWwKDtfOHUnIyM4jAxSvflSC/IJ2lihvyT8jIW5LvkgZom8HIcNGi3LjDk
WDHefjtbHAvp1WtHykzEcKCBnYBhZpolOxw5xjmMQRLjq68WqHXrnBhrK+QTeRWaa+QfeSjlZyzIe8kH
NUng5cjCUL5JKkqbNuFd6lNOmWseGJQKEzEbNhSphg3nlowzMgGzxTczHaQW40EnxloO+URekV+hOUce
SvkZC/Je8kFNElGOn3yyV79gn9nSk0x4FIJUeLFo0GBZWEXddJN30rdUwUECuTz//GpzqCpnMpaNMwZr
AoYxxoyM8DFG6Z4cMosW7TfnQUq/SyXIK/IrNOfIQyk/Y8EjFCQf1CT4Dw8GUo6DB+8RCy4WPXpsErvU
NNVToUv91Vd5pjvNQm8Oq+VMxqCNM3IdCxYcdWKsAoixQYMZql69KapPn2zxNakCeUV+heYceUg+Snka
C/Jf8kJNEWg59u+/UxfS5grTtm34g8hp8u/adTzwXWpEc//9S0132q5nZAcMZzIGSYxTphx2YqwCCxfu
V1ddNcM8MpenGl588VQ1bNjX4mtTAfKK/JK61k8+uV7M01iQ/5IXaopAy5Ep/ffe21xhGjUKP7excePV
KdGlnjBht5mdbtp0lTnJm+60Xc8oiaqmQYxDhx5yYqwCCxbs1z2DWeaAYp71wxpW9stffvmMlH5oF/l1
/fWrw3KPfJTyNBbkv+SFmiLQcmTcQSq0WPzmN+ELv1NhlpqlO82aLTXPluZsxsce+zpQ3Wmu4Z13Csyu
CCfGymHFiBA5VYkeAk81ZHyZHVDsnWdYRfrboBNp1pp8lPI0Fsked4woxyFD9poXfPxxchg0aI9YYLHo
1Cn8EE7IzDwS+C712LE7dZIsVHfckWEec8D2QGangyLGTp0Olu6VdmKsOH4x2ueIM3QC3qNflxhBNmw4
R61cmXrPxSa/yDMp/8hLKV9jwTim5IeawJOkKEcGQ/fqFyWHfv12iIUVi+bNw5v15523NPALvwsKvlEt
Wiw3axqZhGGxt/eYg2DMTtOtnzfP2xboxFhxQsWIDHmOOGPKnN7eqlW22RpqBdm48Ry1YcMh8b2CDHn2
l7+En4JFXkr5Ggs8IPmhJvAaiHuCJ0fGG2hWV5T69cOX8Dz99KbA76WeOTPXbBG88072TrOmMTiTMFzD
xx8XlojRk6N0Dw6ZUDHSM2A8mS9A6pkJNx6G9sADm0z909W+6qo5WqDz1ddfHxXfM6iQZ+RbaA6Sl1K+
xgIPSH6oCQIrR54pIRVWNN57b4s67bTwJTzjx+cGei81smnbdrVZumO3CLJ3OgiTMIjx1VcPmJlI12qs
OIjx6qvLi5FWot0GyrAJX4L0Ep54YqcR5B13rDav5W+aNVtonjApvXcQIc/It9AcJC/JTylvo4EHJD/U
BBHl+PHHe8wLBg+ueRhvlAoqFi+9FD7eyNKCffuCfTxZZmaRTgav1chOGG/pTvInYfh8152uPPPn50UV
o61jYNKtXbt95ne0Kul205NgNpsHqe3fnxqPfSXPyDdpSQ/5KeVtLPCB5IlE40kyYHIcMGCnWEixuPfe
8BX69euvCPQSHmTTq9fmcmONQWo19u5d4LrTlSBeMfrLGkHyO17DeCS7o5igQ5DPPLPS1IP0WUGDfCPv
QnOxefM1YTkbD/hA8kSiCaQc+/XLMdsGK8qVV4afDPLss8Eeb8zPP6lbjEtNV8oba9wdoFZjvtq40dse
6FqN8YMYr7oqfjH6y5zfcbgIu6IYYmFGmydM8qTJLl3Wp0QdkG/t2m0Oy0XyU8rbWOADyROJJoocmUKn
OVvzMAjLWENFOfPM8PWNI0bsU4cPB1eO06fnmnWNPFqVhGDsKQitRq5h2DA7CePEGC+xxBhrzaonyP1G
kKxzpTdx660rzJpIForz5Enpc4ME+fbpp/vCcpH8lPI2Fvgg1BE1gddA3B0sOb7//jaxkKLx1lvh31SQ
lXU0sOONCOeVVzaa7hMD8W3b7grEukY+v0OH/Wr79rJJGOn6HeWZN88TIzPNlRGjhVOXiAPGnjmmji/O
W25ZbnZOsasm6NsMyTfyTspH8lTK32jgA8kTiSaiHAcP3m1ewFP/ahIWfUoFFItnntkQVhFnnrko0Osb
GWRv2nSZuueedaVnNbKuUUqYmoLk5RpGjnStxooQLsbVlRIjeF9OB4wgWerDEybZMcVqBp48iSDHjdsp
XkdQIO/OOmtRWE6Sp1L+xgIvSL5IJJ4kAyTHAQN26W8Kvi0qRrNm4ZMxQT6iDOHMnp1nAp7Bd5ZxsIc6
3gRKFJ4caTUW62t0rcZ4qE4xWqwgiQnGoVko3qzZOh3TyxQnNgV9myF5d+ut4c+LJ0+l/I0FXpB8kUgC
J8f+/XeIhROLa64Jnx1r335LYCdjkM4772wxicRETBCW73hizFdDhtgZatdqjMXcudUvRotfkGwlZZkX
Ww0Zo776ah5DMFstWXJAvK5kwz7rTp22huUkeSrlbyzwguSLRBJFjrvML3jIdk3CCcCMMVSUP/5xcVhF
sGk8qJMxSOfBBzNKDphgImafSQQpSWoKkpFE3LDhmL4+12qMxVdf5ZrlOokQo8X7wjpgDjrmiZN8kXIy
fPlthkXi9SUT8m706PDF4OSplL+xwAuSLxKJ10DcFRw5fvDBdrFwotGr1zb1k5+EP7h/+fJDgZ2M2bTp
iBlkb9kyq/RYsqomUlXwkjBf9eyZ71qNceAXI9v9EiFGS5kgc02scChJ2TbDr9TNN89VW7YcEa8zWZB3
a9YUheUkeUq+SnkcDbwg+SKRRJTjRx/Rx99tBkJrEqbt+/TZViG6dAnfy/njH88LbHJzXZMm7dUJlVHa
pa7OZKoMfDYTALNmFbkZ6hjMmVNzYrR4gmQXTepsM0SQdeuGN1rIVymPo4EXJF8kEk+SAZKjVDCxkGaq
ORkkqDPViKdHjy1mltqe2ZjsLjUtkxdfzFW5uSfM9Tk5yiRDjBa/IB9/fIf5XLYZIkh20bRqtVjl5R0X
rzsZRDqhh3yV8jgWki8SSaDkOHDgLl0ItBwrRsuW4U8aDPpMdZs2a80OCE5jCUKXmoXHAwaUdaml667t
RBbjjoSL0WIFyechZLvN0O7DDtI2Q/JPeuhWixbrxDyOBX6QvJEoAiVHputpPleUW27JCKuAJ5/MDuxM
Nesbb7/dLvxmu2ByF36z6JjxrIULi7QYnRwlgiBGi/dlVn6bYdOmK81p4mwzfOmlNYGoQ/KPPAzNzSZN
MsQ8jgV+kLyRKCLKcdCgnfoFu4ytawqm66VCicUVV4TvqX777ZxAPhaBoF21qlDdeedqs3bNW/idLyZB
TcHnv/DCPvP4A67PybE8s2cHR4wWvyBZ7eBtM/T2YQdlmyH5Rx6G5ib5KuVxLPCD5I1Egf/wYCDkyKm/
UqHE4s9/XhJWAeztDOIyHsTz+ed7zYLeICzhIcmYiHn//TzXpRaYNWtf4MRoCd9muEH3olaUbjMcMGCL
eE81RaQ91uSrlMexwA+SNxJFwOSYIxZKLH75ywVhFbBwYYGuHLnSkgny+fBDrysUhPFGxMwA/+TJBfra
nBz9zJoVvBZjKH5BBm2bIflHHobm5i9+sUDM41jgB8kbiSJwcmQ9U0Xo23e7eLDm5s3BPHAC+bzxxhaT
ZCzqJbCTmWAkOInFQQFcm5OjB2K86qqZgRYjcA12F03ZNsP15nzQa66ZZ7YZTpmyV7zHREP+kYehuUm+
krdSPkejVsuRVfBSoUTj7bfDtyhBUJOc62rXbqN66KHNpWc3SkFfE5BYyLl9+z3q4EHXarTMnLmvRIzs
QAmuGC1+QXrbDLeaZWJsM2QfdjK3GRJTUn6St1I+RwM/SN5IFBHlOHAg/fudilN4a4rKyPGVV8KPKjvt
tAWBXONIoMCDD673TcYkb7zRzlL36rVPX5eTI8hi3BRYMVq4JmIJQdpthuzDvvFGb5vhddfNURkZBeI9
JxLy8PTTw4e9yFspn6OBHyRvJAr8hwcDIke5UKLx4ovhSwX+9KclgZUjj2C95561ZgCdZEvmZAzJhKBH
j84vFbd03bWFVBWjxQrSv83Qe9yrt82wSZOa32ZIHv75z+ELwf/xj2wxn6OBHyRvJIqIcnz88QU6KBao
Nm1qjtat51WYFi3CT+O59NJgPjcG+ezYUWwGzctO/U5estGlp2s/d25hrZdjqovR4gnS20WDIL3Hva42
98Q2w7vuWqBycmruca/k4WWXhedoq1YrxXyOheSNRGEdGCbH//zPnuo///O9gPOOuuiiaWEFf/31qwMr
x40bD5c8SCu5M9V8LuONJFB2tjcZI11zbSBdxGjxC5IVEYyXlt9muKTGthmSh40brw7L0csum2nyV87r
INEzXI4/+MEY9T//80Wg+cEPJmg5fhVW8HfcsS6wcly+vMBs+Ur2STx8rtf9ylH5+d7ib+ma0x3E2KCB
LEbWoKaaGC1WkMidbYac/uTfZvj448vVgQOJf9wreUg+huboZZfN0/k7XszrIIEHw+T4wx/OCbuhIHLh
heFHsbdokRnIrYMIaNmyAvNNbpfxSIFdEzDW6Y157tDXVTsnY0LFSPcTMdLaSmUxWrh2hk6o5zZtvH3Y
ZdsMZ+u6T/w2Q/KQfAzN0fr1w89fDSZzJDlKLwweF14YXsgPPrgxsHJcuPCgb0918pbxkPhMxrz55q5a
KccZM9JbjBYrSLvN0P+4V7YZdu2aKZZPdUEeko+hOXrJJeGTNEElZeX417+Gy7FNm6zAynHevANmFjHZ
axztZEzv3nvMddUmOdYWMVqY9LOPe2WVBGPe/m2G/folbpshedi6dVZYjtar5+SYcM4/P1yOzzwTzAf5
I6C5cw+YNWg8VY4klIK5JqBLz6NgBw1ijWPtkSNivPLK2iNGS/g2w8xy2wxHjtwulldVIQ/Jx9AcrVcv
/DyEoOLkWAMgoMWLC8qd/i0FcqIh+ZkMYlJo5MjcWiPH3Nzj6v33N+nW8hb1wQecLL1LDR2aq0aNOqA+
+6xQTZhwWE2ceCQu+vQ5JJZtshg3Tr5OP9zf+PFFasyYAjV8+H7zXOZ+/XgsyVbVq9emhJwkHkmOF17o
5JhwUk2Oy5cXmqfIBUGOzMjyEKTa0moE+0XACUShsIUyXiZMOBKYFibXkZNzQrxOidD7TuSYs2s5JpFU
G3Ncv74oEHJkGQ9LPCZMyEtYYgQRK0eEECqJijBqVJGZ8U+mIPlsII42bSoWrzMWVoyJigHy0I05Jgmp
eZ6o2Wq+dXftOlZhdu/mv8X6v8WBkCPjTywQZvZy7NhcfV3HS69Puv54SRXJlgmyciCVYcO8cdtkCtKK
kS+6deuOlchOvuZ4kMqqqpCHbrY6SUhyTNQ6RxbNPvLIEv2ZkytEvXpTzI6Ahg3nm50KyZejt8aRh3tx
egs7J1j3dtFFU8Xrj4fevZN/8nSiKRPJSdW3b66Z/WXWP1lypB4ZHmHVQUbG4YRKrrIc1XkorXO89FIn
x4RTv354ISdyhwytq5YtF+vPnaa//abHxaWXTjf7WpEQzxtO9uMRSCpmZmk5ss/7xhuXmpNbELh0/dGg
HJjkCFpSJgoroK5dd5qF/Mnc5cQhE3YHzMqVPP9HvuZkEmmHzBVXLAv7WVBJKzkmcm81AZiTc0w1a7bE
nJUXDyyXYNsWa8tYQmEfx5qs48o8OXqP97RPr2NZC+vepOuPxNVXz1UffrilVBhSeaUb9l7bt99qlv/Q
pU3W4SF8ufIly9KcFSsOBbIOyENpb/WVV6awHB9/nMMRNqg2bWqOJ57IqjCtWq0PuxlOAUmkHOlWZWUd
1p+92gjv1ltjsdJ0pzmhmQXgLKHxkio5cqSlQ4uHXTq0YlkUzHo/tpbJ118e7hk++mhHuXEuqbzSDXuv
jKPRYkvmyUrIkeEZhmlWrQquHKVTeTjTVMrnWEjeSBTWgWFyZP0TcIZaTeGdnyafyhuJf/5zS1jBJ/I8
R5scSCEz84hq3Xqz2Q4YC9Y2sjsBMdJqTObjWO1APonNQnC615wejbila5cYMSLXlEFtlCOTV/fem2nk
yJdc8rrVnhyJLSb6glgHkc5zJG+lfI6Od+ZrTWEdGCZH+wLp0MlEURk5vv76trCCT/RJ4J4MPDGsWHFE
y263aYVFgx0xdIEQEmKk1ZhMOXpbypjpzDPXRZIxsC9dux/G2T777GCtFCNwr7TSgnDsnF+O2dlHAlkP
5OEZZ4SfBE7eSvkcnZ2iNxKFdWDKyvHdd8OfiwuJDBQrBCvIpUuPqPbt84z0EE4kCGbGGUmmZCWUxV4D
kvauS75mPyxdmTjxUK0VI3C/kybtM2O1yT52zi9HWrNBrAuuScpP8lbK5+jUYjl6R5NLhRKZAQN2qVNO
mRdW+Il++qAVgxXFrFnB2TGRCLi3SZMO12oxAvdMrLZsmfynR1o5PvIIk2JenUjXnCwiP31wnslbKZ+j
gR9CnZFIAifHQYN2V5hf/nJhWAXUxHOrrSCsMKZMOZyWgnRiLIP77tAh24y7MsxAi1oqs5oAOTIU8vTT
2/R1BU+OkZ5bTb5KeRwLJ0ehUGJx3nnhA76ffrpPV07ixh0tVhRWHGwrSydBOjGWh11SzZuvSfrhIYCY
kWOnTjmBrBfyjzwMzU3yVcrjWARIjl/rF3yt+vatOfr3z1EffSQXTDQaNFgZVgFvv52jjhxJvBzBBiby
IHmGDk0PQToxlod7X7Wq0DzR75FHtpUs5E/e0yORI63Xd9/dHci6If/Iw9DcJF+lPI4GXujff4fojUSB
//BgIOTYr1+OGjxYLpxoNG26NqwCnnwyOyFbCCNhgxOJ5Oef1GVXmNKCdGIMh/sfOXKXatZsnVn+xC6j
ZK1VBcY7Gff85JNgnslJ/j31VPijk8lXKY+jgRfwg+SNRBEoOdKE/fhj71uiIjz8cPjG9ptuWpOwheCR
sAGKTPbtO6F6905NQToxylAGL764oWQZD2sck/uANGbKmTH/8stgPnec/CMPQ3PzoYc2iHkcDbyAHyRv
JIpAyRE+/nivLow9FaJ9+/CF4H/5y9KErnWMhA1SpLJ79wnVrZsXyFKABxEnxsjk5Z1Qd9yxMhAz1VaO
bGFctSq4C8DJw9DcJF+lPI4GXpB8kUgiytGKsU+fmmXw4D0GqYAi0a1b+LjGj388L2kB4wnFk8vWrcdV
167JX9cYD06MkaEcZszIM9tAmYxhUX8yZ6qpK29/fI7au/d4IOuJpTx164YvsyNfpTyOBD7g1HLJF4nE
CjIwcqQJXVE5Dhy4R/3kJ+GVsHz5oYSudYyGX5DZ2cXqlVfkIA8KTozRoSxeey1L3X33WnPQQ7InYxjr
ZBvqSy/tNHEWtLoi79asKQrLSfKUfJXyOBJeg2m36ItEEkWO2/Qvt+kX1SwffbRTDRliCyR+pP2bn3yy
t0aW80TCL8iMjGOqc+dgth6dGGPjdamX+8Ybk3fgBCBmBP3BB3tNjAWtvsg7HsERmpN/+tNSMX+jgQ/w
guSLRIL/8GBg5DhgwA5dGHvFQopGo0YZYRXB2EZNzliHYiVjBbls2TEd2MESpBNjbCiPSZP2mhOJWrVK
/ngjeAvA96jJkw8Gss5YxtOpU/i5B+SplL/RwAcDB+4QfZFIAidHputZmsAA7ODB8dOy5YawikjGjHUo
NnCtfIK0zdCJMT4ok2eeWWuOdeP0omQv/qbe7DIeToYKYr2Rd7feGr7EjjyV8jcSeAAf4AXJF4kkohyt
GN9/v2ahnz906L6S1mP8dOiwNawizjxzUVJmrEOxwWslFIRthk6M8bNhQ5H+ol1iTk1v04b1jck7ixOo
O2aq27ffZTYdBLHeyLuzzloUlpPkqZS/kcAD+AAvSL5IJFaQgZEjDBvGt4X3rREvffrsCqsIyMpK7AEU
8RIqyGRuM3RijB/KpVu3bNOltkt4knkSD9gHpPXrx2N1gydH8o28k/KRPJXyNxJ4AB9Inkg0UeS4Vf9y
q35RzTNkyO7S1qNUYJGQvqlGjKiZPdbxYCWEkJK1zdCJsWLs2HFM3Xzz4pItg2XP/kmmHO1kzJw5hYGs
P/Jt1KjwyRjyU8rbSNhWIz6QPJFo8B8eDJQcmZkaNixXFwpjj/FzzTXhkzLt2m1O6qRMKDaYEVNNbzN0
YqwYlM0HH2zVXeplIbPUye1Ss77y2Wd3m0fqBrEOyTfyLjQXyU8pbyNB/uMBfCB5ItEEUo4cQEGheBMz
8fPgg+EPD69fP3HPk6ksNqARVE1tM3RirDg7dx5TTZosMgu/eYQEhzwke5aaz6Zb/9573mMqgliH5Bt5
F5qL5KeUt5Eg//EAPpA8kWgiytGKsXfvmofBV55RMmyY9+0RL127hu+UOeWUuUZAQRh39OMXZKK3GTox
VhzKp1evzeqGG5aYB6Ml+4mRFlqtjDfOnEmXOnhyJM/IN/IuNBfJTylvI0H+4wF8IHki0VhBBkqOMHz4
Po3XepQKToJvm9NPD39exfjxuSrRB99WBk9SnrC2bUvMNkMnxsqxefNh1bjxAvNERru2MdkTMcB4Z7t2
e9WePcHsUpNnEybkheUgz3UiP6W8lSDvyX88IPmhJgisHBmEpXC8Adn4ufzy8LMdn356U6DGHf34BVnd
2wydGCsHZdShw1rdalys7rlnnW+7YHInYvhsuvUDBuSX1qd0/cmEPCPfQnOQvJTyNRLkPfmPByQ/1ARR
5LhF/3KLflFyGDRoh/r007yS1mP8PPxw+PlxnDwchPWOkfALcvXq6tlm6MRYeebP36/+/vd5iueNs3wn
2Q/Sstgu9cqVLPwOphwjncTz8MNZYr5Ggrwn//GA5IeaAP/hQVGOvKBXr+TAhm8KZ8SIPP0tIhegRI8e
O8MqBthJELRxR4sVlxVkVbcZOjFWHvZQ33PPYjPWGLRWI9fw2mt5pQu/g1an5Bd5JuUfeSnlqwT5Tt6T
/3hA8kNNgP8CKUf49NNcNXJkXsnMdfxI6x179dpRY49NqAw22K3QZs+u3DZDJ8aq8c472aphw/nqtttW
qVatNpWONSbzkAmgXrmOKVMKS+tVuv5kQn6RZ6G5Rz5KeRoJ8n2kznvyX/JCTRFoOQ4dusd8ewwfXrHW
4803h+/pbNx4deCW9IQSKsiKbjN0YqwaCxbQnWZP/lKzVbBshjq5rUagS92xY65p2Qa1Xskv8iw098hH
KU8lyHPynbwn/yUv1BSBliPjDaNH55W2Him4eHjppfDTQFhasGvX8cB2rS028K3g4t1m6MRYNXgo/u23
L1TXXbdQ3XHHavXQQ8FY1wh8Pgu/x40rKK1b6R6SCXlFfklLeDp02CbmqYRtNZL35L/khZoi0HJkX+OY
Mfv1t8j+ktZjfHz8ca5ZOhBaSTyoJ8hda4tfkPFsM3RirBqU1QsvrDaTMLfcskLdf/9GsxuGyQ/WNSZb
jl6XPi+wO2KAvOJg2tCc85bwID45V0PxWo37Td6T/5IXaoqIcnz//c36BZvVe+8lF8YdRo3ar0aM2K+/
VeQClWjUKLx5H4QjzOLFJgGyi7bN0Imx6vTvv0VdddVX6sYbl5abhKG1lmwx8vl068ePD+5YI5BX0sO0
GjZcLeanBPlNnpPv5L3kg5oE/+HBwMrx44936SZ2xVuP7dvLXeucnOLAd60tfkFK2wydGKvO1Kl7VYMG
c0q702wTDMokDHANHTvuV3v3MtYY3C41eSV1qclDKT8lbKuRfB8yZJfog5ok8HLs1+9rNXasV2AjR3oF
yDdMLGjKS7tlgj5rHYpfkP5thk6MVWf16gJ17bVzNPPNmsYWLbIC1Z3m82k1Tp1aFOg6jjRLTf6Rh1J+
hkJek9/kOflO3ks+qEkCL0eugcKyY4+sf5IKV+KGG8Kb+fXqLQ/0gnAJmxQkCNsM33jDibGqZGcfVk2a
zFPXXMNs6jLVvHmmat3668B0p4FW41tvHTDDKkFtNQL5RF6F5hr5J+WlhLeu0ctz8j0o7gm0HGHYsD26
wPLVqFH5+tuF7jXjj7Hp3Dn8IApYsKAgkHuto+EXJC1IJ8bKs2XLEd2Fnq+uvppxxiXmiYI8/uDpp73Z
6SB0p22rccWKo6X1LN1LsiGPyCcpz8g/KS9DIZ/Ja/KbPCffJQ/UNBHl2Lu394J3300+/fptV599lq+b
3Pn62yU/bjkOHbpfnX324rBKe+yxrMDutY6GFaFtRVik1zpkvv76qLrrrgVmnLFx48XqzjvXhIwzJr87
DVzHRx+VLd0Jaj2TR+RTaI6Rd+SflJehkM/kNflNnvfvv130QE2D//CgIMdN+peb9IuSD9dBoZUJ0ivQ
eGjZMrzifv7z+WYxbapMzPjxSzGoCRNUOGmHFuOVV842EzCc08iJO088sSMw44zANXTufMCsGwxyq5H8
IY/Ip9AcI++kfJTwJmG8/AavUSa7oCbBO3gw0HIEmtrjxuWrMWO87jVT/lJBh/Lhh3tV3brhD/wfMCA1
1jw6qofMzEOqSZO5pWJke6CdgAnKLhjwutMH1Lx5RwLfaiR/yKPQ3CLfyDspH0Pxlu54eU1+k+dS/ieD
lJEjs1fjxx8obT3ascd4aNAg/PEJDCCnyppHR9VgW2DDhrONGBs1WmjOaGShN08SDNIEDHAdH31k1zQG
t9UI5I80EUO+SXkoQR7bViP5TZ5L+Z8MUkaOQAGOG3dAf8sc0N82B/S3DuOPsfnnP7eHVSBMm5afchMz
jooxZswOLcWZYWJ87DErxuRvD7RwHaxEYE1jkLvTQN6QP1JekW9SHoZC/pLH5DN5TX5LeZ8sIsqxVy/v
Be+8ExxYGDphAoXoFSiDuBRwLKiI3/42fGKmadO1rvWYpuTnn1BduqxTl1wyvXSRd9Omq8qJMSgz04AY
X3rpgFqz5ljgu9NA3pA/oTn1+98vKRVfLMhf8ph8Jq/JbynvkwX+w4OCHLP1L7P1i4IDh09+/vlB0/we
O/aAbo4f0M1yueBDefjh8NOJf/SjuSojo8i1HtOMjRsPaQkuUpdeOl1dddUcdf313kOyGGMMohiBa5k2
zVu7GvTuNPlC3pA/oTnVps1mMf9CIW/JX/KYfCavyW8p75MF/sODKSFHGD06t1Ktx8GD88TDKB58cGNK
LutxyIwcuV0Lcaa67LKZ6uqrWYi82GwL5ETvNm1ySrvSyChI3ekhQw4ZMQa9Ow3kC3kTmku/+tVCfR9M
ssg56Ce01UheS/meTFJOjgMGbK906/GeezaEVSgzaxs3HnGtxxQnO7tIy2+Zql9/mrr88lnmhB3OZeRh
/A88sKl0VprJlyC1GBFjr14FZklMKnSnWb6TlXVEXAFy330bxbwLRWo1ktdSvieTlJMj10SBTphwUI0b
d1B/+xzU30IIkgma6PTvn6d+8pPwNVmPPupaj6nKgQMndGJtUQ0azDDdaMYXGzVaoG65Zbl5pOpDD20x
z4BhHWOQZqWBa2GvvN3xFHQxAnlCvoTm0Kmnzjf5JeWdH/KUfCVvyV/ymHwOqmtEOb73nveCnj2Dxyef
7FKTJhWYgv3sMwTpzV5T8LG47bbMsIrlW5BvQ9d6TC2+/HK3luDcktbiTLNPml0vrGG8774N5ugxDqx9
/nkWeAdPjK+9dtDslU8VMZIfkVqN5JWUb6HY2Wnylvwlj8lnKc+TDf7DgyklR/Y8Tpp0UE2cyLfOQd08
P2ia6bYFGY3+/XPVT38a3nps1WqDm7lOEWbN2qflt1BdfPFU3VqcYVqLDRsuMAdI3HXXWrPrhTWMzzyz
x2wJDMrOFz88gjcrq7hEjMEfZwTygzwJzR3yqV8/TvCWc85CfnrdaS9vyV/ymHyW8jzZRJFjlv5lln5R
MBk5cm9p69F2r+NtPd55Z3gFM/O2atUh13oMKEiElmLLlovURRdNNUt0rrhilm4tzjOTLrQW7703Uz38
sNeN9sYXmXgJphgzM1NLjOQF+SHNUJNPUp6F4rUay7rT5C95LOV3EMB/eDDl5Mjx5V98UVAyOeN1r+Nt
PQ4cmKd+9rPw1uONN3onhafinut4YNJi0qRdZg2g9PsgkpNz1IwpNmnyVakUmXBhJpq1izzWgFN1aC2y
TIeTdZ5/ntZisLrRli5dCtT69eXFGHQ5kg/kBfkRmjPkEfkk5Zkf22okT8lX8pb87dt3i5jfQSCiHN99
13tBjx7Bhel/T5AFusALdMEX6J8xQRObZs3CB5VhwoS8tN5zTeurcePZqmvX9WrJkvxAJiYzt1znc8+t
1DKcZrrPZVL8ykixSZPl5kQdFnU/8sjW0tait34xeK1FeP31sq60J8fgixHIh4kT94v5Qh5J+RUKeUl+
kqfkK3lL/kp5HRTwHx5MSTl+8ME2nUSFpnk+cWKBbq4XlIw/yhXkZ/Dg/eoXv1gYVtnnnbfUBES6th5h
zpxcM7tbr94UddNNX+mkXWfG8fbvT16LkqPERo/mFO6V6sorp5tWIhMtjCleccVsM9mCFBlXvPPO1WbC
hZnoxx/f4Rtb9FqLQRRj9+6FassWb/IllcRIHgB5EZor5A95JOWXH/KRvCQ/yVPylbwlf6W8DgopLUf4
7LM8XdDet9GECV7r0Rt/lCvKT5s2W8IqHHr2zEnb1qNNytWrC3WXdL4REC0zRHn55dO0cBabgJg5c58R
lvQeVYXu5IYNh3Sy7DBb/O66a56W4RTDxRcjRFqJM81EC+sV2eFiW4plUszRXeg9ZibaW7sYzNYi9Olz
SO3adSKlutIW8oB8kPKE/JHyyg95SD6Sl+QneUq+krdSPgeJlJcj3z6TJxeaZjrfSjTbx46Nr3vNuqs/
/jH8G5FnX6TSg7gqgk1M2L79qHr0UVpqs82OErquyIlWG7KEhg1nqtatl6pXX12r+vffrIN7l1q4cL9a
v77Q/P2uXcfKtTj37i02P+PsxJUrD5oWKS3C3r2ztMAy1L33LjAStu+PmG0LkW4zQmSShUMieBogB0Uw
psjWPyZbPCnuLlm3GNwuNHBdn3xSpMvHthZTS4zEP3kgPYuJvCF/pLzy47UavbwkP8lT8jXorUaIIseN
+pcb9YuCz9ixuYIgvYrhmysar766M6zigQXE6To5UybIk2Z87513tpilMHRd2YvMLDCypAXntSy91qVf
mnDhhZOj4n8tf2tFiIQ9GXqn5TCOSAuRbjOPLWCSha4zs8/sbmG9IgfS0n1OBSnCyy8f1K1v70zGVBUj
8U8eSPlB3kj55Md2p0PF+NlnjDXKuRwk8B8eDJfjO/qXvOjt4PNB361qypTCkvHHQt18L9RdtsKSFmSB
rqjoXHVV+DOuYfz49J2csYlqk3fKlDzdQltlttzRjUWWCAtx0ZpDYrTskOZll7EbxduRgugk+B2v4fVI
EOHyHsgXCfPEP1qHLNpmHJEWIlv9eNAV+6B5pgt7oXl8AfuhGVMMevfZ8tZbBWrt2tSbePFD3BP/Ul6Q
L1Ie+SHvyD/ykHwkL8lP8pR8lfI4aOA/PBgmx3f0D7Hn2/pFqQCtRwr+iy8KddfPqxBv/FGuPD99+8oL
w885Z7F5XnQ6th4hVJCbNx/Vyb3VPNiewxoQFmN9CBOJIU225jVsON+IExBdON7vECCSpUXI37Iekfei
Zci6RMYQaZkw40wLkVlnK0TbSmT2mYmWIB0UEY2hQ4tKz2NMVTES78Q98R+aE+QJ+SLlkR/yzhtn9PKR
vCQ/yVMpf4MI/sODKS9H1j1OnXqopHtdqJvxhfqbz2s9xiPIhx/eHBYI8OST2aZ7IQVROhAqyAMHTuoy
y1etW281wmKsj0kQJMbYH0Lj+C/kxrOeb711hZGdH36OWHkNkqVFiHCbN/dEyJrEhx7abGTI2kS6zGzz
o4VYXojBbyVaXnutQC1c6J3FmMpiBOKduJfygTyR8scP+eaNM3p5SD6Sl+QneSrlbxBJGznCqFH7dAV4
FeEXpG1B0tSPBIPHf/lL+JHv7AiYMeNA2navwSYx42I2sTdtKtb1n2vWDzIJgsR4rjNCY2KEGWOe2odA
Q+HnwGvoHj/yyDbzt7QKESEtQyZVrAy9LnPqCdEybFhR6Wy0J8XUFSNxTrxLO2HID2+SRc4hsC3GcDEW
6t/vE/M2qKSVHDm1l0oIH3/0vsliCbJnz73qxz8O31RP92LPnuNp272GMkGWtSIPHjypZs06ojp2zDMS
Y5E1QqPLyzIaBEeLT4Lf8TpeD/ytFSEtQ8YP2fNsZZhqQoSePQvVqlVlY4ueGFNTihCtO01ekB9S3lhs
i5F8Cx1nJC/JTylvg0payRGGD9+tpk07VCpIO/5oBSlVqp9IO2fuvjt9Z6/9lEmyLOEZQxs37rAWwgEj
NFp4gOCiYV9nJWjHDVNRhH5ee61QzZ59VOXn+6WY+mIkvolzKf7JCylf/PjFSN5ZMZKP5KWUr0Emohx7
9tygX7BBde+eWnBDX3550IxvTJ58SDfrD+mKOlTSvS7U32407yMzYkSBuPYRBg6sHY9zLRNkWSsStm8/
oUaNOqxbkrI00p0uXegmHik34QKpLEULcf3RR3vEuPfWNCJAOWeAvCK/yDPyjbwj/8hD8pG8lPI1yOA/
PJg2coSBA7er6dO9iqGCJk06pCZOjF+Q7767TzwUl4eXZ2bWnnMfyyRZJgL4+uvjRpKdO8sSSTdef92T
4p49shRTXYzEM3EtPUaEPHjnHRbyy7kCfjGSZ+SbFSN5SD5KeRp00lKOMH78/nKC5JvML8ixY71KjcRj
j8lbCy+8cLnpTqV799pPJEkyCYE03nijUJRKqtOjxyE1Z85RlZtb/r5TvQvthzgmnqXnTwN5IOWHhTzy
i9HfYiT/yEMpP1OBtJUjg7+MdVBBU6bQtJdbkJHgG/GyyzLEgLn//kxzXHztFGS4JNket2TJMd1CKFIv
vyyLJlXo1KlADR9+WK1ZU2wmpPz3mU5SBOKXOCaepTi/7LJVpS3DSIS2GMkz8o28A/JQys9UIG3lCEOH
7lIzZhwqmaApL0hW7scS5KBB+eqXvww/uQfefXdHrXzuTDRJIhPGJWfMOGoOW5DkE0QYQ0Xs8+YdNV3n
cCmWv2+pXFIR4ve993aI8U3cE/9SXljIH/IoVIzkG3lH/kl5mSpElGOPHt4LunVLXbp336gr7YD+BivS
FVakm/tFutlfpD7/vEhNmIAgD+luwSFd0ZHp0mW3OuWU8OU9LG2YNSu91z9GI1QYfpmAJ8rjpls6eHCR
euWVYHW9GUekhcjCbR5wFSpE8N+fVAapDHE7Z85Bceka8U7cS/lgIW/IH/KIfCKvpkzx8ox8++KLAyb/
pLxMFfAfHhTkmKl/malflNr06bNZf4t5FTZ1auUE2bLlprAAgrPOWqSys4/W+kcr+CUS2poExEPXe926
Yp08nixrepyyW7dCNWzYYbMEJzv7uNkJJAsxvaUIxCtxS/xKcU28S3lgkcRIXpFf5Bn5Rt5J+ZhK4D88
mLZyhBEjdquZM71K45uNb7gvv+SRAZ4gx48/pLsIXqVLEBANGsiHU5x//jKzQLy2CxL8UvEIlw8gJcjJ
OaFWrCjWCcVBt4dN17Znz0OVngVn/eF77x0y8h037ohptSJklt7Yz5SuJ1SIIN1fOsA4IycxXXCBPAFD
nFsBSpAn5At5Q/6QR7bFSH6RZ+SblIepRq2QI81jmvlUXHgL0qtovgmjCXLo0IPq3HPl9Y/XXLNKJ5kX
eFJA1kZCZeMhywmsvCx5eZ48aeVlZh5Xq1cXG9iRYv9/w4bjatOm42rnzhNmxjX0PaTPAUmGIN1HOkF8
wk03hT8LBohv4lyKfyA/ylqMzEyXbzGSX153mm6pnIupRK2QI/TuvUlX3qEqCbJv3zzx0QrQokVmrdhB
UxkkEXnI8qpuIskQpOtNR4hL4vOhh+QdYMQ18S3FPcQjRvKLPJPyLxWJKMe33/Ze8NZb6cOQITvUrFle
8z+aIKXgsHTrtledemr4AnF4/vnNTpBxIElKxootmvQs0t+HI11PumPF2L69vHaXeCaupXiHWGIkn8gr
8kvKu1QF/+HBWiFHmDBhv67Iw/pb7rCu2MO6gg/rij5cIkjGIIvU+PFFOiAi8/zzOeKpJdCp0zYnyEoi
yayySO9fG7Fi7Np1uxivxDHxLMW5hXwgL8omX7y8IX/II/KJvJLyLZWJIsf1+pfr9YvSC44+nz69sMqC
5EguKdigW7ftTpCOpEP8sZbx/fflR4EAcSzFtyUeMZJP5JWUb6kM/sODtUaO8MEHW0ylVlWQt9wi7ywA
ArK27aJxBAcrxr59d0Xs5RC/Ulxb4hEjkE9SnqU6tVKOMHToTjV7dtUEyZKHhg3XioFHQCJI14J01DTE
G3HXp8/OiGIkbolfKa4hHjGSP+SRlF/pQEQ5du/uveDNN9OXceNySwU5Y0blBDlq1KGIe7Che/ccJ0hH
jWHF+Pbb8rOmgXglbqV4hmhiJE+sGMeNyxPzKl3Af3iwVsqR9VhTphxUc+Z4lW1bkNOmHdY/P1y6UHzi
RC9Yxo2T+fTTQnXJJavEQAQ3SeOoCawYiTcpDoE4JV6lOAbinHgvW+Dt5YNtMZIn5At5Q/5IeZUu1Go5
wrvvZutvwiJd4Ud0xR/RAXBEB8IRHRBHSgR5WAfKYR0wzMjxbSnz6aeH1EUXRRZku3ZumY8jcVgxEmdS
/AHxSZxK8QvEN3FOvBP3nhi9fCAvyA/yhHwhb6R8SidqvRzhgw+2mkqvDkHWrx9ZkCwUJ5DdVkNHdWLj
ifiS4g6Iy+oQI3z44VYxj9KNKHJcp3+5Tr+odjB4cI766qvYgvz889iCvPzyyGOQf/97htq71+3FdlQP
xBHxdO21kWOOeIwlRuI6lhjJD/JEyp90BP/hwVovRxg1ak+YIGfMKC/IL74oE+T48XKwjR5dFHEWG/73
f5eqrKwjtfa4M0f1QPwQR8STFGdw7bVrTTxKcUr8WjES134xEvehYiQ/pLxJVyLKsVs37wVdu9YeuN/x
4/NMIACBwaNJCRS+Re1Mtm1F2m42QRYKs37R1kH++tcLddAdcGshHRWGeCFuOI+ROJLiC+w6Rik+iVt/
N7psRtqLd+Ke+Le58NlnubXSB3jQybEExho+/3y/mjvXCwq+NQkU280mgKRuthSA0KrVpohrzTho1J4o
7gTpiAcrRk7wrls3/KBaIN6IOykewbYW/d1oK0binHi3rUXygHwgL6R8SWecHAXYUzl58kEdGEd1gBzV
gXK0nCC9bvYRHVhHdHeE4DmiA+6IDjyZ557LiRjIcN99mebILTcO6YgG8cEhvZGe+QLEGfEmxSEQp8Qr
cUv8Esf+8UVPjF7cE/88VpV8kPIk3XFyjADPj5g2rbBCgpw4UQ5I6Np1rzr99MhdIA4f5fGYjCO5VqTD
D/FAXBAfPP1Sih8gvogzKf6A+KyIGKdMKVAc2yXlR23AyTEKPIicTfV+QYZO1EydekS3Mr2AmzTJC8BI
rcgPPzwQ8cBc4LnYgwbtdushHaUQB8QDcUF8SHEDxBXxJcUd8UhcEp/EKfFK3BK/5SdeysRIw4AGgpQX
tYUoclyrf7lWv6h2w9PHeJIaT6Yrk2T5ccjQVqRfkqGwpOKqq+STmC13373ePHrBzWbXbqh/4oB4kOLE
QjwRV1K8+aUYubXI+KIX38S5d8oOYpRzoraA//BgmBzfest7wRtvODiOSRJkrFakHYsMhW/zVq02i081
tJxzzmL9vgdcK7IWYluL1D9xIMUHED/EkW0dhkL8xW4tlhcjcU68S3lQ28B/eNDJMQY8opFv1PKCLN/N
5tuYAJTGIqXgZXzoV7+SnwAHzDo++WS2ys094cYiawHUL/VMfT/xRHbEVQ5A3BA/UlwRb6Fji8Ql8Rmp
G21bjMS5FP+1ESfHCsCpwFOnFoiC9HezQwUZrZs9ZEiBuvTSyLsbgNbDhAl5rhWZxtjWIvUcrbUIxAtx
I8WT1I22YiQ+iVNJjMQ18S3FfW3FybGCcMYby3ysIP2SnDXrqA5AuiYMaBNwR/VrWQ5xVAfsUf1tflQH
71EdxOUZP/6oeuSRrVGX+0Dz5utVTk6xa0WmEba1SL02axZ9bJH4IE6Il9AYIq6IL+KMeCPuiD/ikHgk
LolPvxStGIln4lqK99qMk2MlYEP6F1/km8AKb0WWCZLnMROgU6Z4AfvFF5EFCb167Vd//OMyMTEsZ5yx
QL9uh0mqw4fdhE0qQ/1Rj9Qn9SrVt4W4ID6kuLFiJL6IM+KNuCP+rBiJy9DWIhDHxLMU57WdiHJkpoYX
vP66Q4Kp/vHjc9X8+UcNkiT5po4kSX9L0s9nnx1R9923yeyekZLEUq/ect0qyDddMbd4PLWgvqg36o96
lOrXQhwQD8RFaKzYlmIkKRJ/khRtzBK/xLEU3w7Pf3hQkOMa/cs1+kWOaHz66W61YEF5QYJfkHxzE7B0
cQhg29X2tyRDef/9fHX++SvEhPFz881r1KpVh5wkUwArReqrSZPoy7mA+icOpPjwtxSJJ+KK+CLObBfa
itHGpBUj8Tpq1G4xnh1l4D886ORYBQYP3q6D7kipIENbkVaQFW1FskTjsce2qZ/+NPLiX/D20m4wJ7S4
fdrBg/qgXqgf6umUU+R6tFDf1Dv1HxoTsVqLVoyhrUUrRuKUeJXi2FEeJ8dqom/fzToYD5cEYLggpVYk
Qe1vRUaS5MCBB9XVV0c+As3CgH3r1lmlknQtyeRC+VspUi+xJtyAeqa+Q2MgVIr+CReptSh1o4lP4lSK
X0c4To7VCLsKpk0rKNfNDpVkpFYkwR5NkPDmm/vUeedFH6MCkvChhzaq1auLXHc7CdjuM+VPPcQjReqV
+pXq3S9G24WuSGuReCQuiU8pbh0yTo7VDPsxearhggXHdGB6zJt3TAfsMR24x3QAH9Pf7sd0MB/TQX1M
B/cxHbjHdLAf00F/TLcKjukkOKaT4ZhOimM6OcozYcIx9dRT29UvfhH5EAsL3e3bblurP8PbaeOWACUO
ypXypZwpb8o92iJuC/VIfY4bhwjL1zX1TxwQD8QF8UGcEC/EDfFDHBFPxBXxRZwRbzb2iEPikbiU4tUR
mchy7Kp/yYtec1SGIUNyzDc2wWlFaSUZKkoryenTvcAnCSZPDheln08/Paxattysfv7z6EtALBddtFwN
GLBb5eWdcF3uasR2nSlXypdylso/lJ/9bIFq0WKzqcfQuvULkTggHogL4sNKMVSIfinamCP+iEMpPh2x
wX94MEyOXfUPsedr+kWOyvH++5t0AB8uJ0i/JCO1JEkC25KMJckRI4pU8+abdLJFn7SxnHbaAvXYY1lq
0aJCVVzsWpOVwbYSKT/KkfKkXKXyDoXJFuqLegutS0mKxIFfivG0FIG4I/6kuHTEB/7Dg4IcV+tfrtYv
clQFnkMxcWKeWriwLHCtIGNJ0t/djiXJYcMOqbvuylKnnhqfJIFWDguQt2075rrdMfB3mymv3r13xt1K
BOqF+qGeQusukhTj6T5bMdrYIs4mTtxv4k6KR0f84D886OSYYFg+wQC5DWK/JAn0SJK0Xe14JTl8eJHp
rp1xRuwxSQtjYw0bZqg+fXaq7duLnShL8AuRcunbd5cpp3jGEi3UA/VBvYTWVTQpUu+RpGjF6JciEF/E
mRR/jorj5FiD2Nns0FZkNEmSIPFIMlSUY8YcMQP9v/995MN1JViD16hRhr7WHWrNmiLTdbRjlOkuS+7P
jiFy39w/z/ihPGKtTQyFcqf8qQd/vdi6iiVFiCZFvxiJJzsbLcWdo3I4OdYwzICNHLlLB/XRqJK0goxX
kpFak8x6vv76XnXttetibkmUOPfcJebYNLaa7dt3wifL1G9ZejL07of74v64T+6X+5bKIxqUL+VMedvZ
ZotfiPFK0S/GSFIkjogn4kqKN0flcXJMEu+9l2W+7RctKtZB7rFggcf8+cU6GTzmzi3WCVKsE6VYJ02x
7mYV6wQqVjNmFOuEKtbvUawTrFgnmsfkycU6+Yp1IhbrhCwPXbvWrbdVuDVpoTvJM0w4a3DYsL1q48Yj
Riq2Gx5kYVoR2m4y1831cx/cD/dVke6yn9/9bqkpV8o3tMypB+qDerF1RH1Rb9Qf9Uh9Uq/UL/VMfVPv
NgaIBxsbNlaIG+KHOJLiy1F1IsrxjTe8F3Tp4kgUzIgNGbJDB/2xCksyliitJCVRfv55serePU/ddttG
9ctfxj82KXHmmYvULbesVZ06bdVdyFyVkVFkRGSlSavMijORXXNPfmUC5HOtBPkd18X1deq0zVwv1y3d
T7xQbk2bbjTlSHn6y9cK0S/FaEKsqBSJF+KG+JHiylE94D886OSYRDhk9IsvDpjAj1eSlWlNSqKk+9e1
6z4tjA0VmsSJBjtCzj9/mTlcgS5q9+45uuu3T99Lgdq06ah5DC3SsgK1ILRY+F9v34P34315fz6Hz+Nz
+XyuI54dKvFA+TRpwrNV2MlCVzm6EGNJ0QoxXikCcUK8SHHkqF6cHANE//7bdNIcjipJK8pYkqyMKNl9
89ZbuapZs03qT3+Kf5lKZTj11HnmxOuLL16hGjdebUTGYb4tWmSawxnats0uhX/zc37P63g9f8ff8z7S
+1cXlAPlQblQPv7yileI8UjR1m0kKbJukfiQ4saRGGLIMUO/yFGTMLA+YgQTNl5XO5Yk/aK0kozUmowl
ylBZDhlySD333A7197+vi2u7YjpA65D75b65f3952DKKJkS/FP1C9EsxtJUYTYrEAfFAXEjx4kgc+M/J
MYB0777ezJzaJJEkaUUZKkm/KEnO6hAl42r9+h1U7drtUDfdtMFMQkhySTW4j5tuyjT3xf1J44eVEaKV
otRKtFL012OoFIH6Jw6k+HAkHifHgPPuuxt1wu4vlzQ2kfyiDJWkvzXpFyXJ6xellSWJbmWJAPyyjCTM
ESMOm/G3Rx/dpq67br3685+Xq5/8JLHd3MrCdXF9XCfXy3Vz/f77CRUh2LKwMrRCtGVnhWilaIVopWjr
QpKivx799Ut9U+9SPDhqjohyZBqbF7z6qiMIsGSD530sXlw+kSBUlBWRpRUmSS61LP3SjCVOYKJi4MAC
9frr+9STT25Xd92Vrbupa9Vf/7pC/frXixMmT96X9+dz+Dw+l8/nOrgerst/nf7r9wvQL0GwZWFFaGVo
y64iMgRJhkC9fvllvqlnqf4dNQ/+w4NOjilC797ZOpEPmGSKR5QkZzyilFqWVpaSMK1I/MIMlSb4hWQZ
O5bTqAtVr175Rl4vv7zbjPE9+2yOats2x7Ts4OGHt5b+Pz/n97yO1/N3/D3vw/tJnxN6Lf7r9F+/JMJQ
GVoh2rKKJUS/FKMJEahP6lWqb0fyiChH26WW/siRfEgm290mwUITD6KL8rhOaI+vvvKYM8dj9uzjWgQe
M2d6zJhRxvTpx7VEypg6tTxTppQxebLMl19WH9L7g/86Qq/Rf/3cj//+7D3bMqA8bNnYsrJlRzlWRIhg
64v6c1IMLp4cM8LlyC+cHINPjx6ZasyYvTohj5a2REKT0SaqX5RWlra1E0uW8QjT4hcPhIoJ/OKqKtL7
h16D//r81y2JMB4ZRhMihNaBrRvqifqi3qT6dAQH/EcjMUyOr7666qSTY+rAM3aHDdupE/lwaSJWVJR+
WVoZSLKUhOmXZqg4wS8nCJVXVQh979DP9l+X/3pDRQihMoRIMgR/eYaWtb8eqBfqh3qS6s8RPGwDMUyO
HTsuPyT9gSPYUJkffLC5XJfbEpq8IIkSQmXpb1lCNGFa/CICv6T8hMosHqT3gdDPDL0m//XKIowuQ4gk
Qwgt70mT9pv6YFGxVF+O4EIudeq04liYHP/xj/m5uvWoX+RIVd56i9bkDi2ConJJaxM3FJv00WQZTZhg
hRMqTkuorEIJlZsf6fV+pM/zX0/otUoihNB795eLVG6hZUt5U+7duq0T68WROnTosKgwVI7nPvPM7O2v
vLJKOVIfKrl37yw1evQeLYLDasmS4nKEJrckAL8gwC8Pv1g8rHjKEyonP36JxUL6e4v0uVxP6DX6rz/0
3qT7Dy2j0DKkXMeM2WPKmfKW6sGRejz77Jydfjn+t+b3jz76xZrOnVeKf+BIXUjc99/PVmPH7tWSOBKW
5BAqApCEESoV8EvHEiqmMjxxSUKLhf1b+X3l65CuV7ov6f6lcqL8KEfK0wkxHVmptAfX0Vj0y/F3d901
YnqnTtIfONIFxlVYSsJhqTNmFIoCAEkWIInFIonIjySvyiK9vx/p+izSfYFUDkA5UV52CY5Uro70AP/d
eefwGfjQ82Kduv+lObtRo94fv/yyaznWJngo06BB2xQPBGPJiSQHP5JULJKIIiEJLRbS+0RCuj6LdF9+
KAfKg3KhfKRyc6Qn+O/aa3sNwYeeF+vU/Q/Nmeef3+6fL764THXuLP+hI72hm8gzSQYP/tocgMBSlCVL
jsfF4sUVZ9Gi+JH+PhbSdUpwn9wv9839u+5y7QTv4b+//vX5jtqHZ2n+Ezl+X/N/69a94va2bRfqF7nW
o8OD2e9+/baYbuWkSfkVEmYsJKFFQvr7ysD1cx/cD/fF/Un37ah94D38hwfxoefFOnX/XXOG5ormzb/c
17HjCvGPHQ7gnEFmaHkkKDs/OBxj1qxDuoVHt1SWUk3CdXA9XBfXx3VyvVy3dD8OB+C95s2/2IcHS3yo
vVin7nc1p2rq/f3vH87+xz9c19pROd58c605ZaZ//63qk09y1Kef7lbjxuUaUfFwqFmzitS8eUcUB7pK
YosEr+fv+Hveh/fjfXl/PofP43P5fOm6HI5o4Du8p/03S3vwohIfai/WqfttzY805517btvuTzwx31iU
ZqbDkUgY3+MUlEjwe+nvHI7qBN/hPfyHB0t8qL1Yp+63NCznOed73/vdnffcM/X4Sy8tF9/E4XA40g18
16zZ1OP4Dw+W+FB7sU5dMJMymmuuvPLDZc88s0h16iS/kcPhcKQLeA7f4T38V+JBfKi96Mnx/2h+qrn4
zDMf6nb//TPVP//pWo8OhyO9wXMtWsxSeA//lXgQH5bKkXHHH2r+9O1v/+z2664bk//ss6716HA40hf8
hue07w7gPfxX4kF8WCpHxh1ZDP4bzbXnntv+0/vuc61Hh8ORvuA3PPeHP7w4Cu+V+A8P4sNSOYLtWl/0
7/9+9kMNG4490rbtAjdz7XA40g68xqJvPIfv8F6J/0q61OXlSFOS48t+r7n5D3/oMOHOO6eqf/xjqete
OxyOtAGf4TX8hufwXYn38F9Jl7q8HGlKfk/D6vDL/+3fznzkyitHHHzooTmm+ckbOhwOR6qDz/AafsNz
+K7Ee/ivpEtdXo7wHQ0LIBmYvPU3v2n98Q03TFJPPbVQvfzyCvGDHA6HI1XAY/gMr515ZmtO4Lm1xHd4
D//5fFjuH8aarPH5pYY9hi0vuKBP1u23T1HPP7/Y9NM7dXI4HI7UA3/hMXymvZaN30o8h+/wnq/VCOX+
YbCtxz9qmvzP/9TveOWVo4ubN59h+ulOkA6HI9XAW/jr3ntn6O706OIf/vDSTvitxHNCqxHCflA69ni6
5hLNvb/+desR11wzXrVqNUt16LDMCdLhcKQM+Apv4S88hs/wWonf8FzIWKMl7AcGLMrMDSfiNtI8ct55
by5r2HCCevjhOeqll5wgHQ5H8MFT+Apv4S/tseX4rMRr+A3PCa1GEH9oLPpvmp9o/lfT9Lvf/eWzF17Y
b0ejRhOdIB0OR+DxixFv4a/vfvdXz2mf3VbiNfyG54RWI4g/NLDeh9Xiv9Bcqmn+H//xp44XXfRxPh/0
4IOzdVPVjUE6HI7ggZfwE57CV3gLf+GxEp/hNfzmW9cYivjDUmz3mmcqcGJFqx/+8NI369cfWnjttRNU
y5az3CSNw+EIFPgIL+EnPIWv8Bb+KvHYbzVRutMW8Yel0NxkO80pGh50fb3m4R/96MoeF100pJDBzWbN
pqvnnltsFlZyUQ6Hw5Es8BA+wkv4CU/hK7xV4i88hs/wWoTutEX8YTl4A54zQ/+cU3Jv0rT+7//+W9d6
9QblNmjwmWradLJ68sn5pn/PIkvpoh0OhyNR4B38g4fwEV7CT3gKX5V4C3/xCAR8FkOMIP4wDPrlTHf/
THO+hvVBrb/3vd+/8re/fZBzxRVjVePGn6sHHpitXnhhiWtFOhyOGgPf4B38g4fwEV7CT3iqxFd4C3/h
sSjjjH7EH4rwhqwi/7nmrxo+8NHvfOeMl/74x1eXXHbZGNOMveOOqdreC8y6IteKdDgciQK/4Bl8g3fw
Dx7CR3gJP5V4Cl/hLfwVpxhB/GFEGMBkhocPYir8Rg3H/Tz/i1/cN6J+/RHHsPZ11000K9GfeWahmTF6
+WVakg6Hw1F18AlewS94Bt/gHfzzi1/czwLv50u8hJ/wFL7CWzEmYEIRfxgR+ul8AAamifpnzXUa9ig+
+9//fUH388/vtfnSS8eoK6/8zGzuvu++GerppxeoF19cqpu/tCblG3Y4HI5I4A38gUfwCV658cZJxjP4
Bu/84Af1eHrgsyU+wkv4CU/hK7wVxzijH/GHMbFjkEzSnKu5WtNM86TmxV/96oExF100pMBKknGAe+6Z
ptq0mateeGGxGTh1onQ4HNGwQsQXeAN/4BF8YqWIZ/AN3inxDx7CR3gJP1VgjDEU8YdxwQcy68OmbdZB
sk+xqYYp83bf/e6vXjn77Oem168//Ag3cfnlY82ao1tu+dJYnxt97rlF5pvAL0uLVFgOhyP98Oe9lSFe
wA94Al/gDfyBR/AJXjn77HbT8Qy+KfEO/sFD+Agv4adKihHEH8YNzVTWC/GcV1ac079nzyKbup/QtP+3
fzvztbPOajtFG/4gNwWMD1x77Xh1001fmNN4W7acqR57bK7isQzt2i1S7dsvMYXDuAIF5XA40g/ymzwn
38l78h8P4AO8gB/wBL6w7sAj+ASv4JcSz+AbvIN/8BA+imMdYyzEH1YI/zgkzVg2c2NvZono+z+laf+t
b53a8bTT7vjkvPO6r7vkkpEn7M0yu8TNM9N0/fWfq5tv/kLddttkUzh33z3NLOaE5s0dDkc6YHOa/CbP
yXfynvzHA/gAL1hH4Au8gT/wCD4p8Qp+wTP4Bu/gn0qOL0qIP6wUNF/ZxM22HI4B4pw0DpLkpF1uAsMz
i/SSbgp3OeOMe0b84Q+dl1x44cC9l146urQgHA5HbWe0wgv4AU/gC7xR4g88gk/wCn7BM/gG7+CfKnSj
QxF/WGlsK5JBUPr8nLDLEeQ8o4GH2ND8Ze3R05oXNB00L3//+39467TTbh965plPTP7jH19d9te/9t5a
r96gvIsvHnbY38p0OBzpAXlNfpPn5Dt5T/7jAXyAF0r8gCfwBd7AH3gEn+AV/IJn8E01tRb9iD+sMv6u
NhfPw2t4uhePP+T5sBwZdJ+GQVRmmJh+pxCYceIbgoKh+cxpvZ1LYODV4XCkPjanyW/ynHwn78l/PIAP
8AJ+wBP4Am/gDzyCT/BKNXahJcQfVhv+liTNXp4Ly4OzaQpzo0y5s+fxTg3fCg9oOIiyjYbC4RvjGQ2F
BZzF5nA4Uheby+Q1+U2ek+/kPfmPB/ABXsAPeAJf4A38gUcS1FIMRfxhtcNNMBbADBIr1X+o4UZ/pTlH
w2LNehqayxwpxOkZNJ8ZV7hdc4eGAnM4HKkP+Uxek9/kOflO3pP/eAAf4AX8gCfwBd7AH3gkwVK0iD9M
KH5R8g3wXxqayJyWwcAqBXKmhtmn32lYzMkxQw6HI30gr8lv8px8J+/JfzyAD/ACfqhhIfoRf1ijWFl+
V8NsEwXCtwSFw3olmtEOhyP9IL/Jc/KdvCf/8UCSZOinbp3/D6vHlZdzyw3fAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="Timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">

View File

@ -61,6 +61,11 @@
<Compile Include="myUpdate\LiveUpdate_EventArgs.cs" />
<Compile Include="myUpdate\LiveUpdate_Delegate.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="myUpdate\frmStartUpdate.resx">
@ -69,6 +74,10 @@
<EmbeddedResource Include="myUpdate\frmUpdate.resx">
<DependentUpon>frmUpdate.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\MyDb\MyDbV4.csproj">