copy/paste from playground

This commit is contained in:
Ulf
2013-06-12 21:59:58 +02:00
commit f3b8ed6aa8
26 changed files with 2359 additions and 0 deletions

BIN
2 client example.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

235
MainForm.Designer.cs generated Normal file
View File

@@ -0,0 +1,235 @@
using System;
//using System.Collections.Generic;
//using System.ComponentModel;
//using System.Drawing;
//using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
namespace PreviewToy
{
partial class PreviewToyMain
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>s
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PreviewToyMain));
this.option_hide_active = new System.Windows.Forms.CheckBox();
this.option_hide_all_if_not_right_type = new System.Windows.Forms.CheckBox();
this.option_unique_layout = new System.Windows.Forms.CheckBox();
this.option_sync_size = new System.Windows.Forms.CheckBox();
this.list_running_clients = new System.Windows.Forms.ListBox();
this.label1 = new System.Windows.Forms.Label();
this.option_always_on_top = new System.Windows.Forms.CheckBox();
this.option_show_thumbnail_frames = new System.Windows.Forms.CheckBox();
this.forum_url = new System.Windows.Forms.LinkLabel();
this.previewToyMainBindingSource = new System.Windows.Forms.BindingSource(this.components);
this.option_sync_size_x = new System.Windows.Forms.TextBox();
this.option_sync_size_y = new System.Windows.Forms.TextBox();
((System.ComponentModel.ISupportInitialize)(this.previewToyMainBindingSource)).BeginInit();
this.SuspendLayout();
//
// option_hide_active
//
this.option_hide_active.AutoSize = true;
this.option_hide_active.Checked = true;
this.option_hide_active.CheckState = System.Windows.Forms.CheckState.Checked;
this.option_hide_active.Location = new System.Drawing.Point(12, 12);
this.option_hide_active.Name = "option_hide_active";
this.option_hide_active.Size = new System.Drawing.Size(81, 17);
this.option_hide_active.TabIndex = 1;
this.option_hide_active.Text = "Hide Active";
this.option_hide_active.UseVisualStyleBackColor = true;
this.option_hide_active.CheckedChanged += new System.EventHandler(this.option_hide_active_CheckedChanged);
//
// option_hide_all_if_not_right_type
//
this.option_hide_all_if_not_right_type.AutoSize = true;
this.option_hide_all_if_not_right_type.Checked = true;
this.option_hide_all_if_not_right_type.CheckState = System.Windows.Forms.CheckState.Checked;
this.option_hide_all_if_not_right_type.Location = new System.Drawing.Point(12, 35);
this.option_hide_all_if_not_right_type.Name = "option_hide_all_if_not_right_type";
this.option_hide_all_if_not_right_type.Size = new System.Drawing.Size(210, 17);
this.option_hide_all_if_not_right_type.TabIndex = 2;
this.option_hide_all_if_not_right_type.Text = "Hide all if active window not EVE client";
this.option_hide_all_if_not_right_type.UseVisualStyleBackColor = true;
this.option_hide_all_if_not_right_type.CheckedChanged += new System.EventHandler(this.option_hide_all_if_noneve_CheckedChanged);
//
// option_unique_layout
//
this.option_unique_layout.AutoSize = true;
this.option_unique_layout.Checked = true;
this.option_unique_layout.CheckState = System.Windows.Forms.CheckState.Checked;
this.option_unique_layout.Location = new System.Drawing.Point(12, 81);
this.option_unique_layout.Name = "option_unique_layout";
this.option_unique_layout.Size = new System.Drawing.Size(161, 17);
this.option_unique_layout.TabIndex = 3;
this.option_unique_layout.Text = "Unique layout for each client";
this.option_unique_layout.UseVisualStyleBackColor = true;
this.option_unique_layout.CheckedChanged += new System.EventHandler(this.option_unique_layout_CheckedChanged);
//
// option_sync_size
//
this.option_sync_size.AutoSize = true;
this.option_sync_size.Checked = true;
this.option_sync_size.CheckState = System.Windows.Forms.CheckState.Checked;
this.option_sync_size.Location = new System.Drawing.Point(12, 104);
this.option_sync_size.Name = "option_sync_size";
this.option_sync_size.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.option_sync_size.Size = new System.Drawing.Size(113, 17);
this.option_sync_size.TabIndex = 4;
this.option_sync_size.Text = "Syncronize Resize";
this.option_sync_size.UseVisualStyleBackColor = true;
this.option_sync_size.CheckedChanged += new System.EventHandler(this.option_sync_size_CheckedChanged);
//
// list_running_clients
//
this.list_running_clients.FormattingEnabled = true;
this.list_running_clients.Location = new System.Drawing.Point(12, 164);
this.list_running_clients.Name = "list_running_clients";
this.list_running_clients.Size = new System.Drawing.Size(303, 108);
this.list_running_clients.TabIndex = 6;
this.list_running_clients.SelectedIndexChanged += new System.EventHandler(this.list_running_clients_SelectedIndexChanged);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(9, 147);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(84, 13);
this.label1.TabIndex = 7;
this.label1.Text = "Running Clients:";
//
// option_always_on_top
//
this.option_always_on_top.AutoSize = true;
this.option_always_on_top.Checked = true;
this.option_always_on_top.CheckState = System.Windows.Forms.CheckState.Checked;
this.option_always_on_top.Location = new System.Drawing.Point(12, 58);
this.option_always_on_top.Name = "option_always_on_top";
this.option_always_on_top.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.option_always_on_top.Size = new System.Drawing.Size(92, 17);
this.option_always_on_top.TabIndex = 8;
this.option_always_on_top.Text = "Always on top";
this.option_always_on_top.UseVisualStyleBackColor = true;
this.option_always_on_top.CheckedChanged += new System.EventHandler(this.option_always_on_top_CheckedChanged);
//
// option_show_thumbnail_frames
//
this.option_show_thumbnail_frames.AutoSize = true;
this.option_show_thumbnail_frames.Checked = true;
this.option_show_thumbnail_frames.CheckState = System.Windows.Forms.CheckState.Checked;
this.option_show_thumbnail_frames.Location = new System.Drawing.Point(12, 127);
this.option_show_thumbnail_frames.Name = "option_show_thumbnail_frames";
this.option_show_thumbnail_frames.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.option_show_thumbnail_frames.Size = new System.Drawing.Size(142, 17);
this.option_show_thumbnail_frames.TabIndex = 9;
this.option_show_thumbnail_frames.Text = "Show Thumbnail Frames";
this.option_show_thumbnail_frames.UseVisualStyleBackColor = true;
this.option_show_thumbnail_frames.CheckedChanged += new System.EventHandler(this.option_show_thumbnail_frames_CheckedChanged);
//
// forum_url
//
this.forum_url.AutoSize = true;
this.forum_url.Location = new System.Drawing.Point(9, 278);
this.forum_url.Name = "forum_url";
this.forum_url.Size = new System.Drawing.Size(94, 13);
this.forum_url.TabIndex = 10;
this.forum_url.TabStop = true;
this.forum_url.Text = "Made by StinkRay";
this.forum_url.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);
//
// previewToyMainBindingSource
//
this.previewToyMainBindingSource.DataSource = typeof(PreviewToy.PreviewToyMain);
//
// option_sync_size_x
//
this.option_sync_size_x.Location = new System.Drawing.Point(131, 101);
this.option_sync_size_x.Name = "option_sync_size_x";
this.option_sync_size_x.Size = new System.Drawing.Size(42, 20);
this.option_sync_size_x.TabIndex = 11;
this.option_sync_size_x.TextChanged += new System.EventHandler(this.option_sync_size_x_TextChanged);
//
// option_sync_size_y
//
this.option_sync_size_y.Location = new System.Drawing.Point(179, 101);
this.option_sync_size_y.Name = "option_sync_size_y";
this.option_sync_size_y.Size = new System.Drawing.Size(42, 20);
this.option_sync_size_y.TabIndex = 12;
this.option_sync_size_y.TextChanged += new System.EventHandler(this.option_sync_size_y_TextChanged);
//
// PreviewToyMain
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(327, 300);
this.Controls.Add(this.option_sync_size_y);
this.Controls.Add(this.option_sync_size_x);
this.Controls.Add(this.forum_url);
this.Controls.Add(this.option_show_thumbnail_frames);
this.Controls.Add(this.option_always_on_top);
this.Controls.Add(this.label1);
this.Controls.Add(this.list_running_clients);
this.Controls.Add(this.option_sync_size);
this.Controls.Add(this.option_unique_layout);
this.Controls.Add(this.option_hide_all_if_not_right_type);
this.Controls.Add(this.option_hide_active);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Margin = new System.Windows.Forms.Padding(0);
this.MaximizeBox = false;
this.Name = "PreviewToyMain";
this.Text = "EVE Online previewer";
this.TopMost = true;
this.WindowState = System.Windows.Forms.FormWindowState.Minimized;
this.Load += new System.EventHandler(this.GlassForm_Load);
((System.ComponentModel.ISupportInitialize)(this.previewToyMainBindingSource)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private CheckBox option_hide_active;
private CheckBox option_hide_all_if_not_right_type;
private CheckBox option_unique_layout;
private CheckBox option_sync_size;
private ListBox list_running_clients;
private Label label1;
private BindingSource previewToyMainBindingSource;
private CheckBox option_always_on_top;
private CheckBox option_show_thumbnail_frames;
private LinkLabel forum_url;
private TextBox option_sync_size_x;
private TextBox option_sync_size_y;
}
}

342
MainForm.cs Normal file
View File

@@ -0,0 +1,342 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Diagnostics;
using System.Drawing.Text;
using System.Windows.Threading;
namespace PreviewToy
{
public partial class PreviewToyMain : Form
{
private Dictionary<IntPtr, Preview> thumbnails;
private DispatcherTimer dispatcherTimer;
private IntPtr last_known_active_window;
private Dictionary<IntPtr, Dictionary<IntPtr, Point>> layouts;
private Size sync_size;
private bool is_initialized;
public PreviewToyMain()
{
is_initialized = false;
thumbnails = new Dictionary<IntPtr, Preview>();
layouts = new Dictionary<IntPtr, Dictionary<IntPtr, Point>>();
InitializeComponent();
init_options();
// DispatcherTimer setup
dispatcherTimer = new DispatcherTimer();
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Interval = new TimeSpan(0, 0, 1);
dispatcherTimer.Start();
is_initialized = true;
}
private void GlassForm_Load(object sender, EventArgs e)
{
refresh_thumbnails();
}
private void init_options()
{
option_always_on_top.Checked = Properties.Settings.Default.always_on_top;
option_hide_active.Checked = Properties.Settings.Default.hide_active;
option_hide_all_if_not_right_type.Checked = Properties.Settings.Default.hide_all;
option_unique_layout.Checked = Properties.Settings.Default.unique_layout;
option_sync_size.Checked = Properties.Settings.Default.sync_resize;
sync_size.Width = (int)Properties.Settings.Default.sync_resize_x;
sync_size.Height = (int)Properties.Settings.Default.sync_resize_y;
}
private void refresh_thumbnails()
{
if (!is_initialized) { return; }
var sys_activeWindow = DwmApi.GetForegroundWindow();
Process[] processes = Process.GetProcessesByName("ExeFile");
List<IntPtr> processHandles = new List<IntPtr>();
// pop new previews
if (processes.Length > 0)
{
foreach (Process process in processes)
{
processHandles.Add(process.MainWindowHandle);
if (!thumbnails.ContainsKey(process.MainWindowHandle) && process.MainWindowTitle != "")
{
Size initial_size = new Size(64, 64);
if (option_sync_size.Checked){initial_size = sync_size;}
thumbnails[process.MainWindowHandle] = new Preview(process.MainWindowHandle, "-> " + process.MainWindowTitle + " <-", this, initial_size);
this.list_running_clients.Items.Add(process.MainWindowTitle + " ("+process.MainWindowHandle+")");
}
else if (thumbnails.ContainsKey(process.MainWindowHandle)) //or update the preview titles
{
thumbnails[process.MainWindowHandle].Text = "-> " + process.MainWindowTitle + " <-";
}
if (sys_activeWindow == process.MainWindowHandle)
{
last_known_active_window = sys_activeWindow;
}
}
}
// clean up old previews
if (thumbnails.Count > 0)
{
List<IntPtr> to_be_pruned = new List<IntPtr>();
foreach (IntPtr processHandle in thumbnails.Keys)
{
if (!(processHandles.Contains(processHandle)))
{
to_be_pruned.Add(processHandle);
}
}
foreach (IntPtr processHandle in to_be_pruned)
{
thumbnails[processHandle].Close();
thumbnails.Remove(processHandle);
layouts.Remove(processHandle);
this.list_running_clients.Items.Remove(processHandle);
}
}
if (thumbnails.Count > 0)
{
// is the active window an eve window?
bool active_window_is_right_type = false;
foreach (KeyValuePair<IntPtr, Preview> entry in thumbnails)
{
if (entry.Key == sys_activeWindow || entry.Value.Handle == sys_activeWindow || this.Handle == sys_activeWindow)
{
active_window_is_right_type = true;
}
}
// update the list selection
if (active_window_is_right_type)
{
int active_index = list_running_clients.Items.IndexOf(last_known_active_window);
if(active_index != -1)
{
list_running_clients.SetSelected(active_index, true);
}
}
else
{
list_running_clients.ClearSelected();
}
// hide, show, resize and move
foreach (KeyValuePair<IntPtr, Preview> entry in thumbnails)
{
if (!active_window_is_right_type && option_hide_all_if_not_right_type.Checked)
{
entry.Value.Hide();
}
else if (entry.Key == last_known_active_window && option_hide_active.Checked)
{
entry.Value.Hide();
}
else
{
entry.Value.Show();
if (option_sync_size.Checked && entry.Value.Handle != sys_activeWindow)
{
entry.Value.Size = this.sync_size;
}
if (option_unique_layout.Checked)
{
Dictionary<IntPtr, Point> layout;
if(layouts.TryGetValue(last_known_active_window, out layout))
{
Point new_loc;
if (layout.TryGetValue(entry.Value.Handle, out new_loc))
{
entry.Value.Location = new_loc;
}
else
{
// create inner dict
layout[entry.Value.Handle] = entry.Value.Location;
}
}
else if ((int)last_known_active_window != 0)
{
// create outer dict
layouts[last_known_active_window] = new Dictionary<IntPtr, Point>();
layouts[last_known_active_window][entry.Value.Handle] = entry.Value.Location;
}
}
}
}
}
}
public void set_sync_size(Size sync_size_)
{
if (!is_initialized) { return; }
if (option_sync_size.Checked)
{
this.sync_size = sync_size_;
option_sync_size_x.Text = this.sync_size.Width.ToString();
option_sync_size_y.Text = this.sync_size.Height.ToString();
}
}
public void set_preview_position(IntPtr preview_handle, Point position)
{
Dictionary<IntPtr, Point> layout;
if (layouts.TryGetValue(last_known_active_window, out layout))
{
layout[preview_handle] = position;
}
else if((int)last_known_active_window != 0)
{
layouts[last_known_active_window] = new Dictionary<IntPtr, Point>();
layouts[last_known_active_window][preview_handle] = position;
}
}
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
refresh_thumbnails();
}
private void option_hide_all_if_noneve_CheckedChanged(object sender, EventArgs e)
{
Properties.Settings.Default.hide_all = option_hide_all_if_not_right_type.Checked;
Properties.Settings.Default.Save();
refresh_thumbnails();
}
private void option_unique_layout_CheckedChanged(object sender, EventArgs e)
{
Properties.Settings.Default.unique_layout = option_unique_layout.Checked;
Properties.Settings.Default.Save();
refresh_thumbnails();
}
private void option_hide_active_CheckedChanged(object sender, EventArgs e)
{
Properties.Settings.Default.hide_active = option_hide_active.Checked;
Properties.Settings.Default.Save();
refresh_thumbnails();
}
private void option_sync_size_CheckedChanged(object sender, EventArgs e)
{
Properties.Settings.Default.sync_resize = option_sync_size.Checked;
Properties.Settings.Default.Save();
refresh_thumbnails();
}
private bool try_save_size_xy()
{
if (Properties.Settings.Default.sync_resize)
{
UInt32 x = 0, y = 0;
try
{
y = Convert.ToUInt32(option_sync_size_y.Text);
x = Convert.ToUInt32(option_sync_size_x.Text);
}
catch (System.FormatException)
{
return false;
}
if (y < 64 || x < 64)
{
return false;
}
Properties.Settings.Default.sync_resize_y = y;
Properties.Settings.Default.sync_resize_x = x;
Properties.Settings.Default.Save();
this.sync_size.Height = (int)Properties.Settings.Default.sync_resize_y;
this.sync_size.Width = (int)Properties.Settings.Default.sync_resize_x;
}
return true;
}
private void option_sync_size_x_TextChanged(object sender, EventArgs e)
{
if (try_save_size_xy()) { refresh_thumbnails(); }
}
private void option_sync_size_y_TextChanged(object sender, EventArgs e)
{
if (try_save_size_xy()) { refresh_thumbnails(); }
}
private void option_always_on_top_CheckedChanged(object sender, EventArgs e)
{
Properties.Settings.Default.always_on_top = option_always_on_top.Checked;
Properties.Settings.Default.Save();
foreach (var thumbnail in thumbnails)
{
thumbnail.Value.TopMost = Properties.Settings.Default.always_on_top;
}
}
private void option_show_thumbnail_frames_CheckedChanged(object sender, EventArgs e)
{
Properties.Settings.Default.show_thumb_frames = option_show_thumbnail_frames.Checked;
Properties.Settings.Default.Save();
foreach (var thumbnail in thumbnails)
{
if (Properties.Settings.Default.show_thumb_frames)
{
thumbnail.Value.FormBorderStyle = FormBorderStyle.SizableToolWindow;
}
else
{
thumbnail.Value.FormBorderStyle = FormBorderStyle.None;
}
}
}
private void list_running_clients_SelectedIndexChanged(object sender, EventArgs e){}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
string url = "https://forums.eveonline.com/default.aspx?g=posts&t=246157";
ProcessStartInfo sInfo = new ProcessStartInfo(new Uri(url).AbsoluteUri);
Process.Start(sInfo);
}
}
}

703
MainForm.resx Normal file
View File

@@ -0,0 +1,703 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="previewToyMainBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
Fv81LSP/GBIK/yQZDf9BLRr/VTog/0AwHP8yJhv/YVVP/2VVRf+ATBb/gEwW/z40Jv8ZEwv/IhYM/0Es
GP9TOSD/QzEd/zMnHP9dUUn/VUg7/4JPF/+CUBf/f0sV/n9MFv84Lyb/KiUe/0A1Kf9gRCj/dVM2/zcq
HP89Ni//JCEb/z80Kf9/Sxb/f0wW/0M3Kv8rJx//Ni4l/19EKf90VTf/OCob/0U7M/8nIhz/Mywj/4JP
Fv+CUBb/fksV/n9LFv84MCf/QD05/2peUv+CXj3/19LO/0c4Kv9bWE//R0RA/0Q6Lv9/Sxb/f0sW/0Q5
Lv9CPzv/bF9U/31dPf/Iwbv/STou/2ljV/9FQz7/OTIo/4JPFv+CTxb/fkoV/n9LFf81Lyj/dnV0/6Wd
l/+4oYv/VkU1/6aflv/QzMP/kYyF/09DM/9/SxX/f0sV/z82K/95eXf/p5+Z/8m3p/9aSDf/gndn/8jB
tf+RjIT/RTsv/4JPFv+CTxb/fkoU/n5LFf8uKCH/HhsY/0U5Lf+MaEj/b1U8/047Jv+MeFT/uqaI/2JW
R/9+SxX/fksV/zowJv8eGxj/Ny8l/4hmR/9xVz3/Szol/35qSP+8q4v/U0w+/4FOFv+BTxb/fUoU/n5K
Ff8rJR7/Kycj/zEsJ/9dTj7/k3NT/513UP+ugkv/zo9K/553Tv9+ShX/fkoV/zkwJv8tKST/Mi0n/1hL
PP+RclP/nXdR/62AS//Bi0n/jmtI/4FOFv+BThb/fUkU/n5KFf9YNhT/RTsv/1BEOP9TSD3/Y1ZI/2xc
Sv95YEj/X005/2hBFv99SRX/fkoV/2I8E/9FOi//T0Q4/1NJPP9iVUn/b11L/3ZdR/9hTTn/Xj0X/4BO
Fv+BThb/fUgU/n1JFP57SRb+c0cb/nJHGv5xRhn+cEUZ/nBGGv5zSBv+eEoa/n5LFf59SRT+fUkU/ntJ
Ff5yRxv+ckca/nFGGf5wRRn+cEYa/nNJG/53Sxr+f00W/oBNFf6ATRX+fUkQP31JED99SRA/fUkQP31J
ED99SRQ/fUkUP31JFD99SRQ/fUkUP31JFD99SRA/fUkQP31JED99SRA/fUkQP31JFD99SRQ/fUkUP31J
FD99SRQ/fU0UP31NFD99TRQ/////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB9SRQ/fUkUP31J
FD99SRQ/fUkUP31JFD99SRQ/fUkUP31JFD99SRQ/fUkUP31JFD99SRQ/fUkUP31JFD99SRQ/fUkUP31J
FD99SRQ/fUkUP31JFD99SRQ/fUkUP31JFD99SRQ/fUkUP31JFD99SRQ/fUkUP31JFD99SRQ/fUkUP31J
FD99SRQ/fUkUP31JFD99SRQ/fUkUP31JFD99SRQ/fUkUP31JFD99SRQ/fUkUP31JFD99SRQ/fUkUP31J
FD99SRT/fkoV/35KFf9+ShX/fkoV/35KFf9+ShX/fkoV/35KFf9+ShX/fkoV/35KFf9+ShX/fkoV/35K
Ff9+ShX/fkoV/35KFf9+ShX/fkoV/35KFf9+ShX/fkoV/35KFf9+ShX/fkoV/35KFf9+ShX/fkoV/35K
Ff9+ShX/fkoV/35KFf9+ShX/fkoV/35KFf9+ShX/fkoV/35KFf9+ShX/fkoV/35KFf9+ShX/fkoV/35K
Ff9+ShX/fkoV/35KFf9/SxX/gU0V/4FNFf+BTRX/gU0V/4FNFf+BTRX/gU0V/4FNFf+BTRX/gU0W/4FO
Fv+BThb/gU4W/4FPFv+BTxb/gVAW/4FQFv+CUBb/glAW/4JQFv+CUBb/gE0V/4FNFf+BTRX/fkoV/35K
Ff9+ShX/fkoV/35KFf9+ShX/fkoV/35KFf+BTRb/gU4W/4FOFv+BThb/gU8W/4FPFv+BTxb/gVAW/4JQ
Fv+CUBb/glAW/4JQFv+CUBb/glAW/4JQFv+BTRX/gk4W/4JOFv+CTxb/gk8W/4JPFv+CTxb/gk8W/4JP
Fv+CTxb/gk8W/4JPFv+CUBb/glAX/4NQF/+DURf/g1EX/4NRF/+DURf/g1IX/4NSF/+EUhf/gU4W/4FO
Fv+BThb/gEwV/35KFf9+ShX/fkoV/35KFf9+ShX/fkoV/35KFf9+ShX/gE0V/4JQFv+CUBf/g1AX/4NR
F/+DURf/g1EX/4NRF/+DUhf/g1IX/4RSF/+EUhf/hFIX/4RSF/+BTRX/gU4W/4JOFv+CThb/fE0X/2VB
F/9jPRH/ZD0R/2Q9Ev9kPhT/ZD4U/2M/FP9kQBT/ZD4U/2M/E/9kPhL/ZD8S/2Q/Ev9rRhv/gE8X/4NR
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
z//Av73/ra2r/52dnP8hHRX/XEk1/4JPFv+CTxb/gk8W/4JPFv9+ShX/f0sW/39LFv9RRDb/GhUQ/5SV
lf9CPz3/Z19X/4V3av+DZUf/+Pb2/1hEMf80KyH/9/f2/5GFdf/Ox7v/eHBk/2RdUv9mYVb/MCsf/2xM
J/+CTxb/f0sV/39LFf9/SxX/f0sW/2FGKv8eGRT/oqOk/z47N/9ZVVD/gXJl/39kSv/n39j/aE41/zIr
If/4+Pf/V0Qr/+Hb0v+BeWv/aGFW/2NeUv8zLB//XUk0/4JPFv+CTxb/gk8W/4JPFv9+ShX/f0sV/39L
Fv9OQjT/GBQQ/yspJf8sKSf/Rj44/3ViT/+GZUT/uIle/2VOOP86MCX/ST0x/19KKv/CpoP/koRq/3Nm
UP9eVEP/PTUp/2xMJ/+CTxb/f0sV/39LFf9/SxX/f0sW/19FKf8cGBX/LCkm/y0pJ/8yLy3/dWJP/35i
RP+yh1//clc8/zsxJ/9HOi3/UkAk/6uJYf+uoor/dWlT/2JXRf9DOir/XUoz/4JPFv+CTxb/gk8W/4JP
Fv9+ShT/f0sV/39LFf9LQDH/GRUR/xwZFv8eGxn/KiQe/2lSPP98YET/s4BT/3ZaPv89NCf/Rjcl/zQq
Gf9hUTH/lYZf/6GPaP91alL/SEI0/2xNKf+BTxb/fksV/35LFf9+SxX/f0sV/15EJ/8cGRb/HBkV/x0a
GP8eGxf/ZlE8/3VbQf+oelD/iGVE/0M4K/9LOyn/MCgY/1lJLP+Gd1H/tKN+/31wV/9VTDv/Xks2/4FP
Fv+BTxb/gk8W/4JPFv9+ShT/fksV/35LFf9JPS7/GhYR/yMfG/8mIh7/KCQe/1xLO/9qUj3/mnRR/6F4
T/9ZSDn/TT4t/19HK/9YSCz/hXFN/9zJoP/KwKv/bGlf/3BQLv+BTxb/fksV/35LFf9+SxX/fksV/1xC
Jf8cGRX/Ix8b/yUiHv8oJB7/UEI1/2tTPf+PbU3/qHtQ/2JPPP9HPCz/Ykku/1NDKP98aUT/xbKP/9bJ
sf+Ig3b/ZFM//4FPFv+BTxb/gU8W/4JPFv99ShT/fksV/35LFf9GOyz/IRwY/yglIf8sKCT/NS4o/zUu
Kf9vWUb/c19J/6Z9V/+nflj/gmVI/2lTOf93WTr/f184/3ZRKv/bi0v/soRW/4lgNP+BThb/fkoV/35K
Ff9+SxX/fksV/1pAJP8gGxj/KSYi/yomI/81Lij/Lykl/2ZTQf9xXUj/mHRS/6+DWv+Ma03/Z1M5/3RY
Ov9/Xjn/dlUv/8t+QP/Wm1//j21J/4FOFv+BThb/gU8W/4FPFv99ShT/fkoV/35LFf9KPS3/GBUS/zUx
Lf8yLSn/NTAr/zIvKf8yMCz/b15M/3ViTf+TdVf/yZZl/+WnZ//op17/7bBf//S9Zv/yxXT/k2c8/4NY
LP+BThb/fkoV/35KFf9+ShX/fksV/11CJP8XFRL/NzMv/zArJ/81MCv/MzEq/y8tKf9jVUb/dmNP/4tw
VP+/kGP/46do/+imXf/sr1//8rpk//TCcP+sfEf/hmA7/4FOFv+BThb/gU4W/4FPFv99SRT/fkoV/35K
Ff93Shv/BwUD/zo3NP9VUU3/U1BL/1ZSTf9aV1L/VVRS/2djXf+QgnX/jHxt/457aP+ggGf/ooBm/5J3
Yv9EOzD/HxcN/3xOG/+AThb/fkkV/35KFf9+ShX/fkoV/3lKGf8RDQj/Kykl/1JPS/9TT0v/VlJN/1lW
Uf9WVVL/X15Z/41/c/+RgHH/inpo/5x+Zv+kgmj/lnhi/1xOQf8VDgf/ek4f/4BOFv+BThb/gU4W/4FP
Fv99SRT/fkoV/35KFf9+ShX/dkkZ/04/MP9NPzP/TD8z/0o8MP9FOCz/RDcr/0E0KP9BNCn/QDQo/0E3
K/9GOy3/TkM0/1NGNf9bRy7/fEsY/4BOFv+AThb/fkkV/35JFf9+ShX/fkoV/35KFf95SRf/VEAt/00/
NP9MPzP/Sj0x/0Y5Lf9ENyv/QTUo/0E1Kf9ANCj/QTcr/0U6LP9MQTP/UkU1/1dGMv94Shr/gE4W/4BO
Fv+BThb/gU4W/4FOFv99SRT/fkkV/35KFf9+ShX/fkoV/35KFf9+SxX/fksV/35LFf9+SxX/fksV/35L
Fv9+Sxb/f0sW/39MFv9/TBb/f0wW/39MFv+ATRb/gE0W/4BNFv+AThb/fUkV/35JFf9+SRX/fkoV/35K
Ff9+ShX/fkoV/35LFf9+SxX/fksV/35LFf9+SxX/fksW/35LFv9/Sxb/f0wW/39MFv9/TBb/f0wW/4BN
Fv+ATRb/gE0W/4BOFv+AThb/gU4W/4FOFv99SBT/fkkV/35JFf9+ShX/fkoV/35KFf9+ShX/fksV/35L
Ff9+SxX/fksV/35LFf9+SxX/fksW/35LFv9/TBb/f0wW/39MFv9/TBb/gE0W/4BNFv+ATRb/fUkV/31J
Ff99SRX/fkkV/35KFf9+ShX/fkoV/35KFf9+SxX/fksV/35LFf9+SxX/fksV/35LFf9+Sxb/fksW/39M
Fv9/TBb/f0wW/39MFv+ATRb/gE0W/4BNFv+ATRb/gE4W/4BOFv9+ShX/f0sV/4BLFf+ASxX/gEwV/4BM
Ff+ATBX/gEwV/4BNFf+ATRX/gE0V/4BNFf+ATRX/gE0W/4BNFv+BThb/gU4W/4FOFv+BThb/gU8W/4FP
Fv+BTxb/f0sV/39LFf9/SxX/f0sV/4BMFf+ATBX/gEwV/4BMFf+ATBX/gE0V/4BNFf+ATRX/gE0V/4BN
Ff+ATRb/gE0W/4BOFv+BThb/gU4W/4FOFv+BTxb/gU8W/4JPFv+CTxb/glAW/4JQFv+ATRX/gU4W/4FO
Fv+BThb/gk4W/31NF/9qRBj/Zz8S/2g/Ev9oPxL/aEAT/2hAFP9nQRT/aEIU/2hBFP9nQRP/aEAT/2hB
E/9oQRL/bUcZ/39PF/+DURf/gU0W/4FOFv+BThb/gU4W/4JOFv9/Thb/bEUZ/2c/Ev9oPxL/aD8S/2hA
E/9oQBT/Z0EU/2hCFP9oQRT/Z0ET/2lAE/9oQRP/aEES/2xGGP9+Thj/g1EX/4NSF/+EUhf/hFIX/4RS
F/+ATRX/gU0W/4FOFv+BThb/gE4X/yIXC/8aEAX/HxUK/x0UCf8dFAn/HBMI/xwSB/8gFQr/IBcK/yAW
Cv8iGAz/IxgN/yMaDv8jGg7/HBEG/zAgD/+AURj/gU0W/4FNFv+BThb/gU4W/4BOF/8vIRD/GA8E/x8V
Cv8dFAn/HRMJ/xwTCP8cEgf/HxUJ/yAXCv8gFgr/IhgM/yIYDP8jGg7/IxoO/x0SB/8kGAr/f1EZ/4NR
F/+DURf/hFIX/4RSF/+ATBX/gU0W/4FNFv+BThb/ZUks/xMOCv8jGA//HRQL/xgPCP8XDgf/GxAH/yga
C/8vHxD/Kx0Q/zEgEv8yIxT/MyUW/zElF/8zKBz/PzMm/yIcFf9qTSr/gU0W/4FNFv+BTRb/gU4W/2xK
J/8YEw//IhgP/x0UC/8YDwj/Fw4H/xsQB/8kGAr/LyAQ/yweEP8xIBL/MiMU/zMlFf8xJRf/Mygb/z0x
JP8gGRL/Yksx/4NRF/+DURf/g1EX/4NSF/+ATBX/gU0W/4FNFv+BTRb/V0Qv/xgTDP8ZEgz/IhYM/xsT
Cf8aEQf/HhQJ/zklFP8xIRL/OykW/0AuGv8/Lhz/NCcY/zMpHv8/NCf/UEU5/zguJP9mSyz/gU0W/4FN
Fv+BTRb/gU0W/2FHKP8dFxH/GRMM/yMXDP8aEwn/GxII/x0TCf85JRT/MiIT/zkoFf9ALRr/QS8c/zUo
Gf8zKR3/PjMm/09EOf89MSb/XUoy/4NQF/+DURf/g1EX/4NSF/+ATBX/gE0W/4BNFv+BTRb/V0Qu/xoU
Dv8ZEwv/FxEK/ysfEv8bEwn/PisY/z4pGP9HMRr/Tzcg/1E6Iv86LBr/LyQY/zcsI/9KPjX/Y1hN/1NI
PP9rTzD/gEwW/4BNFv+ATRb/gU0W/2FGKP8fGRP/GhMM/xYRCv8tIRT/GxIJ/zkoFv8/Khj/RC8Z/002
H/9UPCP/Oiwa/y8lGP81KiH/SDsz/2BVSv9cT0H/ZE84/4JQF/+DUBf/g1EX/4NRF/9/TBX/gEwW/4BN
Fv+ATRb/WEQv/x0YD/8bFA3/GRML/x0VDf88Jxj/RzIe/0gyG/9ePyT/ZkYo/0YzH/83KBn/MCMW/zov
Jf9ZTUr/jIF8/2teUv9wUzP/gEwW/4BMFv+ATBb/gE0W/2JGKP8hGxP/GxUN/xkTC/8dFQ3/OCQV/0cy
Hv9HMRv/XD4j/2hHKP9INCD/OSkZ/zAjFv85LSP/VUhF/4Z7df93al3/a1Q8/4JQF/+CUBf/glAX/4NR
F/9/SxX/gEwW/4BMFv+ATBb/WkYx/yIaEf8eGBD/GxUN/xcSCv9LOCT/Ujkh/15CJv95Ui//ZEUo/zwt
G/8yJRb/NCcc/zsuKv9SRj3/Lycg/yIcF/9kSSv/gEwW/4BMFv+ATBb/gEwW/2NHKv8lHRX/HhkR/xsV
Df8XEgr/QzMg/1Y8I/9aPyX/dlAt/2lJKv8+Lxz/MSQV/zUoG/84LCf/VEY+/zIqI/8hGhX/W0gy/4JP
F/+CUBf/glAX/4JQF/9/SxX/f0wW/4BMFv+ATBb/XEgy/yQcE/9ST0v/U1BN/1dVUP96b2T/Tjgo/3dR
L/+UcVP/aVdF/zUmGP8/Niv/bGNd/31zaf9OTUz/VVNN/yEcFf9kSiv/f0sW/39MFv+ATBb/gEwW/2VJ
K/8mHxb/Uk9L/1JPTP9TUU7/eG1i/1hENf91UC7/kmxL/3hnVv83Jxj/MScc/2xkXf96cWj/T05M/1RT
Tv8fGhP/W0ky/4JPF/+CTxf/glAX/4JQF/9+SxX/f0sW/39MFv9/TBb/XEkz/yEbEv9xcG7/MS0p/0Q+
Of9rW0v/YUYu/49hOv/UyL3/trGs/zwsHP9IPzf/j4d//zg1Mf88ODT/Pjs3/yAbFf9lSiz/f0sW/39L
Fv9/Sxb/f0wW/2VKLP8kHhX/d3d1/zAsKP87ODX/alpJ/2RMNv+IXjj/yLOi/8TBvv85Kxv/LiMY/5iR
iv89OTP/PTk0/z05Nf8eGRL/XEkz/4JPFv+CTxb/gk8W/4JQF/9+ShX/f0sW/39LFv9/Sxb/W0gz/x4Y
Ev+dn5//rKys/76/vv/Qz83/clU4/62FYf+gj4D/p5mP/4+Def9cUEX/2trY/8bHxf+0tbP/pKWk/yIe
F/9lSi3/f0sV/39LFv9/Sxb/f0sW/2RJLP8gGxX/nJ6d/6qrqv+7vLz/z87M/4dwWf+jfFf/ua6k/4l1
Zv+nn5n/Oisd/9va2P/Iycf/tre2/6anpv8hHRX/XEk1/4JPFv+CTxb/gk8W/4JPFv9+ShX/f0sW/39L
Fv9/Sxb/WUUy/xwXEv+TlJT/Ozg1/1xVTv9/b2L/eVs8//Dt6f9gSTX/NS0i//b29f92aFT/083B/3Vt
YP9hWk7/YFtQ/zAqHv9mSiz/f0sV/39LFv9/Sxb/f0sW/2JHK/8eGRT/nJ2d/zk2Mv9UT0r/fW1g/31i
SP/m3tb/alA5/zMsIf/5+fn/VUMq/9zXzf98dGb/Y1xQ/19ZTv8yKx7/XUk0/4JPFv+CTxb/gk8W/4JP
Fv9+ShX/f0sV/39LFf9/Sxb/VUMw/xoWEv82MzD/ODU0/0pEQP9/bFv/gWJB/7mOZv9pUTn/OjAl/05C
Nv9cSiv/vJ97/5+Tev97b1v/Z11N/z83Kf9mSyz/f0sV/39LFf9/SxX/f0sW/19FKf8cGBX/NjMw/zg1
NP8/PDr/fmxb/4BkR/+2jWj/cVY8/zsxJv9LPjH/U0Il/7CRa/+yp5H/fHFd/2lfTv9DOir/XUoz/4JP
Fv+CTxb/gk8W/4JPFv9+ShT/fksV/39LFf9/SxX/U0Et/xoXE/8bGBX/HhsY/yUgG/9qUz3/eV5D/69+
Uv98XkH/PzYp/0g4J/8yKRj/YE4u/5OFXf+mlG//d2tT/01GN/9mTC7/fksV/35LFf9+SxX/f0sV/15E
J/8cGRb/GxgV/x0aGP8eGxf/ZlE8/3VbQf+oelD/h2RE/0M4K/9LOyn/MCgY/1pIKv+Mflf/saB6/3tv
Vv9UTDv/Xks2/4FPFv+BTxb/gk8W/4JPFv99ShT/fksV/35LFf9+SxX/UT8q/xsXE/8jHxv/JSIe/ycj
Hv9ZSjr/aFE8/5ZxT/+ieE//W0o5/0w9LP9gRyz/V0Yr/4l1Tv/XxZ//y7+o/3ZxZf9qUTT/fksV/35L
Ff9+SxX/fksV/1xCJf8cGRX/Ix8b/yUiHv8nIx7/UUQ2/2tTPf+QbU3/p3pQ/2BOO/9IOyz/Ykgu/1VD
Kf+EcEr/y7mX/9PEq/+Gf3L/Y1I+/4FPFv+BTxb/gU8W/4JPFv99ShT/fkoV/35LFf9+SxX/Tj0p/yEb
GP8oJCD/Kycj/zUuKP8xKyb/cFpF/3NeSP+ie1X/qH5Y/4JlSf9lUTj/d1o6/39gOf91Uiv/1odH/8GQ
Xv+LZj7/fkoV/35KFf9+SxX/fksV/1pAJP8gGxj/KSUh/yolIv81Lij/Likl/2hUQv9xXEf/mnVS/66B
Wv+HaEv/ZFA4/3VZOv9/Xzn/dVQu/82AQP/WnWP/j25L/4FOFv+BThb/gU8W/4FPFv99SRT/fkoV/35K
Ff9+SxX/UD4q/xkWEv81MCz/MCsn/zUxLP8yMCn/Ly0p/25dTP91YU7/knVX/8mWZv/mqGj/56Rc/+ut
Xv/0vGX/9cdy/6N0Q/+GXDP/fkoV/35KFf9+ShX/fksV/1tBJf8YFhL/NjEt/y8qJv81MSz/MzEq/y8t
Kf9nWEn/dmJP/41yVf/Dk2X/5ahp/+ekXf/rrV7/8rpj//XEb/+ygUr/h2E8/4FOFv+BThb/gU4W/4FP
Fv99SRT/fkoV/35KFf9+ShX/d0ob/wkHBP82NDD/WFVR/1ZSTv9YVE//XFlV/1dWVP9lY17/lYZ4/5OC
cv+Sf2v/pINp/6uHa/+cfWf/UkY5/xgRCv96Th3/fkkV/35KFf9+ShX/fkoV/3hKGv8OCwf/LSsn/1ZT
T/9WUk7/WFRP/1tYVP9YV1T/YWBb/5OEd/+XhHT/j35r/6KCaf+siGz/nn5n/2BTRP8SDAb/eU4f/4BO
Fv+BThb/gU4W/4FPFv99SRT/fkkV/35KFf9+ShX/fkoV/3JGF/9NPS3/Sj0y/0o9Mv9IOy//RDkt/0Q3
LP9BNSn/QDQq/0A1Kf9BNyz/RTst/0tBMv9PQzT/VUMt/3ZJGP+AThb/fkkV/35JFf9+ShX/fkoV/35K
Ff91Rxb/UD0r/0o9Mv9KPTL/SDww/0Q5Lf9ENyz/QTUp/0A1Kv9ANSn/QTcs/0Q6Lf9KQDL/TkM0/1NC
MP9zSBn/gE4W/4BOFv+BThb/gU4W/4FOFv99SBT/fkkV/35JFf9+ShX/fkoV/35KFf9+ShX/fksV/35L
Ff9+SxX/fksV/35LFf9+Sxb/fksW/39LFv9/TBb/f0wW/39MFv9/TBb/gE0W/4BNFv+ATRb/fUkV/35J
Ff9+SRX/fkoV/35KFf9+ShX/fkoV/35LFf9+SxX/fksV/35LFf9+SxX/fksW/35LFv9/Sxb/f0wW/39M
Fv9/TBb/f0wW/4BNFv+ATRb/gE0W/4BOFv+AThb/gU4W/4FOFv99SBT/fUkV/35JFf9+SRX/fkoV/35K
Ff9+ShX/fkoV/35LFf9+SxX/fksV/35LFf9+SxX/fksV/35LFv9+Sxb/f0wW/39MFv9/TBb/f0wW/4BN
Fv+ATRb/fUkV/31JFf99SRX/fkkV/35KFf9+ShX/fkoV/35KFf9+SxX/fksV/35LFf9+SxX/fksV/35L
Ff9+Sxb/fksW/39MFv9/TBb/f0wW/39MFv+ATRb/gE0W/4BNFv+ATRb/gE4W/4BOFv98SBR/fEgUf3xI
FH98SBR/fEgUf3xIFH98SBR/fEoUf3xKFH98ShR/fEoUf3xKFH98ShR/fEoUf3xKFH9+ShR/fkoUf35K
FH9+ShR/fkwUf35MFH9+TBR/fEgUf3xIFH98SBR/fEgUf3xIFH98SBR/fEgUf3xKFH98ShR/fEoUf3xK
FH98ShR/fEoUf3xKFH98ShR/fkoUf35KFH9+ShR/fkoUf35MFH9+TBR/fkwUf35MFH9+TBR/fkwUf4BM
FH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAD///////8AAP///////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////wAA////////AAAoAAAAQAAAAIAAAAABACAAAAAAAACA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8SBS/fEgUv3xI
FL98SBS/fEgUv3xIFL98SBS/fEgUv3xIFL98SBS/fEgUv3xIFL98SBS/fEgUv3xIFL98SBS/fEgUv3xI
FL98SBS/fEgUv3xIFL98SBS/fEgUv3xIFL98SBS/fEgUv3xIFL98SBS/fEgUv3xIFL98SBS/fEgUv3xI
FL98SBS/fEgUv3xIFL98SBS/fEgUv3xIFL98SBS/fEgUv3xIFL98SBS/fEgUv3xIFL98SBS/fEgUv3xI
FL98SBS/fEgUv3xIFL98SBS/fEgUv3xIFL98SBS/fEgUv3xIFL98SBS/fEgUv3xIFL98SBS/fEgUv3xI
FL98SBS/fUkU/35KFf9+ShX/fkoV/35KFf9+ShX/fkoV/35KFf9+ShX/fkoV/35KFf9+ShX/fkoV/35K
Ff9+ShX/fkoV/35KFf9+ShX/fkoV/35KFf9+ShX/fkoV/35KFf9+ShX/fkoV/35KFf9+ShX/fkoV/35K
Ff9+ShX/fkoV/35KFf9+ShX/fkoV/35KFf9+ShX/fkoV/35KFf9+ShX/fkoV/35KFf9+ShX/fkoV/35K
Ff9+ShX/fkoV/35KFf9+ShX/fkoV/35KFf9+ShX/fkoV/35KFf9+ShX/fkoV/35KFf9+ShX/fkoV/35K
Ff9+ShX/fkoV/35KFf9+ShX/fkoV/39LFf+ATBX/gEwV/4BMFf+ATBX/gEwV/4BMFf+ATBX/gEwV/4BM
Ff+ATBX/gEwV/4BMFf+ATBb/gE0W/4BNFv+ATRb/gE0W/4BNFv+ATRb/gE0W/4BNFv+AThb/gU4W/4FO
Fv+BThb/gU4W/4FOFv+BThb/f0wV/39MFf+ATBX/gEwV/35KFf9+ShX/fkoV/35KFf9+ShX/fkoV/35K
Ff9+ShX/fkoV/35KFf9+ShX/gEwW/4BNFv+ATRb/gE0W/4BNFv+ATRb/gE0W/4BNFv+ATRb/gE4W/4FO
Fv+BThb/gU4W/4FOFv+BThb/gU4W/4FOFv+BThb/gU4W/4FOFv+BTRX/gk4W/4JOFv+CTxb/gk8W/4JP
Fv+CTxb/gk8W/4JPFv+CTxb/gk8W/4JPFv+CTxb/gk8W/4JPFv+CUBf/glAX/4JQF/+DUBf/g1EX/4NR
F/+DURf/g1EX/4NRF/+DUhf/g1IX/4NSF/+EUhf/hFIX/4JPFv+BThb/gU4W/4JOFv+ATBX/fkoV/35K
Ff9+ShX/fkoV/35KFf9+ShX/fkoV/35KFf9+ShX/fkoV/35KFf+BThb/glAX/4JQF/+CUBf/g1AX/4NR
F/+DURf/g1EX/4NRF/+DURf/g1IX/4NSF/+DUhf/hFIX/4RSF/+EUhf/hFIX/4RSF/+EUhf/gU0V/4FO
Fv+BThb/gk4W/4JOFv+CTxb/gk8W/4JPFv+CTxb/gk8W/4JPFv+CTxb/gk8W/4JPFv+CTxb/gk8W/4JQ
Fv+CUBb/glAX/4JQF/+DUBf/g1EX/4NRF/+DURf/g1EX/4NRF/+DUhf/g1IX/4NSF/+CTxb/gU0W/4FO
Fv+BThb/gk4W/4BMFf9+ShX/fkoV/35KFf9+ShX/fkoV/35KFf9+ShX/fkoV/35KFf9+ShX/fkoV/4BO
Ff+CUBb/glAW/4JQF/+CUBf/g1AX/4NRF/+DURf/g1EX/4NRF/+DURf/g1IX/4NSF/+DUhf/hFIX/4RS
F/+EUhf/hFIX/4BNFf+BThb/gU4W/4JOFv+CThb/gE4W/2xGHP9VOBb/VDQP/1U0D/9WNQ//VTUQ/1U2
Ev9WNhP/VjYT/1U3E/9WOBP/VjgT/1U2Ef9VNxH/VjYQ/1U2EP9VNg//VTYQ/10/Gv92Sxr/g1EX/4NR
F/+DUhf/gk8W/4FNFv+BThb/gU4W/4FOFv+CThb/gEwV/3xKFv9oQxz/UzYV/1MzD/9UMw//VTMP/1Qz
EP9UNBH/VTUS/1U1E/9UNhL/VjgT/1Y4E/9VNhH/VTcR/1Y2EP9VNhD/VTYP/1U3Ef9fQBv/d0wZ/4NR
F/+DURf/g1IX/4RSF/+EUhf/hFIX/4RSF/+ATRX/gU4W/4FOFv+BThb/gU4W/001G/8UDAL/HRIG/yEW
Cv8hFgr/IBUK/yAWCv8dFAn/HRQI/x0UCP8hFgr/IBcK/yAWCv8fFgr/IRcM/yIYDf8hGQ3/IxkN/yEX
C/8cEQX/Fw4E/2RCGf+CURf/g1EX/4FOFv+BTRb/gU0W/4FOFv+BThb/gU4W/4FOFv9FMBj/FAwC/x4T
B/8hFgr/IRYK/yAVCv8gFgn/HRQJ/x0UCP8dFAj/IRYK/yAXCv8gFgr/HxYK/yEXDP8iGA3/IhkN/yMZ
Df8hFwr/GxAE/xsRBv9pRBn/glEX/4NRF/+DURf/hFIX/4RSF/+EUhf/gE0V/4FNFv+BThb/gU4W/3NM
Iv8eGhX/EQwF/x8VDP8aEgj/Fg8H/xQNBv8WDQX/Fw0F/xkQBv8lGAv/KBsM/yQZDP8nGQ3/Kh0P/yse
EP8sIBL/LCEU/ywhFf8uJBj/LiQY/xELBf89MSD/fFAc/4NRF/+BThb/gU0W/4FNFv+BTRb/gU4W/4FO
Fv9xTCT/GxcS/xMNBv8fFQz/GhII/xYOB/8UDQb/Fw4F/xcNBf8aEQf/JhkM/ygbDP8kGQz/JxkN/yod
D/8rHhD/LCAS/ywhFP8sIRX/LiQY/y0kGP8RCwb/RTYi/39QGv+DURf/g1EX/4NSF/+DUhf/hFIX/4BM
Ff+BTRb/gU0W/4FOFv9bRCv/Ih0Z/xgSCf8gFw7/IBUL/xsUCf8YEAf/Fw4H/x0RB/8oGQ7/LiER/y4g
Ev8xIhL/NiUV/zgoFv84KBj/MyYY/zEmGf81KR3/OC0h/0Y7Lv82LSH/OTEn/3dOH/+DURf/gU4W/4FN
Fv+BTRb/gU0W/4FOFv+BThb/VUMv/x8bFv8aEwv/IRYN/x8VC/8bFAn/GBAH/xcOB/8dEQf/KRoO/y4h
Ef8uIBL/MiIT/zYlFf84KBb/OCgY/zMmGP8xJhr/NSkd/zguIv9HPTD/NSwg/z41Kv98Txv/g1EX/4NR
F/+DURf/g1IX/4NSF/+ATBX/gU0W/4FNFv+BTRb/XEYt/yUgG/8WEQn/GRIL/yAXDP8dFAr/HBMJ/xoR
B/8iGAz/OycW/zclFP8zIxP/PSsY/0MvG/9EMh3/Oywb/zMnGf8zKBv/OzAk/0Y7L/9RRjr/Rjgq/z00
Kv92Th//g1AX/4FOFv+ATRb/gE0W/4FNFv+BTRb/gU0W/1dFMP8jHhj/FxEK/xkSC/8gFwz/HRQK/xwT
Cf8ZEQf/IxkM/zsnFv83JBT/NCQT/z4rGP9DLxv/QzEd/zorGv8zJxn/NCkc/zwxJf9HPDH/UkY5/0Q3
Kf9BOCz/e04b/4NQF/+DUBf/g1EX/4NRF/+DURf/gEwV/4BNFv+ATRb/gU0W/1tFK/8mIRv/FxEK/xkT
C/8YEgr/JhsQ/yIWC/8gFgv/OigW/0EsGP89Khf/SDIb/0w1Hv9UPCL/RTMe/zgrGv8wJRj/Mygd/0A0
K/9OQjn/X1NI/2NVRf9IPTL/eE8h/4JQF/+BTRb/gEwW/4BNFv+ATRb/gU0W/4FNFv9WRC//JB8Y/xgR
Cv8YEgv/GRIK/ygcEf8hFQv/IRcM/zwpF/9BKxj/PSoW/0gyG/9MNh7/VDwi/0QyHf84Khr/MCUY/zQp
H/9BNSz/T0Q6/2BUSf9gUkP/TEA0/3xPHP+CUBf/g1AX/4NRF/+DURf/g1EX/39MFf+ATBb/gE0W/4BN
Fv9bRSz/JiEa/xkUDP8aFAz/GBIL/yEaFf8rHQ//MSET/0QxHf9FMBr/TjUe/1s9Iv9gQif/UTsj/z4u
HP81Jxn/LyMW/zInHv9AMyn/XFBM/3htZ/92aVv/TUM2/3lQIf+CUBf/gE0W/4BMFv+ATBb/gEwW/4BN
Fv+ATRb/VkQw/yQfGP8aFQz/GRML/xgSC/8iGxf/Kx0P/zMjFf9FMR3/RS8a/1A2H/9bPSL/YUMo/085
Iv89Lhz/NCcY/y8jFv8zKB//QTQq/19TTv96b2n/cmVY/1BFOP99UB3/glAX/4JQF/+CUBf/g1AX/4NR
F/9/SxX/gEwW/4BMFv+ATRb/XUYt/ychGv8cFQ3/GxQN/xsUDP8ZEgr/GxMM/1U8Jf9NNiD/SDId/1w/
I/9tSSr/akgp/0o2If87Kxv/MiQW/zMnGv83KiD/Rjs5/3BjX/97b2f/alxR/01BNf95TyH/glAX/4BN
Fv+ATBb/gEwW/4BMFv+ATRb/gE0W/1hFMP8mHxj/HBUN/xsUDP8bFAz/GRIK/yEXDv9YPyb/SzQf/0kz
Hf9dQCT/bkkq/2dHKf9INCD/Oioa/zEkFv8zJxr/Nysh/0g9PP9xZF//fHBo/2dZTf9RRDf/fU8d/4JQ
F/+CUBf/glAX/4JQF/+DUBf/f0sV/4BMFv+ATBb/gEwW/11GLv8pIRr/HxgQ/x0ZEP8bFQ3/FhEK/yEa
D/9OOiT/Uzoh/1g+JP9uSyv/gVcy/2RFKP9DMR7/MCQV/zcoGf8zJhv/Mykk/1lIPf8yKB//GBMN/xIO
Cf8xKyP/dUwe/4JPF/+ATRb/gEwW/4BMFv+ATBb/gEwW/4BMFv9YRjH/JyAY/x8YEP8cGA//GxUN/xUQ
Cf8lHRL/UDsl/1M6If9aPyX/cEws/39WMf9hRCf/QC8e/zAkFf84KRr/MiYb/zYrJv9cSz//LyYd/xcS
Df8TDwr/Ny8m/3pNGv+CTxf/glAX/4JQF/+CUBf/glAX/39LFf+ATBb/gEwW/4BMFv9gSC//KiQb/zAp
If88NzH/OTUx/zc1MP9QRz3/ZVZJ/086Kf9wTCz/hlo0/4xqTf9lUDv/PCoa/y0jF/9KPzT/UUU+/19V
TP9BPTX/NDIw/z47NP8fGRH/NS4l/3ZNHv+CTxf/gEwW/39LFv9/TBb/gEwW/4BMFv+ATBb/W0gz/yki
Gv8zLSX/OzYx/zo2Mf83NDD/Ukk+/2VWSf9NNyX/cU0s/4hcNf+Kak3/X0o1/zopGv8uJBf/TkQ5/1FG
P/9hV03/Ozgx/zUzMP8/OzT/HhgQ/zsyKP97TRv/gk8X/4JPF/+CUBf/glAX/4JQF/9/SxX/f0wW/39M
Fv+ATBb/YEkw/ykjG/9kYl7/jI2N/2RiYf9tbGr/iIJ7/5OMhP9gSjb/eVUy/5RjOf/U0c7/qaOe/zst
IP84Khv/lJCN/7Oxr/97eHP/cXBu/21raf9ramj/HhgS/zQtJf92TR7/gk8W/4BMFv9/Sxb/f0wW/39M
Fv+ATBb/gEwW/1tJNP8nIhn/cnJu/4mKiv9lY2L/bm1r/4mDe/+UjYX/WUEr/3xWM/+VYzn/1tPQ/5uU
jv82KBr/Niga/6akov+urKn/eHZy/3Fwbv9sa2n/bGtp/xsVD/85MSj/e00b/4JPFv+CTxb/glAW/4JQ
F/+CUBf/fksV/39LFv9/Sxb/f0wW/19IMv8mIBn/HhgR/xsXEf8XEw//GhUR/007K/9SPir/Ykgu/4Nd
OP/Pva7/6Obl/8/LyP9fUUP/Piwc/yMZDv9iUTz/JCEX/x8ZE/8dGhT/IBsW/xwYEP81LyX/dk0f/4JP
Fv+ATBb/f0sW/39LFv9/Sxb/f0wW/39MFv9bSDb/JB4X/x8YEf8aFhD/FxIO/xsWEv9OPCv/UD0p/2RJ
Lv+GXzn/2MrB/+Lg3v/W08//TDwt/zsrG/8iFw3/XEw5/yMfFv8fGRP/HRoU/yAbFv8cGBD/OjMp/3tN
G/+CTxb/gk8W/4JPFv+CTxb/glAW/35KFf9/Sxb/f0sW/39MFv9fSDD/JCAZ/0hGQv9zc3H/enp4/4WE
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
J/9WSj7/dF5M/3djTv+TdFH/u4xh/72OYv+ge1L/iWlH/3tePv+EYT3/j2U8/5FnQf/Jg0P/75Q9/5dh
Nf+GVCH/gU4W/39LFf9+ShX/fkoV/35KFf9+SxX/fksV/049K/8eGhf/Kycj/ywoJP8vKif/OjIt/zQv
Kf8vLCf/W05B/3NeTP94ZE7/l3ZT/72NYf+8jmL/nnpR/4hoRv97Xj7/hWI9/5BlPP+UaUH/zoZE/+mR
PP+XYjf/hFIc/4FOFv+BThb/gU4W/4FPFv+BTxb/fUkU/35KFf9+ShX/fksV/1lBJ/8VExD/Kycj/zo0
MP8yLin/NC8q/zUwK/8zMCn/MC4q/0lCOf9sW0v/eGRP/4RrUf+iflv/ypZk/+KkZP/rq2D/77Vj//K6
Zf/0vGn/7bpy/6Z5Rv92UzP/gVIg/4FOFv9/SxX/fkoV/35KFf9+ShX/fksV/35LFf9UQCn/FRMQ/y8r
J/85My//Mi4p/zQvKv81MCv/MzAq/zAuKv9NRTr/b11M/3hkT/+GbFL/pYBc/82YZP/jpGP/66xg/++1
Y//yumX/9Lxp/+y6c/+gc0P/eFU1/4FQHP+BThb/gU4W/4FOFv+BTxb/gU8W/31JFP9+ShX/fkoV/35K
Ff91Shz/Eg4L/xIRD/9LR0T/WVZR/1hUUP9WVE//WVRP/1tXU/9YV1L/WFhU/3RsZP+Yh3n/n4p4/5KA
bf+jiW7/s4xt/7+Wc/+4j27/p4ds/2lYRv8SDAX/Qi4Y/31OGf+BThb/f0sV/35JFf9+ShX/fkoV/35K
Ff9+ShX/dEod/w8MCv8WFRL/T0tI/1pWUv9XU0//VlRP/1lVUP9bV1P/WFZS/1hZVf94b2b/moh5/5+K
eP+TgW3/pIpu/7SNbf++lXL/uI9u/6SGa/9hUUH/EQsF/0s0Gv9+Thj/gU4W/4FOFv+BThb/gU4W/4FP
Fv99SRT/fkoV/35KFf9+ShX/fkoV/189Gf8uIRL/KCIc/y8pI/81Lyr/NzIs/zw1L/8/OTL/Qjw2/0Q/
OP9BPjr/QDw4/0ZAOv9HQDn/Rj84/0I8NP8/OTH/NzMr/y4pIv8rJRv/PCkT/21FF/+AThb/gE4W/39L
Ff9+SRX/fkkV/35KFf9+ShX/fkoV/35KFf9ZORj/LSET/ygjHf8wKiT/NjAr/zgyLP87NS//Pzky/0I8
Nv9EPzj/QT46/0A8Of9GQDr/RkA5/0Y/OP9CPDT/Pjgw/zYyKv8tKCL/LCUa/z8rE/9wRhf/gE4W/4BO
Fv+BThb/gU4W/4FOFv+BThb/fUkU/35JFf9+ShX/fkoV/35KFf99SRX/dkgY/21HHf9vRx7/bkce/25G
Hf9uRhz/bEUc/2xEHP9rRBv/a0Mb/2xEG/9sRBv/a0Qb/2xFHP9tRh3/bkce/3BJH/9ySh//c0od/3tL
F/+ATRb/gE0W/4BOFv9+SxX/fUkV/35JFf9+SRX/fkoV/35KFf9+ShX/fUkV/3VIGf9tRx7/b0ce/25H
Hv9uRh3/bkYc/2xFHP9sRBz/a0Qb/2tDG/9sRBv/bEQb/2tEG/9sRRz/bUYd/29IHv9wSR//ckof/3RK
Hf98TBb/gE0W/4BNFv+AThb/gE4W/4FOFv+BThb/gU4W/31IFP9+SRX/fkkV/35KFf9+ShX/fkoV/35K
Ff9+ShX/fkoV/35LFf9+SxX/fksV/35LFf9+SxX/fksV/35LFf9+Sxb/fksW/35LFv9+Sxb/f0wW/39M
Fv9/TBb/f0wW/39NFv+ATRb/gE0W/4BNFv+ATRb/fksV/31JFf99SRX/fkkV/35JFf9+ShX/fkoV/35K
Ff9+ShX/fkoV/35KFf9+SxX/fksV/35LFf9+SxX/fksV/35LFf9+SxX/fksW/35LFv9+Sxb/fksW/39M
Fv9/TBb/f0wW/39MFv9/TRb/gE0W/4BNFv+ATRb/gE0W/4BOFv+AThb/gU4W/4FOFv99SBT/fUkV/35J
Ff9+SRX/fkoV/35KFf9+ShX/fkoV/35KFf9+ShX/fksV/35LFf9+SxX/fksV/35LFf9+SxX/fksV/35L
Fv9+Sxb/fksW/39MFv9/TBb/f0wW/39MFv9/TBb/f00W/4BNFv+ATRb/gE0W/35KFf99SRX/fUkV/31J
Ff9+SRX/fkkV/35KFf9+ShX/fkoV/35KFf9+ShX/fkoV/35LFf9+SxX/fksV/35LFf9+SxX/fksV/35L
Ff9+Sxb/fksW/35LFv9/TBb/f0wW/39MFv9/TBb/f0wW/4BNFv+ATRb/gE0W/4BNFv+ATRb/gE4W/4BO
Fv+AThb/fEgU/31JFf99SRX/fkkV/35JFf9+ShX/fkoV/35KFf9+ShX/fkoV/35LFf9+SxX/fksV/35L
Ff9+SxX/fksV/35LFf9+SxX/fksW/35LFv9/TBb/f0wW/39MFv9/TBb/f0wW/39MFv9/TRb/gE0W/4BN
Fv9+ShX/fUkV/31JFf99SRX/fUkV/35JFf9+SRX/fkoV/35KFf9+ShX/fkoV/35KFf9+SxX/fksV/35L
Ff9+SxX/fksV/35LFf9+SxX/fksV/35LFv9+Sxb/f0wW/39MFv9/TBb/f0wW/39MFv9/TRb/f00W/4BN
Fv+ATRb/gE0W/4BOFv+AThb/gE4W/4BNFf+BThb/gU4W/4FOFv+CThb/gk4W/4JPFv+CTxb/gk8W/4JP
Fv+CTxb/gk8W/4JPFv+CTxb/gk8W/4JPFv+CTxb/gk8W/4JQFv+CUBf/glAX/4NQF/+DUBf/g1EX/4NR
F/+DURf/g1EX/4NRF/+DUhf/gU8W/4FNFv+BThb/gU4W/4JOFv+CThb/gk4W/4JPFv+CTxb/gk8W/4JP
Fv+CTxb/gk8W/4JPFv+CTxb/gk8W/4JPFv+CTxb/glAW/4JQFv+CUBf/glAX/4NQF/+DURf/g1EX/4NR
F/+DURf/g1EX/4NSF/+DUhf/g1IX/4RSF/+EUhf/hFIX/4RSF/+ATRX/gU4W/4FOFv+BThb/gU4W/4JO
Fv+CThb/eUwY/2FAG/9YNxH/WTcQ/1k3EP9aNxD/WTgR/1k4E/9aOBT/WjkT/1k6E/9aOhP/WjgT/1k5
Ef9aOBH/WjgR/1k5EP9ZORD/WjsW/2tHHP+ATxf/g1EX/4FPFv+BTRb/gU4W/4FOFv+BThb/gk4W/4JO
Fv9/Thb/bEYc/1g5Ff9YNxD/WTcQ/1o3EP9ZNxD/WTgS/1o4E/9aOBT/WTkT/1o6FP9aOhP/WTgS/1k5
Ef9aOBH/WTkR/1k5EP9ZORL/YUIb/3hNGf+DURf/g1EX/4NSF/+EUhf/hFIX/4RSF/+EUhf/gE0V/4FN
Fv+BTRb/gU4W/4FOFv+BThb/bUUa/xcPBv8ZDgL/IBUJ/yIXC/8hFgr/IRYK/yAVCf8eFQn/HRMH/x4V
Cf8hFgr/IBYK/x8WCv8hFwz/IhgM/yEYDf8jGQ3/IhgM/x4UB/8ZDgP/RzAV/4JRF/+BThb/gU0W/4FN
Fv+BThb/gU4W/4FOFv+BThb/SDEY/xUMAv8eEwf/IhYK/yIXCv8hFgr/IRYJ/x4VCf8dFAj/HRQI/yEW
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
Hv8xJBb/NykZ/zImG/81Kyb/Wkk//zUsIv8cFxH/FRAM/zgvJ/96TRr/gk8X/4JQF/+CUBf/glAX/4JQ
F/9/SxX/f0wW/39MFv+ATBb/gEwW/3lLG/8/NSn/IRkQ/zQvKP8wKyf/Mi0o/zgyK/9bTD3/WUc3/2JD
KP92UC//i2I9/3ZeRv9HMh7/MiUX/zEnG/9MQTb/TEI9/1pPQv8qJyP/MzAq/y8qIf8jHhj/Wkgz/4BM
Fv9/Sxb/f0wW/4BMFv+ATBb/gEwW/1tIM/8pIhr/LScf/zItJ/8xLCf/LCkl/0tANP9eTj//TTYl/3BM
K/+HWzX/hmRG/1xGMP87Khr/LiQX/0c9MP9IPDP/WU5E/zEtJv8sKSb/NjMr/x8YEP87Mij/e00b/4JP
F/+CTxf/glAX/4JQF/+CUBf/fksV/39LFv9/TBb/f0wW/4BMFv95Sxv/PjYq/x8YD/+ZnJz/c3Jy/3Bw
bv+Bfnr/lI2E/4l/dP9oSy3/jF83/7CTef/f397/VUc7/zgqG/8rIRb/yMjI/5KPif93d3b/dnVz/29u
bP9UUU7/IBwX/1pIM/+ATBb/f0sW/39MFv9/TBb/gEwW/4BMFv9bSTT/JyIZ/3Jybv+LjIz/bGtq/3R0
cv+OiYL/mZOM/1dAKv97VjL/lGM5/9PRzf+Zkov/Niga/zUoGv+mpKH/sK6s/39+ev94d3b/c3Fw/3Fx
b/8bFQ//OTEo/3tNG/+CTxb/gk8W/4JQFv+CUBf/glAX/35KFf9/Sxb/f0sW/39MFv9/TBb/eUsb/z0z
Kf8dFg7/JB4Y/xoWEf8WEg7/NCkg/1VBLf9UPyv/cVIy/55wR//n5OL/wby2/8O+uv9CMCD/KyAU/z8z
Jv82MCP/HhoU/x8aFf8fGxX/HxoU/yEfF/9aSDT/gEwW/39LFv9/Sxb/f0sW/39MFv9/TBb/W0k2/yUe
F/8jHBX/HhoU/xcTD/8cFxP/Tjws/1E+K/9jSC3/hV44/9TEuf/i4d//09DN/0s6Kv87Khv/KB4U/15P
PP8jIBf/IBoU/x4bFf8gHBf/HBcP/zozKP97TRv/gk8W/4JPFv+CTxb/glAW/4JQF/9+ShX/f0sW/39L
Fv9/Sxb/f0sW/3hLG/87Myn/GxUO/3p6ef+BgoD/iYiH/56bl/+vqaP/oZWI/4BcOP/JrZT/uK6k/1pA
LP/Sz8v/d2ld/zoqG/+4sqv/t7Ot/6Gfmv+Tko3/iYiF/2BeWf8lIBn/W0g2/4BMFf9/SxX/f0sW/39L
Fv9/Sxb/f0wW/1pINP8jHhj/V1VS/35+fP+FhYP/kZCP/6ymoP+yrKb/cVM0/6B8W//p493/alI8/5yO
g//Mycb/Py0b/4+Gfv/Dv7b/qqij/5qXk/+NjIj/hIOA/yEdFP88Myn/e00b/4JPFv+CTxb/gk8W/4JP
Fv+CTxb/fkoV/39LFf9/Sxb/f0sW/39LFv94Shv/ODAn/xoUD/99fXz/QD45/zg0Mv9bUUj/c2JU/3xo
Vv+jh23/9PPy/3tlUP87LyP/dm1l/9jW0v9PPCT/w720/5SMef9lXVD/V1BD/1BKPv9JQjf/LCke/1xI
Nf+ATBX/f0sV/39LFv9/Sxb/f0sW/39LFv9XRTP/IBwX/2BeXP9lZWL/My8r/0M/Ov9yYlT/empb/3hZ
Ov/SwbP/sp+M/0w7LP9EOS7/8vHx/5yShv+imo//vbWm/3duXv9eVkn/Uks+/1ROQ/8xKRz/Pzcr/3tN
G/+CTxb/gk8W/4JPFv+CTxb/gk8W/35KFP9/SxX/f0sV/39LFf9/Sxb/d0ka/zYuJv8UEQ3/o6Sk/6+w
sP+9vr7/zs7N/97d2v/Jv7T/y7yu/9a/q/9sUTj/PDMm/0Q3K/+wq6X/ZU4r/+nl4P/v7+z/2tnW/8rJ
xv+6ubf/h4N8/zQtIf9cSjT/gEwV/39LFf9/SxX/f0sV/39LFv9/Sxb/VEMw/x4aF/9vb23/qKqq/7a3
t//FxsX/2NfV/+Ph3v+CY0H/6NzS/5N1WP9RQC//OzAk/1pPQ/+5saT/w7qt/+zp5P/m5uP/0tHO/8LB
vv+ysbD/PjUj/0I5LP97Thv/gk8W/4JPFv+CTxb/gk8W/4JPFv9+ShT/fksV/39LFf9/SxX/f0sV/3dJ
Gf80LSb/GBQQ/xkWEv8XFBL/FxQS/zMqIv9kTjn/alI6/5FrR/+2glP/eVs//0U4LP88Mib/Oy8f/0E0
Hf9nSyX/0L+g/6iad/94ak3/aFpB/1RJNv9AOSz/XEo2/39MFf9+SxX/f0sV/39LFf9/SxX/f0sV/1JB
MP8eGxj/GRUR/xcUEf8XFBL/FxUT/1RDM/9jTjn/f2FB/6Z3Tf+Vbkj/XUk1/zwyJ/9JOCf/Nywc/006
Hf+Tb0P/yb2e/4R2U/9vYkj/XFA7/01DMP9HPjL/ek4b/4FPFv+CTxb/gk8W/4JPFv+CTxb/fUoU/35L
Ff9+SxX/f0sV/39LFf93SRn/NC4m/xgUEP8cGRX/HhsZ/yEeG/8rJR//ZlA7/2tTPP+KaUf/s39T/4tn
Rf9QQTH/PDQm/0c4Jv8vKBj/Rzol/1dKJ/+QgVv/wK6H/4p8Yv9vZU7/RkAz/11LN/9/TBX/fksV/35L
Ff9+SxX/f0sV/39LFf9RQS7/HhwY/xoXEv8dGhn/IB0a/x4aGP9EOSz/aFE6/3hdQ/+fdU3/pndO/2lS
Ov9ANin/TDwq/zwwH/83LBr/WU0z/2pcNv/Zy6j/nIpl/3xxWP9gVkP/SEA0/3pOG/+BTxb/gU8W/4JP
Fv+CTxb/gk8W/31KFP9+SxX/fksV/35LFf9+SxX/dkkZ/zMsJP8YFA//IR0Z/yMgHP8mIh3/JiIc/1dI
OP9wWUH/e19E/6F3U/+keE7/alQ+/0o8L/9WQi3/YUUr/1VAJf9+Z0H/sJpz/9/Stf/bxaP/pZZ//1xW
Sf9gTjv/f0wV/35LFf9+SxX/fksV/35LFf9+SxX/UD8s/x4bF/8dGRX/Ih8b/yQhHf8mIhz/Miwk/2tW
QP9pUj3/j2xM/7B+U/+IaEf/VkY2/0Q5Kf9iRy//Vz4k/15MMP+ZgVb/yr6q/+fWsv++rJD/jH9s/1FK
Pv97Thz/gU8W/4FPFv+BTxb/gk8W/4JPFv99ShT/fksV/35LFf9+SxX/fksV/3VIGP8xKiL/HxkV/yYj
H/8mIh7/Kych/zAqJP8zLSf/aVRB/2xXQf+EZ0r/qHxU/6R6Vf9wWkP/WEg2/1dHMP9pUDP/bVQy/3BY
Mf9+YTb/1Zlf/+W3jP+VhnD/gGtS/39LFf9+ShX/fksV/35LFf9+SxX/fksV/009Kf8fGxj/JCAc/yUh
Hf8oJB//Likj/zIrJf9RRDf/c1lB/3JcRP+Tbkv/t4dc/4dpTP9kUT3/U0Ux/2JNM/9tUjL/cFcy/2hS
L/+kekf/4qt6/9q6kv99cWD/gFMg/4FOFv+BTxb/gU8W/4FPFv+CTxb/fUoU/35KFf9+ShX/fksV/35L
Ff91SBj/MCgi/yIeGf8uKib/LCgl/zUuKv84Miz/Mywp/zs2Lv9vWkn/bl9N/4VsUP+yhlz/wpFk/6mB
V/+Ma0n/eF0//3pbPP+CXjr/hl87/6ZtP//kjD//rmox/5RlO/9/SxX/fkoV/35KFf9+ShX/fksV/35L
Ff9OPSv/HhoX/ysnI/8sKCT/Lyon/zoyLf80Lyn/Lywn/19RQ/90X0z/eGRO/5l3VP+/jmL/uo1h/5l1
T/+AY0P/dFo8/35dO/+JXzn/jWM+/8yAQf/qjzn/mGI2/4RSHP+BThb/gU4W/4FOFv+BTxb/gU8W/31J
FP9+ShX/fkoV/35KFf9+SxX/dkkY/y8nHv8WFBD/OzYy/zMuKv80MCv/NTAr/zMwKv8yLir/PTky/2RV
Rv91Yk//fWdP/5d3WP++j2L/3aNm/+inYv/ssGL/8LVh//O7Zv/0u2v/1adm/4FaNP+DXzv/f0sV/35K
Ff9+ShX/fkoV/35LFf9+SxX/Uz8q/xYUEP8vKyf/NzIu/zIuKf80MCv/NTAr/zMvKv8wLir/UEg8/3Ff
TP94Y0//iW5T/6qDXv/Qm2X/5KVk/+qqX//us2L/8bhk//S8af/uvXP/p3lH/3pXNv+BUBz/gU4W/4FO
Fv+BThb/gU8W/4FPFv99SRT/fkoV/35KFf9+ShX/fkoV/3xKFv8/Khb/AwIB/zEuK/9ST0v/WlVR/1RR
TP9VUUz/V1RP/1dVUP9TU1D/ZmJa/4x+cf+ciHf/lYJu/56Gbf+wjW3/wply/7+Wbv+1kG7/mH5k/z4y
Jf8kGxD/eVAj/35LFf9+SRX/fkoV/35KFf9+ShX/fkoV/3JJHv8QDAr/GBYT/05KR/9XU0//VVFM/1RS
Tf9WUk3/WVVR/1RUT/9ZWVP/d25l/5eFdv+ciHX/lYFr/6iLbf+4kG3/wplx/7yTbv+piWv/aVdE/xcQ
B/9NNhz/fk4Y/4FOFv+BThb/gU4W/4FOFv+BTxb/fUkU/35JFf9+SRX/fkoV/35KFf9+ShX/b0UZ/zAg
Dv8lHhb/KSQe/zEsJv81MCv/PDUv/zo2MP9AOzX/RD86/0NAO/8/PDn/Qz87/0hCPP9FQDr/Rj84/0A7
M/85NS3/MCsl/yYiG/8uIxX/VzkX/4BOFv9+SxX/fkkV/35JFf9+ShX/fkoV/35KFf9+ShX/VTcY/yge
Ev8lIBv/LSgi/zUvKv82MSz/OjUv/z45M/9CPTj/REA6/0E/PP9APTr/RkE7/0dBO/9HQDr/Qj01/z04
MP80MSn/KiUg/ygiGP86KBL/b0YX/4BOFv+AThb/gU4W/4FOFv+BThb/gU4W/31IFP9+SRX/fkkV/35K
Ff9+ShX/fkoV/35KFf96SRX/bkYd/2tGIP9rRiD/a0Yg/2pFH/9pRB3/aUQd/2dDHP9nQhz/Z0Ic/2hD
HP9nQxz/aEQd/2hEHv9qRR7/bUgh/25JIf9vSiH/dUsb/35MFv+ATRb/fksV/31JFf9+SRX/fkkV/35K
Ff9+ShX/fkoV/3xJFf90Rxn/akYg/2xGIP9rRiD/akUf/2pFHv9pRB3/aEMd/2dDHP9nQhz/aEMc/2hD
HP9nQxz/aEQd/2pFHv9sRyD/bUgh/29KIf9xSh//e0sX/4BNFv+ATRb/gE4W/4BOFv+BThb/gU4W/4FO
Fv99SBT/fUkV/31JFf9+SRX/fkkV/35KFf9+ShX/fkoV/35KFf9+ShX/fksV/35LFf9+SxX/fksV/35L
Ff9+SxX/fksV/35LFf9+Sxb/fksW/35LFv9/TBb/f0wW/39MFv9/TBb/f0wW/4BNFv+ATRb/gE0W/35K
Ff99SRX/fUkV/35JFf9+SRX/fkoV/35KFf9+ShX/fkoV/35KFf9+ShX/fksV/35LFf9+SxX/fksV/35L
Ff9+SxX/fksV/35LFv9+Sxb/fksW/35LFv9/TBb/f0wW/39MFv9/TBb/f00W/4BNFv+ATRb/gE0W/4BN
Fv+AThb/gE4W/4FOFv+BThb/fEgU/31JFf99SRX/fkkV/35JFf9+ShX/fkoV/35KFf9+ShX/fkoV/35K
Ff9+SxX/fksV/35LFf9+SxX/fksV/35LFf9+SxX/fksW/35LFv9+Sxb/f0wW/39MFv9/TBb/f0wW/39M
Fv9/TRb/gE0W/4BNFv9+ShX/fUkV/31JFf99SRX/fkkV/35JFf9+ShX/fkoV/35KFf9+ShX/fkoV/35K
Ff9+SxX/fksV/35LFf9+SxX/fksV/35LFf9+SxX/fksW/35LFv9+Sxb/f0wW/39MFv9/TBb/f0wW/39M
Fv+ATRb/gE0W/4BNFv+ATRb/gE0W/4BOFv+AThb/gE4W/3xIFP98SBT/fUgU/31IFP99SRT/fUkU/31J
FP99SRT/fUkU/31JFP99ShT/fUoU/31KFP99ShT/fUoU/31KFP99ShT/fUoV/31KFf99ShX/fksV/35L
Ff9+SxX/fksV/35LFf9+TBX/f0wV/39MFf9/TBX/fkoV/3xIFP98SBT/fUgU/31IFP99SRT/fUkU/31J
FP99SRT/fUkU/31JFP99ShT/fUoU/31KFP99ShT/fUoU/31KFP99ShT/fUoV/31KFf99ShX/fksV/35L
Ff9+SxX/fksV/35LFf9/TBX/f0wV/39MFf9/TBX/f0wV/39NFf9/TRX/f00V/4BNFf8AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////
</value>
</data>
</root>

60
Preview.Designer.cs generated Normal file
View File

@@ -0,0 +1,60 @@
namespace PreviewToy
{
partial class Preview
{
/// <summary>
/// Required designer variable.
/// </summary>
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.pictureBox1 = new System.Windows.Forms.PictureBox();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.SuspendLayout();
//
// pictureBox1
//
this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill;
this.pictureBox1.Location = new System.Drawing.Point(0, 0);
this.pictureBox1.Margin = new System.Windows.Forms.Padding(0);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(304, 190);
this.pictureBox1.TabIndex = 0;
this.pictureBox1.TabStop = false;
this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click);
//
// Preview
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(304, 190);
this.ControlBox = false;
this.Controls.Add(this.pictureBox1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.MinimumSize = new System.Drawing.Size(64, 64);
this.Name = "Preview";
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.Text = "Preview";
this.TopMost = true;
this.Load += new System.EventHandler(this.Preview_Load);
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.PictureBox pictureBox1;
}
}

101
Preview.cs Normal file
View File

@@ -0,0 +1,101 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace PreviewToy
{
public partial class Preview : Form
{
private IntPtr m_hThumbnail;
public IntPtr sourceWindow;
private DwmApi.DWM_THUMBNAIL_PROPERTIES m_ThumbnailProperties;
private bool has_been_set_up = false;
private PreviewToyMain spawner;
public Preview(IntPtr sourceWindow, String title, PreviewToyMain spawner, Size size)
{
this.sourceWindow = sourceWindow;
this.spawner = spawner;
this.Size = size;
InitializeComponent();
SetUp();
this.Text = title;
}
protected override void OnResize(EventArgs e)
{
RefreshPreview();
base.OnResize(e);
if (has_been_set_up)
{
this.spawner.set_sync_size(this.Size);
}
}
protected override void OnMove(EventArgs e)
{
base.OnMove(e);
this.spawner.set_preview_position(this.Handle, this.Location);
}
protected void RefreshPreview()
{
if (has_been_set_up)
{
m_ThumbnailProperties.rcDestination = new DwmApi.RECT(0, 0, ClientRectangle.Right, ClientRectangle.Bottom);
DwmApi.DwmUpdateThumbnailProperties(m_hThumbnail, m_ThumbnailProperties);
}
}
public void SetUp()
{
m_hThumbnail = DwmApi.DwmRegisterThumbnail(this.Handle, sourceWindow);
m_ThumbnailProperties = new DwmApi.DWM_THUMBNAIL_PROPERTIES();
m_ThumbnailProperties.dwFlags = DwmApi.DWM_THUMBNAIL_PROPERTIES.DWM_TNP_VISIBLE
+ DwmApi.DWM_THUMBNAIL_PROPERTIES.DWM_TNP_OPACITY
+ DwmApi.DWM_THUMBNAIL_PROPERTIES.DWM_TNP_RECTDESTINATION
+ DwmApi.DWM_THUMBNAIL_PROPERTIES.DWM_TNP_SOURCECLIENTAREAONLY;
m_ThumbnailProperties.opacity = 255;
m_ThumbnailProperties.fVisible = true;
m_ThumbnailProperties.fSourceClientAreaOnly = true;
m_ThumbnailProperties.rcDestination = new DwmApi.RECT(0, 0, ClientRectangle.Right, ClientRectangle.Bottom);
DwmApi.DwmUpdateThumbnailProperties(m_hThumbnail, m_ThumbnailProperties);
has_been_set_up = true;
}
private void Preview_Load(object sender, EventArgs e)
{
}
private void pictureBox1_Click(object sender, EventArgs e)
{
bring_client_to_foreground();
}
public void bring_client_to_foreground()
{
DwmApi.SetForegroundWindow(sourceWindow);
int style = DwmApi.GetWindowLong(sourceWindow, DwmApi.GWL_STYLE);
if ((style & DwmApi.WS_MAXIMIZE) == DwmApi.WS_MAXIMIZE)
{
//It's maximized
}
else if ((style & DwmApi.WS_MINIMIZE) == DwmApi.WS_MINIMIZE)
{
DwmApi.ShowWindowAsync(sourceWindow, DwmApi.SW_SHOWNORMAL);
}
}
}
}

120
Preview.resx Normal file
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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

18
Program.cs Normal file
View File

@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace PreviewToy
{
static class Program
{
/// <summary>The main entry point for the application.</summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(true);
Application.Run(new PreviewToyMain());
}
}
}

View File

@@ -0,0 +1,16 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("DWM")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Microsoft")]
[assembly: AssemblyProduct("DWM")]
[assembly: AssemblyCopyright("Copyright © Microsoft 2007")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
[assembly: Guid("04f08f8d-9e98-423b-acdb-4effb31c0d35")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="PreviewToyMain" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>PreviewToy.PreviewToyMain, eve-o preview test, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>

63
Properties/Resources.Designer.cs generated Normal file
View File

@@ -0,0 +1,63 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.18034
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace PreviewToy.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.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>
/// Returns the cached ResourceManager instance used by this class.
/// </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("PreviewToy.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}

117
Properties/Resources.resx Normal file
View File

@@ -0,0 +1,117 @@
<?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.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: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" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</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" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

134
Properties/Settings.Designer.cs generated Normal file
View File

@@ -0,0 +1,134 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.18034
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace PreviewToy.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool hide_active {
get {
return ((bool)(this["hide_active"]));
}
set {
this["hide_active"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool hide_all {
get {
return ((bool)(this["hide_all"]));
}
set {
this["hide_all"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool always_on_top {
get {
return ((bool)(this["always_on_top"]));
}
set {
this["always_on_top"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool unique_layout {
get {
return ((bool)(this["unique_layout"]));
}
set {
this["unique_layout"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool sync_resize {
get {
return ((bool)(this["sync_resize"]));
}
set {
this["sync_resize"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool show_thumb_frames {
get {
return ((bool)(this["show_thumb_frames"]));
}
set {
this["show_thumb_frames"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool show_client_frames {
get {
return ((bool)(this["show_client_frames"]));
}
set {
this["show_client_frames"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("128")]
public uint sync_resize_x {
get {
return ((uint)(this["sync_resize_x"]));
}
set {
this["sync_resize_x"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("128")]
public uint sync_resize_y {
get {
return ((uint)(this["sync_resize_y"]));
}
set {
this["sync_resize_y"] = value;
}
}
}
}

View File

@@ -0,0 +1,33 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="PreviewToy.Properties" GeneratedClassName="Settings">
<Profiles />
<Settings>
<Setting Name="hide_active" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="hide_all" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="always_on_top" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="unique_layout" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="sync_resize" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="show_thumb_frames" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="show_client_frames" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="sync_resize_x" Type="System.UInt32" Scope="User">
<Value Profile="(Default)">128</Value>
</Setting>
<Setting Name="sync_resize_y" Type="System.UInt32" Scope="User">
<Value Profile="(Default)">128</Value>
</Setting>
</Settings>
</SettingsFile>

172
Win32api.cs Normal file
View File

@@ -0,0 +1,172 @@
using System;
using System.Runtime.InteropServices;
using System.Drawing;
using System.Text;
namespace PreviewToy
{
// Desktop Windows Manager APIs
internal class DwmApi
{
[DllImport("user32.dll")]
public static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll")]
public static extern bool SetForegroundWindow(IntPtr window);
[DllImport("dwmapi.dll", PreserveSig = false)]
public static extern void DwmEnableBlurBehindWindow(IntPtr hWnd, DWM_BLURBEHIND pBlurBehind);
[DllImport("dwmapi.dll", PreserveSig = false)]
public static extern void DwmExtendFrameIntoClientArea(IntPtr hWnd, MARGINS pMargins);
[DllImport("dwmapi.dll", PreserveSig = false)]
public static extern bool DwmIsCompositionEnabled();
[DllImport("dwmapi.dll", PreserveSig = false)]
public static extern void DwmGetColorizationColor(
out int pcrColorization,
[MarshalAs(UnmanagedType.Bool)]out bool pfOpaqueBlend);
[DllImport("dwmapi.dll", PreserveSig = false)]
public static extern void DwmEnableComposition(bool bEnable);
[DllImport("dwmapi.dll", PreserveSig = false)]
public static extern IntPtr DwmRegisterThumbnail(IntPtr dest, IntPtr source);
[DllImport("dwmapi.dll", PreserveSig = false)]
public static extern void DwmUnregisterThumbnail(IntPtr hThumbnail);
[DllImport("dwmapi.dll", PreserveSig = false)]
public static extern void DwmUpdateThumbnailProperties(IntPtr hThumbnail, DWM_THUMBNAIL_PROPERTIES props);
[DllImport("dwmapi.dll", PreserveSig = false)]
public static extern void DwmQueryThumbnailSourceSize(IntPtr hThumbnail, out Size size);
[StructLayout(LayoutKind.Sequential)]
public class DWM_THUMBNAIL_PROPERTIES
{
public uint dwFlags;
public RECT rcDestination;
public RECT rcSource;
public byte opacity;
[MarshalAs(UnmanagedType.Bool)]
public bool fVisible;
[MarshalAs(UnmanagedType.Bool)]
public bool fSourceClientAreaOnly;
public const uint DWM_TNP_RECTDESTINATION = 0x00000001;
public const uint DWM_TNP_RECTSOURCE = 0x00000002;
public const uint DWM_TNP_OPACITY = 0x00000004;
public const uint DWM_TNP_VISIBLE = 0x00000008;
public const uint DWM_TNP_SOURCECLIENTAREAONLY = 0x00000010;
}
[StructLayout(LayoutKind.Sequential)]
public class MARGINS
{
public int cxLeftWidth, cxRightWidth, cyTopHeight, cyBottomHeight;
public MARGINS(int left, int top, int right, int bottom)
{
cxLeftWidth = left; cyTopHeight = top;
cxRightWidth = right; cyBottomHeight = bottom;
}
}
[StructLayout(LayoutKind.Sequential)]
public class DWM_BLURBEHIND
{
public uint dwFlags;
[MarshalAs(UnmanagedType.Bool)]
public bool fEnable;
public IntPtr hRegionBlur;
[MarshalAs(UnmanagedType.Bool)]
public bool fTransitionOnMaximized;
public const uint DWM_BB_ENABLE = 0x00000001;
public const uint DWM_BB_BLURREGION = 0x00000002;
public const uint DWM_BB_TRANSITIONONMAXIMIZED = 0x00000004;
}
[StructLayout(LayoutKind.Sequential)]
public struct RECT
{
public int left, top, right, bottom;
public RECT(int left, int top, int right, int bottom)
{
this.left = left; this.top = top; this.right = right; this.bottom = bottom;
}
}
public const int SW_SHOWNORMAL = 1;
public const int SW_SHOWMINIMIZED = 2;
public const int SW_SHOWMAXIMIZED = 3;
[DllImport("user32.dll")]
public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
[DllImport("user32.dll", SetLastError = true)]
public static extern int GetWindowLong(IntPtr hWnd, int nIndex);
public const int GWL_ID = (-12);
public const int GWL_STYLE = (-16);
public const int GWL_EXSTYLE = (-20);
// Window Styles
public const UInt32 WS_OVERLAPPED = 0;
public const UInt32 WS_POPUP = 0x80000000;
public const UInt32 WS_CHILD = 0x40000000;
public const UInt32 WS_MINIMIZE = 0x20000000;
public const UInt32 WS_VISIBLE = 0x10000000;
public const UInt32 WS_DISABLED = 0x8000000;
public const UInt32 WS_CLIPSIBLINGS = 0x4000000;
public const UInt32 WS_CLIPCHILDREN = 0x2000000;
public const UInt32 WS_MAXIMIZE = 0x1000000;
public const UInt32 WS_CAPTION = 0xC00000; // WS_BORDER or WS_DLGFRAME
public const UInt32 WS_BORDER = 0x800000;
public const UInt32 WS_DLGFRAME = 0x400000;
public const UInt32 WS_VSCROLL = 0x200000;
public const UInt32 WS_HSCROLL = 0x100000;
public const UInt32 WS_SYSMENU = 0x80000;
public const UInt32 WS_THICKFRAME = 0x40000;
public const UInt32 WS_GROUP = 0x20000;
public const UInt32 WS_TABSTOP = 0x10000;
public const UInt32 WS_MINIMIZEBOX = 0x20000;
public const UInt32 WS_MAXIMIZEBOX = 0x10000;
public const UInt32 WS_TILED = WS_OVERLAPPED;
public const UInt32 WS_ICONIC = WS_MINIMIZE;
public const UInt32 WS_SIZEBOX = WS_THICKFRAME;
// Extended Window Styles
public const UInt32 WS_EX_DLGMODALFRAME = 0x0001;
public const UInt32 WS_EX_NOPARENTNOTIFY = 0x0004;
public const UInt32 WS_EX_TOPMOST = 0x0008;
public const UInt32 WS_EX_ACCEPTFILES = 0x0010;
public const UInt32 WS_EX_TRANSPARENT = 0x0020;
public const UInt32 WS_EX_MDICHILD = 0x0040;
public const UInt32 WS_EX_TOOLWINDOW = 0x0080;
public const UInt32 WS_EX_WINDOWEDGE = 0x0100;
public const UInt32 WS_EX_CLIENTEDGE = 0x0200;
public const UInt32 WS_EX_CONTEXTHELP = 0x0400;
public const UInt32 WS_EX_RIGHT = 0x1000;
public const UInt32 WS_EX_LEFT = 0x0000;
public const UInt32 WS_EX_RTLREADING = 0x2000;
public const UInt32 WS_EX_LTRREADING = 0x0000;
public const UInt32 WS_EX_LEFTSCROLLBAR = 0x4000;
public const UInt32 WS_EX_RIGHTSCROLLBAR = 0x0000;
public const UInt32 WS_EX_CONTROLPARENT = 0x10000;
public const UInt32 WS_EX_STATICEDGE = 0x20000;
public const UInt32 WS_EX_APPWINDOW = 0x40000;
public const UInt32 WS_EX_OVERLAPPEDWINDOW = (WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE);
public const UInt32 WS_EX_PALETTEWINDOW = (WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST);
public const UInt32 WS_EX_LAYERED = 0x00080000;
public const UInt32 WS_EX_NOINHERITLAYOUT = 0x00100000; // Disable inheritence of mirroring by children
public const UInt32 WS_EX_LAYOUTRTL = 0x00400000; // Right to left mirroring
public const UInt32 WS_EX_COMPOSITED = 0x02000000;
public const UInt32 WS_EX_NOACTIVATE = 0x08000000;
}
}

39
app.config Normal file
View File

@@ -0,0 +1,39 @@
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="PreviewToy.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<startup><supportedRuntime version="v2.0.50727"/></startup><userSettings>
<PreviewToy.Properties.Settings>
<setting name="hide_active" serializeAs="String">
<value>False</value>
</setting>
<setting name="hide_all" serializeAs="String">
<value>False</value>
</setting>
<setting name="always_on_top" serializeAs="String">
<value>False</value>
</setting>
<setting name="unique_layout" serializeAs="String">
<value>False</value>
</setting>
<setting name="sync_resize" serializeAs="String">
<value>True</value>
</setting>
<setting name="show_thumb_frames" serializeAs="String">
<value>True</value>
</setting>
<setting name="show_client_frames" serializeAs="String">
<value>True</value>
</setting>
<setting name="sync_resize_x" serializeAs="String">
<value>128</value>
</setting>
<setting name="sync_resize_y" serializeAs="String">
<value>128</value>
</setting>
</PreviewToy.Properties.Settings>
</userSettings>
</configuration>

BIN
example.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

BIN
icon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

BIN
over_lay_multi.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

163
preview toy.csproj Normal file
View File

@@ -0,0 +1,163 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.50727</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{6CA62DF3-8589-484C-8BC8-F763CA66BBB1}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>PreviewToy</RootNamespace>
<AssemblyName>eve-o preview</AssemblyName>
<TargetFrameworkVersion>v3.0</TargetFrameworkVersion>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>2.0</OldToolsVersion>
<UpgradeBackupLocation />
<IsWebBootstrapper>false</IsWebBootstrapper>
<TargetFrameworkProfile />
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.2.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<PublishWizardCompleted>true</PublishWizardCompleted>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>icon.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup>
<StartupObject>PreviewToy.Program</StartupObject>
</PropertyGroup>
<PropertyGroup>
<ManifestCertificateThumbprint>4B29FD125BFAD24FF900FC81CCE0B0AD37464FDB</ManifestCertificateThumbprint>
</PropertyGroup>
<PropertyGroup>
<ManifestKeyFile>preview toy_TemporaryKey.pfx</ManifestKeyFile>
</PropertyGroup>
<PropertyGroup>
<GenerateManifests>true</GenerateManifests>
</PropertyGroup>
<PropertyGroup>
<SignManifests>true</SignManifests>
</PropertyGroup>
<PropertyGroup>
<NoWin32Manifest>true</NoWin32Manifest>
</PropertyGroup>
<ItemGroup>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="WindowsBase" />
</ItemGroup>
<ItemGroup>
<Compile Include="MainForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="MainForm.resx">
<SubType>Designer</SubType>
<DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Preview.resx">
<SubType>Designer</SubType>
<DependentUpon>Preview.cs</DependentUpon>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="app.config" />
<None Include="preview toy_TemporaryKey.pfx" />
<None Include="Properties\DataSources\PreviewToyMain.datasource" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<Compile Include="Preview.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Preview.Designer.cs">
<DependentUpon>Preview.cs</DependentUpon>
</Compile>
<Compile Include="Win32api.cs" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.0">
<Visible>False</Visible>
<ProductName>Microsoft .NET Framework 4 %28x86 and x64%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<Content Include="icon.ico" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

13
preview toy.csproj.user Normal file
View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PublishUrlHistory>publish\</PublishUrlHistory>
<InstallUrlHistory />
<SupportUrlHistory />
<UpdateUrlHistory />
<BootstrapperUrlHistory />
<ErrorReportUrlHistory />
<FallbackCulture>en-US</FallbackCulture>
<VerifyUploadedFiles>false</VerifyUploadedFiles>
</PropertyGroup>
</Project>

20
preview toy.sln Normal file
View File

@@ -0,0 +1,20 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Express 2012 for Windows Desktop
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "preview toy", "preview toy.csproj", "{6CA62DF3-8589-484C-8BC8-F763CA66BBB1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{6CA62DF3-8589-484C-8BC8-F763CA66BBB1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6CA62DF3-8589-484C-8BC8-F763CA66BBB1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6CA62DF3-8589-484C-8BC8-F763CA66BBB1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6CA62DF3-8589-484C-8BC8-F763CA66BBB1}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

BIN
preview toy.suo Normal file

Binary file not shown.

BIN
preview toy.v11.suo Normal file

Binary file not shown.

Binary file not shown.