Add the files

This commit is contained in:
iPedroLB 2023-07-15 01:45:29 -03:00
parent f52694709e
commit 50aabc8afc
312 changed files with 95444 additions and 0 deletions

123
Example/AddContactForm.Designer.cs generated Normal file
View file

@ -0,0 +1,123 @@
namespace MSNPSharpClient
{
partial class AddContactForm
{
/// <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>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.lblAccount = new System.Windows.Forms.Label();
this.txtAccount = new System.Windows.Forms.TextBox();
this.txtInvitation = new System.Windows.Forms.TextBox();
this.lblInvitation = new System.Windows.Forms.Label();
this.btnOK = new System.Windows.Forms.Button();
this.btnCancel = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// lblAccount
//
this.lblAccount.AutoSize = true;
this.lblAccount.Location = new System.Drawing.Point(4, 21);
this.lblAccount.Name = "lblAccount";
this.lblAccount.Size = new System.Drawing.Size(106, 13);
this.lblAccount.TabIndex = 0;
this.lblAccount.Text = "Messenger address:*";
//
// txtAccount
//
this.txtAccount.CharacterCasing = System.Windows.Forms.CharacterCasing.Lower;
this.txtAccount.Location = new System.Drawing.Point(115, 18);
this.txtAccount.Name = "txtAccount";
this.txtAccount.Size = new System.Drawing.Size(250, 20);
this.txtAccount.TabIndex = 1;
//
// txtInvitation
//
this.txtInvitation.Location = new System.Drawing.Point(115, 47);
this.txtInvitation.Name = "txtInvitation";
this.txtInvitation.Size = new System.Drawing.Size(250, 20);
this.txtInvitation.TabIndex = 2;
//
// lblInvitation
//
this.lblInvitation.AutoSize = true;
this.lblInvitation.Location = new System.Drawing.Point(12, 50);
this.lblInvitation.Name = "lblInvitation";
this.lblInvitation.Size = new System.Drawing.Size(98, 13);
this.lblInvitation.TabIndex = 4;
this.lblInvitation.Text = "Invitation message:";
//
// btnOK
//
this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK;
this.btnOK.Location = new System.Drawing.Point(209, 84);
this.btnOK.Name = "btnOK";
this.btnOK.Size = new System.Drawing.Size(75, 23);
this.btnOK.TabIndex = 3;
this.btnOK.Text = "OK";
this.btnOK.UseVisualStyleBackColor = true;
this.btnOK.Click += new System.EventHandler(this.btn_Click);
//
// btnCancel
//
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.btnCancel.Location = new System.Drawing.Point(290, 84);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(75, 23);
this.btnCancel.TabIndex = 4;
this.btnCancel.Text = "Cancel";
this.btnCancel.UseVisualStyleBackColor = true;
this.btnCancel.Click += new System.EventHandler(this.btn_Click);
//
// AddContactForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(373, 119);
this.Controls.Add(this.btnCancel);
this.Controls.Add(this.btnOK);
this.Controls.Add(this.txtInvitation);
this.Controls.Add(this.lblInvitation);
this.Controls.Add(this.txtAccount);
this.Controls.Add(this.lblAccount);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "AddContactForm";
this.Text = "Add New Contact";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label lblAccount;
private System.Windows.Forms.TextBox txtAccount;
private System.Windows.Forms.TextBox txtInvitation;
private System.Windows.Forms.Label lblInvitation;
private System.Windows.Forms.Button btnOK;
private System.Windows.Forms.Button btnCancel;
}
}

50
Example/AddContactForm.cs Normal file
View file

@ -0,0 +1,50 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace MSNPSharpClient
{
public partial class AddContactForm : Form
{
public AddContactForm(string account)
{
InitializeComponent();
if (!String.IsNullOrEmpty(account))
{
this.account = account;
txtAccount.Text = account;
}
}
private string account;
public string Account
{
get
{
return account;
}
}
private string invitationMessage;
public string InvitationMessage
{
get
{
return invitationMessage;
}
}
private void btn_Click(object sender, EventArgs e)
{
account = txtAccount.Text;
invitationMessage = txtInvitation.Text;
Close();
}
}
}

120
Example/AddContactForm.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>

240
Example/ContactCardForm.Designer.cs generated Normal file
View file

@ -0,0 +1,240 @@
namespace MSNPSharpClient
{
partial class ContactCardForm
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows
/// <summary>
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.pnlSpace = new System.Windows.Forms.Panel();
this.panel3 = new System.Windows.Forms.Panel();
this.lblSpaceTitle = new System.Windows.Forms.LinkLabel();
this.lblDisplayName = new System.Windows.Forms.Label();
this.picDisplayImage = new System.Windows.Forms.PictureBox();
this.pnlAlbum = new System.Windows.Forms.Panel();
this.tlpnlAlbum = new System.Windows.Forms.TableLayoutPanel();
this.lnkAlbumName = new System.Windows.Forms.LinkLabel();
this.pnlBlog = new System.Windows.Forms.Panel();
this.lnkBlogContent = new System.Windows.Forms.LinkLabel();
this.lnkBlogTitle = new System.Windows.Forms.LinkLabel();
this.pnlProfile = new System.Windows.Forms.Panel();
this.ttips = new System.Windows.Forms.ToolTip(this.components);
this.pnlSpace.SuspendLayout();
this.panel3.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.picDisplayImage)).BeginInit();
this.pnlAlbum.SuspendLayout();
this.pnlBlog.SuspendLayout();
this.SuspendLayout();
//
// pnlSpace
//
this.pnlSpace.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(128)))), ((int)(((byte)(255)))));
this.pnlSpace.Controls.Add(this.panel3);
this.pnlSpace.Controls.Add(this.picDisplayImage);
this.pnlSpace.Dock = System.Windows.Forms.DockStyle.Top;
this.pnlSpace.Location = new System.Drawing.Point(0, 0);
this.pnlSpace.Name = "pnlSpace";
this.pnlSpace.Padding = new System.Windows.Forms.Padding(10);
this.pnlSpace.Size = new System.Drawing.Size(272, 76);
this.pnlSpace.TabIndex = 1;
//
// panel3
//
this.panel3.Controls.Add(this.lblSpaceTitle);
this.panel3.Controls.Add(this.lblDisplayName);
this.panel3.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel3.Location = new System.Drawing.Point(69, 10);
this.panel3.Name = "panel3";
this.panel3.Size = new System.Drawing.Size(193, 56);
this.panel3.TabIndex = 2;
//
// lblSpaceTitle
//
this.lblSpaceTitle.Dock = System.Windows.Forms.DockStyle.Top;
this.lblSpaceTitle.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
this.lblSpaceTitle.Location = new System.Drawing.Point(0, 23);
this.lblSpaceTitle.Margin = new System.Windows.Forms.Padding(0);
this.lblSpaceTitle.Name = "lblSpaceTitle";
this.lblSpaceTitle.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0);
this.lblSpaceTitle.Size = new System.Drawing.Size(193, 19);
this.lblSpaceTitle.TabIndex = 2;
this.lblSpaceTitle.TabStop = true;
this.lblSpaceTitle.Text = "Space Title";
this.lblSpaceTitle.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lblSpaceTitle_LinkClicked);
//
// lblDisplayName
//
this.lblDisplayName.Dock = System.Windows.Forms.DockStyle.Top;
this.lblDisplayName.Location = new System.Drawing.Point(0, 0);
this.lblDisplayName.Margin = new System.Windows.Forms.Padding(0);
this.lblDisplayName.Name = "lblDisplayName";
this.lblDisplayName.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0);
this.lblDisplayName.Size = new System.Drawing.Size(193, 23);
this.lblDisplayName.TabIndex = 1;
this.lblDisplayName.Text = "Display Name";
//
// picDisplayImage
//
this.picDisplayImage.BackColor = System.Drawing.Color.White;
this.picDisplayImage.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.picDisplayImage.Dock = System.Windows.Forms.DockStyle.Left;
this.picDisplayImage.Location = new System.Drawing.Point(10, 10);
this.picDisplayImage.Name = "picDisplayImage";
this.picDisplayImage.Size = new System.Drawing.Size(59, 56);
this.picDisplayImage.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.picDisplayImage.TabIndex = 1;
this.picDisplayImage.TabStop = false;
//
// pnlAlbum
//
this.pnlAlbum.BackColor = System.Drawing.Color.Linen;
this.pnlAlbum.Controls.Add(this.tlpnlAlbum);
this.pnlAlbum.Controls.Add(this.lnkAlbumName);
this.pnlAlbum.Dock = System.Windows.Forms.DockStyle.Top;
this.pnlAlbum.Location = new System.Drawing.Point(0, 76);
this.pnlAlbum.Name = "pnlAlbum";
this.pnlAlbum.Padding = new System.Windows.Forms.Padding(5);
this.pnlAlbum.Size = new System.Drawing.Size(272, 65);
this.pnlAlbum.TabIndex = 2;
//
// tlpnlAlbum
//
this.tlpnlAlbum.ColumnCount = 6;
this.tlpnlAlbum.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.66667F));
this.tlpnlAlbum.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.66667F));
this.tlpnlAlbum.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.66667F));
this.tlpnlAlbum.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.66667F));
this.tlpnlAlbum.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.66667F));
this.tlpnlAlbum.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.66667F));
this.tlpnlAlbum.Dock = System.Windows.Forms.DockStyle.Fill;
this.tlpnlAlbum.Location = new System.Drawing.Point(5, 17);
this.tlpnlAlbum.Name = "tlpnlAlbum";
this.tlpnlAlbum.RowCount = 1;
this.tlpnlAlbum.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tlpnlAlbum.Size = new System.Drawing.Size(262, 43);
this.tlpnlAlbum.TabIndex = 1;
//
// lnkAlbumName
//
this.lnkAlbumName.Dock = System.Windows.Forms.DockStyle.Top;
this.lnkAlbumName.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
this.lnkAlbumName.Location = new System.Drawing.Point(5, 5);
this.lnkAlbumName.Name = "lnkAlbumName";
this.lnkAlbumName.Size = new System.Drawing.Size(262, 12);
this.lnkAlbumName.TabIndex = 0;
this.lnkAlbumName.TabStop = true;
this.lnkAlbumName.Text = "Album Name";
this.lnkAlbumName.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lnkAlbumName_LinkClicked);
//
// pnlBlog
//
this.pnlBlog.BackColor = System.Drawing.Color.Linen;
this.pnlBlog.Controls.Add(this.lnkBlogContent);
this.pnlBlog.Controls.Add(this.lnkBlogTitle);
this.pnlBlog.Dock = System.Windows.Forms.DockStyle.Top;
this.pnlBlog.Location = new System.Drawing.Point(0, 141);
this.pnlBlog.Name = "pnlBlog";
this.pnlBlog.Padding = new System.Windows.Forms.Padding(5);
this.pnlBlog.Size = new System.Drawing.Size(272, 58);
this.pnlBlog.TabIndex = 3;
//
// lnkBlogContent
//
this.lnkBlogContent.Dock = System.Windows.Forms.DockStyle.Fill;
this.lnkBlogContent.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
this.lnkBlogContent.Location = new System.Drawing.Point(5, 17);
this.lnkBlogContent.Name = "lnkBlogContent";
this.lnkBlogContent.Size = new System.Drawing.Size(262, 36);
this.lnkBlogContent.TabIndex = 1;
this.lnkBlogContent.TabStop = true;
this.lnkBlogContent.Text = "Blog Content";
this.lnkBlogContent.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lnkBlogContent_LinkClicked);
//
// lnkBlogTitle
//
this.lnkBlogTitle.Dock = System.Windows.Forms.DockStyle.Top;
this.lnkBlogTitle.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
this.lnkBlogTitle.LinkColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.lnkBlogTitle.Location = new System.Drawing.Point(5, 5);
this.lnkBlogTitle.Name = "lnkBlogTitle";
this.lnkBlogTitle.Size = new System.Drawing.Size(262, 12);
this.lnkBlogTitle.TabIndex = 0;
this.lnkBlogTitle.TabStop = true;
this.lnkBlogTitle.Text = "Blog Title";
this.lnkBlogTitle.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lnkBlogTitle_LinkClicked);
//
// pnlProfile
//
this.pnlProfile.BackColor = System.Drawing.Color.Linen;
this.pnlProfile.Dock = System.Windows.Forms.DockStyle.Fill;
this.pnlProfile.Location = new System.Drawing.Point(0, 199);
this.pnlProfile.Name = "pnlProfile";
this.pnlProfile.Padding = new System.Windows.Forms.Padding(5);
this.pnlProfile.Size = new System.Drawing.Size(272, 35);
this.pnlProfile.TabIndex = 4;
//
// ContactCardForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(272, 234);
this.Controls.Add(this.pnlProfile);
this.Controls.Add(this.pnlBlog);
this.Controls.Add(this.pnlAlbum);
this.Controls.Add(this.pnlSpace);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.Name = "ContactCardForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "ContactCard";
this.Load += new System.EventHandler(this.ContactCardForm_Load);
this.pnlSpace.ResumeLayout(false);
this.panel3.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.picDisplayImage)).EndInit();
this.pnlAlbum.ResumeLayout(false);
this.pnlBlog.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Panel pnlSpace;
private System.Windows.Forms.Panel panel3;
private System.Windows.Forms.LinkLabel lblSpaceTitle;
private System.Windows.Forms.Label lblDisplayName;
private System.Windows.Forms.PictureBox picDisplayImage;
private System.Windows.Forms.Panel pnlAlbum;
private System.Windows.Forms.TableLayoutPanel tlpnlAlbum;
private System.Windows.Forms.LinkLabel lnkAlbumName;
private System.Windows.Forms.Panel pnlBlog;
private System.Windows.Forms.Panel pnlProfile;
private System.Windows.Forms.LinkLabel lnkBlogContent;
private System.Windows.Forms.LinkLabel lnkBlogTitle;
private System.Windows.Forms.ToolTip ttips;
}
}

109
Example/ContactCardForm.cs Normal file
View file

@ -0,0 +1,109 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using MSNPSharp;
using System.Diagnostics;
namespace MSNPSharpClient
{
public partial class ContactCardForm : Form
{
private ContactCard card = null;
public ContactCardForm(ContactCard cc)
{
InitializeComponent();
card = cc;
}
private void ContactCardForm_Load(object sender, EventArgs e)
{
lblDisplayName.Text = card.DisplayName;
lblSpaceTitle.Text = (card.Space != null) ? card.Space.Title : String.Empty;
if (String.IsNullOrEmpty(card.DisplayImageUrl))
{
picDisplayImage.Visible = false;
}
else
{
picDisplayImage.LoadAsync(card.DisplayImageUrl);
}
if (card.Album != null)
{
lnkAlbumName.Text = card.Album.Title;
int col = 0;
foreach (ThumbnailImage img in card.Album.Photos) //Setting the thumbnail pictures.
{
PictureBox lnkPic = new PictureBox();
lnkPic.Dock = DockStyle.Fill;
lnkPic.Margin = new Padding(6);
lnkPic.BorderStyle = BorderStyle.FixedSingle;
lnkPic.SizeMode = PictureBoxSizeMode.Zoom;
lnkPic.BackColor = Color.White;
lnkPic.LoadAsync(img.ThumbnailUrl);
tlpnlAlbum.Controls.Add(lnkPic, col, 0);
lnkPic.Tag = col;
lnkPic.Visible = true;
lnkPic.Click += new EventHandler(lnkPic_Click);
ttips.SetToolTip(lnkPic, img.ToolTip);
col++;
}
}
else
{
pnlAlbum.Visible = false;
}
if (card.NewPost != null)
{
lnkBlogTitle.Text = card.NewPost.Title;
ttips.SetToolTip(lnkBlogTitle, card.NewPost.Description);
lnkBlogContent.Text = card.NewPost.Description;
ttips.SetToolTip(lnkBlogContent, card.NewPost.Description);
}
else
{
pnlBlog.Visible = false;
}
Text = card.DisplayName + "'s ContactCard";
}
void lnkPic_Click(object sender, EventArgs e)
{
Process.Start(card.Album.Photos[(int)((PictureBox)sender).Tag].Url);
}
void lnkPic_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Process.Start(card.Album.Photos[(int)((LinkLabel)sender).Tag].Url);
}
private void lblSpaceTitle_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Process.Start(card.Space.Url);
}
private void lnkAlbumName_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Process.Start(card.Album.Url);
}
private void lnkBlogTitle_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Process.Start(card.NewPost.Url);
}
private void lnkBlogContent_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Process.Start(card.NewPost.Url);
}
}
}

View file

@ -0,0 +1,123 @@
<?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="ttips.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

1077
Example/ConversationForm.cs Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,135 @@
<?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="tsMessage.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>274, 14</value>
</metadata>
<metadata name="onlineUsersDropDown.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>397, 18</value>
</metadata>
<metadata name="openFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="dlgColor.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>158, 20</value>
</metadata>
<metadata name="openCustomEmoticonDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 57</value>
</metadata>
</root>

876
Example/DotMSNClient.Designer.cs generated Normal file
View file

@ -0,0 +1,876 @@
using System.Windows.Forms;
namespace MSNPSharpClient
{
partial class ClientForm
{
/// <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>
/// 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();
this.ImageList1 = new System.Windows.Forms.ImageList(this.components);
this.userMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
this.sendIMMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.sendOIMMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.sendMIMMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator();
this.importContactsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.createCircleMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator();
this.blockMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.unblockMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.deleteMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.openFileDialog = new System.Windows.Forms.OpenFileDialog();
this.openImageDialog = new System.Windows.Forms.OpenFileDialog();
this.tmrKeepOnLine = new System.Windows.Forms.Timer(this.components);
this.tmrNews = new System.Windows.Forms.Timer(this.components);
this.sortContextMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
this.toolStripSortByStatus = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSortBygroup = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripDeleteGroup = new System.Windows.Forms.ToolStripMenuItem();
this.groupContextMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
this.toolTipChangePhoto = new System.Windows.Forms.ToolTip(this.components);
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.WhatsUpPanel = new System.Windows.Forms.Panel();
this.lblNewsLink = new System.Windows.Forms.LinkLabel();
this.lblNews = new System.Windows.Forms.Label();
this.pbNewsPicture = new System.Windows.Forms.PictureBox();
this.cmdNext = new System.Windows.Forms.Button();
this.cmdPrev = new System.Windows.Forms.Button();
this.lblWhatsup = new System.Windows.Forms.Label();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.propertyGrid = new System.Windows.Forms.PropertyGrid();
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
this.pnlTreeViewsContainer = new System.Windows.Forms.Panel();
this.treeViewFilterList = new System.Windows.Forms.TreeView();
this.treeViewFavoriteList = new System.Windows.Forms.TreeView();
this.SortPanel = new System.Windows.Forms.Panel();
this.txtSearch = new System.Windows.Forms.TextBox();
this.btnAddNew = new System.Windows.Forms.Button();
this.btnSortBy = new System.Windows.Forms.Button();
this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel();
this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel();
this.tableLayoutPanel5 = new System.Windows.Forms.TableLayoutPanel();
this.displayImageBox = new System.Windows.Forms.PictureBox();
this.panel1 = new System.Windows.Forms.Panel();
this.tableLayoutPanel6 = new System.Windows.Forms.TableLayoutPanel();
this.pnlLogin = new System.Windows.Forms.Panel();
this.pnlNameAndPM = new System.Windows.Forms.Panel();
this.btnSetMusic = new System.Windows.Forms.Button();
this.lblPM = new System.Windows.Forms.TextBox();
this.lblName = new System.Windows.Forms.TextBox();
this.cbRobotMode = new System.Windows.Forms.CheckBox();
this.accountTextBox = new System.Windows.Forms.TextBox();
this.loginButton = new System.Windows.Forms.Button();
this.passwordTextBox = new System.Windows.Forms.TextBox();
this.tableLayoutPanel7 = new System.Windows.Forms.TableLayoutPanel();
this.comboPlaces = new System.Windows.Forms.ComboBox();
this.comboStatus = new System.Windows.Forms.ComboBox();
this.statusBar = new System.Windows.Forms.Label();
this.userMenuStrip.SuspendLayout();
this.sortContextMenu.SuspendLayout();
this.groupContextMenu.SuspendLayout();
this.tableLayoutPanel1.SuspendLayout();
this.WhatsUpPanel.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pbNewsPicture)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
this.splitContainer1.SuspendLayout();
this.tableLayoutPanel2.SuspendLayout();
this.pnlTreeViewsContainer.SuspendLayout();
this.SortPanel.SuspendLayout();
this.tableLayoutPanel3.SuspendLayout();
this.tableLayoutPanel4.SuspendLayout();
this.tableLayoutPanel5.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.displayImageBox)).BeginInit();
this.panel1.SuspendLayout();
this.tableLayoutPanel6.SuspendLayout();
this.pnlLogin.SuspendLayout();
this.pnlNameAndPM.SuspendLayout();
this.tableLayoutPanel7.SuspendLayout();
this.SuspendLayout();
//
// ImageList1
//
this.ImageList1.ColorDepth = System.Windows.Forms.ColorDepth.Depth32Bit;
this.ImageList1.ImageSize = new System.Drawing.Size(10, 10);
this.ImageList1.TransparentColor = System.Drawing.Color.Transparent;
//
// userMenuStrip
//
this.userMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.sendIMMenuItem,
this.sendOIMMenuItem,
this.sendMIMMenuItem,
this.toolStripMenuItem3,
this.importContactsMenuItem,
this.createCircleMenuItem,
this.toolStripMenuItem2,
this.blockMenuItem,
this.unblockMenuItem,
this.deleteMenuItem});
this.userMenuStrip.Name = "contextMenuStrip1";
this.userMenuStrip.Size = new System.Drawing.Size(201, 192);
//
// sendIMMenuItem
//
this.sendIMMenuItem.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold);
this.sendIMMenuItem.Name = "sendIMMenuItem";
this.sendIMMenuItem.Size = new System.Drawing.Size(200, 22);
this.sendIMMenuItem.Text = "Send Instant Message";
this.sendIMMenuItem.Click += new System.EventHandler(this.sendMessageToolStripMenuItem_Click);
//
// sendOIMMenuItem
//
this.sendOIMMenuItem.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold);
this.sendOIMMenuItem.Name = "sendOIMMenuItem";
this.sendOIMMenuItem.Size = new System.Drawing.Size(200, 22);
this.sendOIMMenuItem.Text = "Send Offline Message";
this.sendOIMMenuItem.Click += new System.EventHandler(this.sendOfflineMessageToolStripMenuItem_Click);
//
// sendMIMMenuItem
//
this.sendMIMMenuItem.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold);
this.sendMIMMenuItem.Name = "sendMIMMenuItem";
this.sendMIMMenuItem.Size = new System.Drawing.Size(200, 22);
this.sendMIMMenuItem.Text = "Send Mobile Message";
this.sendMIMMenuItem.Click += new System.EventHandler(this.sendMIMMenuItem_Click);
//
// toolStripMenuItem3
//
this.toolStripMenuItem3.Name = "toolStripMenuItem3";
this.toolStripMenuItem3.Size = new System.Drawing.Size(197, 6);
//
// importContactsMenuItem
//
this.importContactsMenuItem.Name = "importContactsMenuItem";
this.importContactsMenuItem.Size = new System.Drawing.Size(200, 22);
this.importContactsMenuItem.Text = "Import Contacts";
this.importContactsMenuItem.Click += new System.EventHandler(this.importContactsMenuItem_Click);
//
// createCircleMenuItem
//
this.createCircleMenuItem.Name = "createCircleMenuItem";
this.createCircleMenuItem.Size = new System.Drawing.Size(200, 22);
this.createCircleMenuItem.Text = "Circle Tests";
this.createCircleMenuItem.Click += new System.EventHandler(this.createCircleMenuItem_Click);
//
// toolStripMenuItem2
//
this.toolStripMenuItem2.Name = "toolStripMenuItem2";
this.toolStripMenuItem2.Size = new System.Drawing.Size(197, 6);
//
// blockMenuItem
//
this.blockMenuItem.Name = "blockMenuItem";
this.blockMenuItem.Size = new System.Drawing.Size(200, 22);
this.blockMenuItem.Text = "Block";
this.blockMenuItem.Click += new System.EventHandler(this.blockToolStripMenuItem_Click);
//
// unblockMenuItem
//
this.unblockMenuItem.Name = "unblockMenuItem";
this.unblockMenuItem.Size = new System.Drawing.Size(200, 22);
this.unblockMenuItem.Text = "Unblock";
this.unblockMenuItem.Click += new System.EventHandler(this.unblockMenuItem_Click);
//
// deleteMenuItem
//
this.deleteMenuItem.Name = "deleteMenuItem";
this.deleteMenuItem.Size = new System.Drawing.Size(200, 22);
this.deleteMenuItem.Text = "Delete";
this.deleteMenuItem.Click += new System.EventHandler(this.deleteMenuItem_Click);
//
// openFileDialog
//
this.openFileDialog.Multiselect = true;
//
// openImageDialog
//
this.openImageDialog.Filter = "Supported Images|*.png;*.jpg;*.jpeg;*.gif";
this.openImageDialog.Multiselect = true;
this.openImageDialog.Title = "Select display image";
//
// tmrKeepOnLine
//
this.tmrKeepOnLine.Interval = 1000;
//
// tmrNews
//
this.tmrNews.Interval = 5000;
this.tmrNews.Tick += new System.EventHandler(this.tmrNews_Tick);
//
// sortContextMenu
//
this.sortContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripSortByStatus,
this.toolStripSortBygroup});
this.sortContextMenu.Name = "sortContextMenu";
this.sortContextMenu.ShowCheckMargin = true;
this.sortContextMenu.ShowImageMargin = false;
this.sortContextMenu.Size = new System.Drawing.Size(140, 48);
//
// toolStripSortByStatus
//
this.toolStripSortByStatus.Checked = true;
this.toolStripSortByStatus.CheckOnClick = true;
this.toolStripSortByStatus.CheckState = System.Windows.Forms.CheckState.Checked;
this.toolStripSortByStatus.Name = "toolStripSortByStatus";
this.toolStripSortByStatus.ShowShortcutKeys = false;
this.toolStripSortByStatus.Size = new System.Drawing.Size(139, 22);
this.toolStripSortByStatus.Text = "Sort by status";
this.toolStripSortByStatus.Click += new System.EventHandler(this.toolStripSortByStatus_Click);
//
// toolStripSortBygroup
//
this.toolStripSortBygroup.CheckOnClick = true;
this.toolStripSortBygroup.Name = "toolStripSortBygroup";
this.toolStripSortBygroup.ShowShortcutKeys = false;
this.toolStripSortBygroup.Size = new System.Drawing.Size(139, 22);
this.toolStripSortBygroup.Text = "Sort by group";
this.toolStripSortBygroup.Click += new System.EventHandler(this.toolStripSortBygroup_Click);
//
// toolStripDeleteGroup
//
this.toolStripDeleteGroup.Name = "toolStripDeleteGroup";
this.toolStripDeleteGroup.Size = new System.Drawing.Size(142, 22);
this.toolStripDeleteGroup.Text = "Delete group";
this.toolStripDeleteGroup.Click += new System.EventHandler(this.toolStripDeleteGroup_Click);
//
// groupContextMenu
//
this.groupContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripDeleteGroup});
this.groupContextMenu.Name = "sortContextMenu";
this.groupContextMenu.ShowCheckMargin = true;
this.groupContextMenu.ShowImageMargin = false;
this.groupContextMenu.Size = new System.Drawing.Size(143, 26);
//
// tableLayoutPanel1
//
this.tableLayoutPanel1.ColumnCount = 1;
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel1.Controls.Add(this.WhatsUpPanel, 0, 2);
this.tableLayoutPanel1.Controls.Add(this.splitContainer1, 0, 1);
this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 0, 0);
this.tableLayoutPanel1.Controls.Add(this.statusBar, 0, 3);
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
this.tableLayoutPanel1.RowCount = 4;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 128F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 57F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(643, 634);
this.tableLayoutPanel1.TabIndex = 3;
//
// WhatsUpPanel
//
this.WhatsUpPanel.BackColor = System.Drawing.Color.White;
this.WhatsUpPanel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.WhatsUpPanel.Controls.Add(this.lblNewsLink);
this.WhatsUpPanel.Controls.Add(this.lblNews);
this.WhatsUpPanel.Controls.Add(this.pbNewsPicture);
this.WhatsUpPanel.Controls.Add(this.cmdNext);
this.WhatsUpPanel.Controls.Add(this.cmdPrev);
this.WhatsUpPanel.Controls.Add(this.lblWhatsup);
this.WhatsUpPanel.Dock = System.Windows.Forms.DockStyle.Bottom;
this.WhatsUpPanel.Location = new System.Drawing.Point(3, 551);
this.WhatsUpPanel.Name = "WhatsUpPanel";
this.WhatsUpPanel.Size = new System.Drawing.Size(637, 50);
this.WhatsUpPanel.TabIndex = 8;
//
// lblNewsLink
//
this.lblNewsLink.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.lblNewsLink.Location = new System.Drawing.Point(506, 25);
this.lblNewsLink.Name = "lblNewsLink";
this.lblNewsLink.Size = new System.Drawing.Size(69, 21);
this.lblNewsLink.TabIndex = 5;
this.lblNewsLink.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.lblNewsLink.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lblNewsLink_LinkClicked);
//
// lblNews
//
this.lblNews.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lblNews.AutoEllipsis = true;
this.lblNews.BackColor = System.Drawing.Color.Transparent;
this.lblNews.Location = new System.Drawing.Point(97, 3);
this.lblNews.Name = "lblNews";
this.lblNews.Size = new System.Drawing.Size(402, 42);
this.lblNews.TabIndex = 4;
this.lblNews.Text = " *";
this.lblNews.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// pbNewsPicture
//
this.pbNewsPicture.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Right)));
this.pbNewsPicture.BackColor = System.Drawing.Color.Transparent;
this.pbNewsPicture.Cursor = System.Windows.Forms.Cursors.Hand;
this.pbNewsPicture.Location = new System.Drawing.Point(589, 1);
this.pbNewsPicture.Name = "pbNewsPicture";
this.pbNewsPicture.Size = new System.Drawing.Size(45, 45);
this.pbNewsPicture.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pbNewsPicture.TabIndex = 3;
this.pbNewsPicture.TabStop = false;
//
// cmdNext
//
this.cmdNext.Location = new System.Drawing.Point(42, 22);
this.cmdNext.Name = "cmdNext";
this.cmdNext.Size = new System.Drawing.Size(22, 22);
this.cmdNext.TabIndex = 2;
this.cmdNext.Text = ">";
this.cmdNext.UseVisualStyleBackColor = true;
this.cmdNext.Click += new System.EventHandler(this.cmdNext_Click);
//
// cmdPrev
//
this.cmdPrev.Location = new System.Drawing.Point(15, 22);
this.cmdPrev.Name = "cmdPrev";
this.cmdPrev.Size = new System.Drawing.Size(22, 22);
this.cmdPrev.TabIndex = 1;
this.cmdPrev.Text = "<";
this.cmdPrev.UseVisualStyleBackColor = true;
this.cmdPrev.Click += new System.EventHandler(this.cmdPrev_Click);
//
// lblWhatsup
//
this.lblWhatsup.AutoSize = true;
this.lblWhatsup.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(162)));
this.lblWhatsup.Location = new System.Drawing.Point(11, 3);
this.lblWhatsup.Name = "lblWhatsup";
this.lblWhatsup.Size = new System.Drawing.Size(66, 13);
this.lblWhatsup.TabIndex = 0;
this.lblWhatsup.Text = "What\'s Up";
//
// splitContainer1
//
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer1.Location = new System.Drawing.Point(3, 131);
this.splitContainer1.Name = "splitContainer1";
//
// splitContainer1.Panel1
//
this.splitContainer1.Panel1.BackColor = System.Drawing.Color.White;
this.splitContainer1.Panel1.Controls.Add(this.propertyGrid);
//
// splitContainer1.Panel2
//
this.splitContainer1.Panel2.Controls.Add(this.tableLayoutPanel2);
this.splitContainer1.Size = new System.Drawing.Size(637, 413);
this.splitContainer1.SplitterDistance = 252;
this.splitContainer1.TabIndex = 0;
//
// propertyGrid
//
this.propertyGrid.BackColor = System.Drawing.Color.White;
this.propertyGrid.CommandsBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(128)))));
this.propertyGrid.Dock = System.Windows.Forms.DockStyle.Fill;
this.propertyGrid.HelpBackColor = System.Drawing.Color.White;
this.propertyGrid.LineColor = System.Drawing.SystemColors.ScrollBar;
this.propertyGrid.Location = new System.Drawing.Point(0, 0);
this.propertyGrid.Name = "propertyGrid";
this.propertyGrid.Size = new System.Drawing.Size(252, 413);
this.propertyGrid.TabIndex = 5;
//
// tableLayoutPanel2
//
this.tableLayoutPanel2.ColumnCount = 1;
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel2.Controls.Add(this.pnlTreeViewsContainer, 0, 1);
this.tableLayoutPanel2.Controls.Add(this.SortPanel, 0, 0);
this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel2.Location = new System.Drawing.Point(0, 0);
this.tableLayoutPanel2.Margin = new System.Windows.Forms.Padding(1);
this.tableLayoutPanel2.Name = "tableLayoutPanel2";
this.tableLayoutPanel2.RowCount = 2;
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 29F));
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
this.tableLayoutPanel2.Size = new System.Drawing.Size(381, 413);
this.tableLayoutPanel2.TabIndex = 0;
//
// pnlTreeViewsContainer
//
this.pnlTreeViewsContainer.Controls.Add(this.treeViewFilterList);
this.pnlTreeViewsContainer.Controls.Add(this.treeViewFavoriteList);
this.pnlTreeViewsContainer.Dock = System.Windows.Forms.DockStyle.Fill;
this.pnlTreeViewsContainer.Location = new System.Drawing.Point(3, 32);
this.pnlTreeViewsContainer.Name = "pnlTreeViewsContainer";
this.pnlTreeViewsContainer.Size = new System.Drawing.Size(375, 378);
this.pnlTreeViewsContainer.TabIndex = 3;
//
// treeViewFilterList
//
this.treeViewFilterList.BackColor = System.Drawing.Color.White;
this.treeViewFilterList.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.treeViewFilterList.Dock = System.Windows.Forms.DockStyle.Fill;
this.treeViewFilterList.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(162)));
this.treeViewFilterList.FullRowSelect = true;
this.treeViewFilterList.HideSelection = false;
this.treeViewFilterList.Indent = 20;
this.treeViewFilterList.ItemHeight = 20;
this.treeViewFilterList.Location = new System.Drawing.Point(0, 0);
this.treeViewFilterList.Name = "treeViewFilterList";
this.treeViewFilterList.ShowLines = false;
this.treeViewFilterList.ShowPlusMinus = false;
this.treeViewFilterList.ShowRootLines = false;
this.treeViewFilterList.Size = new System.Drawing.Size(375, 378);
this.treeViewFilterList.TabIndex = 5;
this.treeViewFilterList.Visible = false;
this.treeViewFilterList.NodeMouseDoubleClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.treeView1_NodeMouseDoubleClick);
this.treeViewFilterList.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.treeView1_NodeMouseClick);
//
// treeViewFavoriteList
//
this.treeViewFavoriteList.AllowDrop = true;
this.treeViewFavoriteList.BackColor = System.Drawing.Color.White;
this.treeViewFavoriteList.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.treeViewFavoriteList.Dock = System.Windows.Forms.DockStyle.Fill;
this.treeViewFavoriteList.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(162)));
this.treeViewFavoriteList.FullRowSelect = true;
this.treeViewFavoriteList.HideSelection = false;
this.treeViewFavoriteList.ImageIndex = 0;
this.treeViewFavoriteList.ImageList = this.ImageList1;
this.treeViewFavoriteList.Indent = 15;
this.treeViewFavoriteList.ItemHeight = 20;
this.treeViewFavoriteList.Location = new System.Drawing.Point(0, 0);
this.treeViewFavoriteList.Name = "treeViewFavoriteList";
this.treeViewFavoriteList.SelectedImageIndex = 0;
this.treeViewFavoriteList.ShowLines = false;
this.treeViewFavoriteList.ShowPlusMinus = false;
this.treeViewFavoriteList.ShowRootLines = false;
this.treeViewFavoriteList.Size = new System.Drawing.Size(375, 378);
this.treeViewFavoriteList.TabIndex = 4;
this.treeViewFavoriteList.NodeMouseDoubleClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.treeView1_NodeMouseDoubleClick);
this.treeViewFavoriteList.DragDrop += new System.Windows.Forms.DragEventHandler(this.treeViewFavoriteList_DragDrop);
this.treeViewFavoriteList.DragEnter += new System.Windows.Forms.DragEventHandler(this.treeViewFavoriteList_DragEnter);
this.treeViewFavoriteList.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.treeView1_NodeMouseClick);
this.treeViewFavoriteList.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.treeViewFavoriteList_ItemDrag);
this.treeViewFavoriteList.DragOver += new System.Windows.Forms.DragEventHandler(this.treeViewFavoriteList_DragOver);
//
// SortPanel
//
this.SortPanel.BackColor = System.Drawing.Color.White;
this.SortPanel.Controls.Add(this.txtSearch);
this.SortPanel.Controls.Add(this.btnAddNew);
this.SortPanel.Controls.Add(this.btnSortBy);
this.SortPanel.Dock = System.Windows.Forms.DockStyle.Fill;
this.SortPanel.Location = new System.Drawing.Point(1, 1);
this.SortPanel.Margin = new System.Windows.Forms.Padding(1);
this.SortPanel.Name = "SortPanel";
this.SortPanel.Size = new System.Drawing.Size(379, 27);
this.SortPanel.TabIndex = 2;
//
// txtSearch
//
this.txtSearch.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtSearch.ForeColor = System.Drawing.SystemColors.ScrollBar;
this.txtSearch.Location = new System.Drawing.Point(6, 4);
this.txtSearch.Name = "txtSearch";
this.txtSearch.Size = new System.Drawing.Size(279, 21);
this.txtSearch.TabIndex = 9;
this.txtSearch.Text = "Search contacts";
this.txtSearch.TextChanged += new System.EventHandler(this.txtSearch_TextChanged);
this.txtSearch.Leave += new System.EventHandler(this.txtSearch_Leave);
this.txtSearch.Enter += new System.EventHandler(this.txtSearch_Enter);
//
// btnAddNew
//
this.btnAddNew.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Right)));
this.btnAddNew.BackColor = System.Drawing.SystemColors.Control;
this.btnAddNew.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(162)));
this.btnAddNew.Location = new System.Drawing.Point(334, 2);
this.btnAddNew.Name = "btnAddNew";
this.btnAddNew.Size = new System.Drawing.Size(44, 22);
this.btnAddNew.TabIndex = 7;
this.btnAddNew.Text = "+";
this.btnAddNew.UseVisualStyleBackColor = true;
this.btnAddNew.Click += new System.EventHandler(this.btnAddNew_Click);
//
// btnSortBy
//
this.btnSortBy.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Right)));
this.btnSortBy.BackColor = System.Drawing.SystemColors.Control;
this.btnSortBy.Cursor = System.Windows.Forms.Cursors.Arrow;
this.btnSortBy.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(162)));
this.btnSortBy.Location = new System.Drawing.Point(290, 2);
this.btnSortBy.Name = "btnSortBy";
this.btnSortBy.Size = new System.Drawing.Size(44, 22);
this.btnSortBy.TabIndex = 0;
this.btnSortBy.Text = "sort";
this.btnSortBy.UseVisualStyleBackColor = true;
this.btnSortBy.Click += new System.EventHandler(this.btnSortBy_Click);
//
// tableLayoutPanel3
//
this.tableLayoutPanel3.BackColor = System.Drawing.Color.White;
this.tableLayoutPanel3.BackgroundImage = global::MSNPSharpClient.Properties.Resources.app_banner;
this.tableLayoutPanel3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
this.tableLayoutPanel3.ColumnCount = 2;
this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 380F));
this.tableLayoutPanel3.Controls.Add(this.tableLayoutPanel4, 1, 0);
this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 3);
this.tableLayoutPanel3.Name = "tableLayoutPanel3";
this.tableLayoutPanel3.RowCount = 1;
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel3.Size = new System.Drawing.Size(637, 122);
this.tableLayoutPanel3.TabIndex = 9;
//
// tableLayoutPanel4
//
this.tableLayoutPanel4.ColumnCount = 1;
this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel4.Controls.Add(this.tableLayoutPanel5, 0, 0);
this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel4.Location = new System.Drawing.Point(260, 3);
this.tableLayoutPanel4.Name = "tableLayoutPanel4";
this.tableLayoutPanel4.RowCount = 1;
this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 126F));
this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 126F));
this.tableLayoutPanel4.Size = new System.Drawing.Size(374, 116);
this.tableLayoutPanel4.TabIndex = 0;
//
// tableLayoutPanel5
//
this.tableLayoutPanel5.ColumnCount = 2;
this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 87F));
this.tableLayoutPanel5.Controls.Add(this.displayImageBox, 1, 0);
this.tableLayoutPanel5.Controls.Add(this.panel1, 0, 0);
this.tableLayoutPanel5.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel5.Location = new System.Drawing.Point(3, 3);
this.tableLayoutPanel5.Name = "tableLayoutPanel5";
this.tableLayoutPanel5.RowCount = 1;
this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 120F));
this.tableLayoutPanel5.Size = new System.Drawing.Size(368, 120);
this.tableLayoutPanel5.TabIndex = 0;
//
// displayImageBox
//
this.displayImageBox.BackColor = System.Drawing.Color.White;
this.displayImageBox.Cursor = System.Windows.Forms.Cursors.Hand;
this.displayImageBox.Location = new System.Drawing.Point(284, 3);
this.displayImageBox.Name = "displayImageBox";
this.displayImageBox.Size = new System.Drawing.Size(80, 80);
this.displayImageBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
this.displayImageBox.TabIndex = 3;
this.displayImageBox.TabStop = false;
this.displayImageBox.Click += new System.EventHandler(this.displayImageBox_Click);
//
// panel1
//
this.panel1.Controls.Add(this.tableLayoutPanel6);
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel1.Location = new System.Drawing.Point(3, 3);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(275, 114);
this.panel1.TabIndex = 4;
//
// tableLayoutPanel6
//
this.tableLayoutPanel6.ColumnCount = 1;
this.tableLayoutPanel6.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel6.Controls.Add(this.pnlLogin, 0, 0);
this.tableLayoutPanel6.Controls.Add(this.tableLayoutPanel7, 0, 1);
this.tableLayoutPanel6.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel6.Location = new System.Drawing.Point(0, 0);
this.tableLayoutPanel6.Name = "tableLayoutPanel6";
this.tableLayoutPanel6.RowCount = 2;
this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F));
this.tableLayoutPanel6.Size = new System.Drawing.Size(275, 114);
this.tableLayoutPanel6.TabIndex = 5;
//
// pnlLogin
//
this.pnlLogin.Controls.Add(this.pnlNameAndPM);
this.pnlLogin.Controls.Add(this.cbRobotMode);
this.pnlLogin.Controls.Add(this.accountTextBox);
this.pnlLogin.Controls.Add(this.loginButton);
this.pnlLogin.Controls.Add(this.passwordTextBox);
this.pnlLogin.Dock = System.Windows.Forms.DockStyle.Fill;
this.pnlLogin.Location = new System.Drawing.Point(3, 3);
this.pnlLogin.Name = "pnlLogin";
this.pnlLogin.Size = new System.Drawing.Size(269, 73);
this.pnlLogin.TabIndex = 1;
//
// pnlNameAndPM
//
this.pnlNameAndPM.Controls.Add(this.btnSetMusic);
this.pnlNameAndPM.Controls.Add(this.lblPM);
this.pnlNameAndPM.Controls.Add(this.lblName);
this.pnlNameAndPM.Dock = System.Windows.Forms.DockStyle.Fill;
this.pnlNameAndPM.Location = new System.Drawing.Point(0, 0);
this.pnlNameAndPM.Name = "pnlNameAndPM";
this.pnlNameAndPM.Size = new System.Drawing.Size(269, 73);
this.pnlNameAndPM.TabIndex = 15;
this.pnlNameAndPM.Visible = false;
//
// btnSetMusic
//
this.btnSetMusic.Location = new System.Drawing.Point(233, 25);
this.btnSetMusic.Name = "btnSetMusic";
this.btnSetMusic.Size = new System.Drawing.Size(33, 22);
this.btnSetMusic.TabIndex = 8;
this.btnSetMusic.Tag = "0";
this.btnSetMusic.Text = "M";
this.btnSetMusic.UseVisualStyleBackColor = true;
this.btnSetMusic.Click += new System.EventHandler(this.btnSetMusic_Click);
//
// lblPM
//
this.lblPM.Location = new System.Drawing.Point(3, 26);
this.lblPM.Name = "lblPM";
this.lblPM.Size = new System.Drawing.Size(228, 21);
this.lblPM.TabIndex = 7;
this.lblPM.Leave += new System.EventHandler(this.lblName_Leave);
//
// lblName
//
this.lblName.Location = new System.Drawing.Point(3, 1);
this.lblName.Name = "lblName";
this.lblName.Size = new System.Drawing.Size(263, 21);
this.lblName.TabIndex = 6;
this.lblName.Leave += new System.EventHandler(this.lblName_Leave);
//
// cbRobotMode
//
this.cbRobotMode.AutoSize = true;
this.cbRobotMode.Location = new System.Drawing.Point(3, 54);
this.cbRobotMode.Name = "cbRobotMode";
this.cbRobotMode.Size = new System.Drawing.Size(136, 19);
this.cbRobotMode.TabIndex = 11;
this.cbRobotMode.Text = "Provisioned Account";
this.cbRobotMode.UseVisualStyleBackColor = true;
this.cbRobotMode.CheckedChanged += new System.EventHandler(this.cbRobotMode_CheckedChanged);
//
// accountTextBox
//
this.accountTextBox.Location = new System.Drawing.Point(3, 2);
this.accountTextBox.Name = "accountTextBox";
this.accountTextBox.Size = new System.Drawing.Size(263, 21);
this.accountTextBox.TabIndex = 9;
this.accountTextBox.Text = "example@escargot.chat";
this.accountTextBox.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.login_KeyPress);
//
// loginButton
//
this.loginButton.Location = new System.Drawing.Point(145, 50);
this.loginButton.Name = "loginButton";
this.loginButton.Size = new System.Drawing.Size(121, 22);
this.loginButton.TabIndex = 8;
this.loginButton.Tag = "0";
this.loginButton.Text = "> Sign in";
this.loginButton.UseVisualStyleBackColor = true;
this.loginButton.Click += new System.EventHandler(this.loginButton_Click);
//
// passwordTextBox
//
this.passwordTextBox.Location = new System.Drawing.Point(3, 27);
this.passwordTextBox.Name = "passwordTextBox";
this.passwordTextBox.PasswordChar = '*';
this.passwordTextBox.Size = new System.Drawing.Size(263, 21);
this.passwordTextBox.TabIndex = 10;
this.passwordTextBox.Text = "sneakysource";
this.passwordTextBox.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.login_KeyPress);
//
// tableLayoutPanel7
//
this.tableLayoutPanel7.ColumnCount = 2;
this.tableLayoutPanel7.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel7.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel7.Controls.Add(this.comboPlaces, 0, 0);
this.tableLayoutPanel7.Controls.Add(this.comboStatus, 0, 0);
this.tableLayoutPanel7.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel7.Location = new System.Drawing.Point(3, 82);
this.tableLayoutPanel7.Name = "tableLayoutPanel7";
this.tableLayoutPanel7.RowCount = 1;
this.tableLayoutPanel7.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel7.Size = new System.Drawing.Size(269, 29);
this.tableLayoutPanel7.TabIndex = 0;
//
// comboPlaces
//
this.comboPlaces.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboPlaces.DropDownWidth = 220;
this.comboPlaces.FormattingEnabled = true;
this.comboPlaces.Location = new System.Drawing.Point(137, 3);
this.comboPlaces.Name = "comboPlaces";
this.comboPlaces.Size = new System.Drawing.Size(129, 23);
this.comboPlaces.TabIndex = 6;
this.comboPlaces.Visible = false;
this.comboPlaces.SelectedIndexChanged += new System.EventHandler(this.comboPlaces_SelectedIndexChanged);
//
// comboStatus
//
this.comboStatus.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
this.comboStatus.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboStatus.FormattingEnabled = true;
this.comboStatus.ItemHeight = 15;
this.comboStatus.Items.AddRange(new object[] {
"Online",
"Busy",
"Away",
"Hidden",
"Offline"});
this.comboStatus.Location = new System.Drawing.Point(3, 3);
this.comboStatus.Name = "comboStatus";
this.comboStatus.Size = new System.Drawing.Size(128, 21);
this.comboStatus.TabIndex = 5;
this.comboStatus.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.comboStatus_DrawItem);
this.comboStatus.SelectedIndexChanged += new System.EventHandler(this.comboStatus_SelectedIndexChanged);
this.comboStatus.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.comboStatus_KeyPress);
//
// statusBar
//
this.statusBar.AutoSize = true;
this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill;
this.statusBar.Location = new System.Drawing.Point(3, 604);
this.statusBar.Name = "statusBar";
this.statusBar.Size = new System.Drawing.Size(637, 30);
this.statusBar.TabIndex = 10;
this.statusBar.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// ClientForm
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.BackColor = System.Drawing.Color.White;
this.ClientSize = new System.Drawing.Size(643, 634);
this.Controls.Add(this.tableLayoutPanel1);
this.Font = new System.Drawing.Font("Arial", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.MinimumSize = new System.Drawing.Size(640, 480);
this.Name = "ClientForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "MSNPSharp Example Client for Escargot";
this.Load += new System.EventHandler(this.ClientForm_Load);
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ClientForm_FormClosing);
this.userMenuStrip.ResumeLayout(false);
this.sortContextMenu.ResumeLayout(false);
this.groupContextMenu.ResumeLayout(false);
this.tableLayoutPanel1.ResumeLayout(false);
this.tableLayoutPanel1.PerformLayout();
this.WhatsUpPanel.ResumeLayout(false);
this.WhatsUpPanel.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pbNewsPicture)).EndInit();
this.splitContainer1.Panel1.ResumeLayout(false);
this.splitContainer1.Panel2.ResumeLayout(false);
this.splitContainer1.ResumeLayout(false);
this.tableLayoutPanel2.ResumeLayout(false);
this.pnlTreeViewsContainer.ResumeLayout(false);
this.SortPanel.ResumeLayout(false);
this.SortPanel.PerformLayout();
this.tableLayoutPanel3.ResumeLayout(false);
this.tableLayoutPanel4.ResumeLayout(false);
this.tableLayoutPanel5.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.displayImageBox)).EndInit();
this.panel1.ResumeLayout(false);
this.tableLayoutPanel6.ResumeLayout(false);
this.pnlLogin.ResumeLayout(false);
this.pnlLogin.PerformLayout();
this.pnlNameAndPM.ResumeLayout(false);
this.pnlNameAndPM.PerformLayout();
this.tableLayoutPanel7.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private OpenFileDialog openFileDialog;
private OpenFileDialog openImageDialog;
private System.Windows.Forms.Timer tmrKeepOnLine;
private System.Windows.Forms.Timer tmrNews;
private ImageList ImageList1;
private ContextMenuStrip userMenuStrip;
private ToolStripMenuItem sendIMMenuItem;
private ToolStripMenuItem blockMenuItem;
private ToolStripSeparator toolStripMenuItem2;
private ToolStripMenuItem unblockMenuItem;
private ToolStripMenuItem sendOIMMenuItem;
private ToolStripSeparator toolStripMenuItem3;
private ToolStripMenuItem sendMIMMenuItem;
private ContextMenuStrip sortContextMenu;
private ToolStripMenuItem toolStripSortByStatus;
private ToolStripMenuItem toolStripSortBygroup;
private ToolStripMenuItem toolStripDeleteGroup;
private ContextMenuStrip groupContextMenu;
private ToolStripMenuItem importContactsMenuItem;
private ToolStripMenuItem createCircleMenuItem;
private ToolStripMenuItem deleteMenuItem;
private ToolTip toolTipChangePhoto;
private TableLayoutPanel tableLayoutPanel1;
private Panel WhatsUpPanel;
private LinkLabel lblNewsLink;
private Label lblNews;
private PictureBox pbNewsPicture;
private Button cmdNext;
private Button cmdPrev;
private Label lblWhatsup;
private SplitContainer splitContainer1;
private PropertyGrid propertyGrid;
private TableLayoutPanel tableLayoutPanel2;
private Panel SortPanel;
private TextBox txtSearch;
private Button btnAddNew;
private Button btnSortBy;
private TableLayoutPanel tableLayoutPanel3;
private Panel pnlTreeViewsContainer;
private TreeView treeViewFavoriteList;
private Label statusBar;
private TreeView treeViewFilterList;
private TableLayoutPanel tableLayoutPanel4;
private TableLayoutPanel tableLayoutPanel5;
private Panel panel1;
private TableLayoutPanel tableLayoutPanel6;
private Panel pnlLogin;
private Panel pnlNameAndPM;
private Button btnSetMusic;
private TextBox lblPM;
private TextBox lblName;
private CheckBox cbRobotMode;
private TextBox accountTextBox;
private Button loginButton;
private TextBox passwordTextBox;
private TableLayoutPanel tableLayoutPanel7;
private ComboBox comboPlaces;
private ComboBox comboStatus;
private PictureBox displayImageBox;
}
}

2343
Example/DotMSNClient.cs Normal file

File diff suppressed because it is too large Load diff

257
Example/DotMSNClient.csproj Normal file
View file

@ -0,0 +1,257 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<ProjectType>Local</ProjectType>
<ProductVersion>8.0.50727</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{BDF3E472-EFE8-44D6-AFB6-062DD929D56F}</ProjectGuid>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ApplicationIcon>MSNPSharp_logo.ico</ApplicationIcon>
<AssemblyKeyContainerName>
</AssemblyKeyContainerName>
<AssemblyName>DotMSNClient</AssemblyName>
<DefaultClientScript>JScript</DefaultClientScript>
<DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
<DefaultTargetSchema>IE50</DefaultTargetSchema>
<DelaySign>false</DelaySign>
<OutputType>WinExe</OutputType>
<RootNamespace>MSNPSharpClient</RootNamespace>
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
<StartupObject>MSNPSharpClient.ClientForm</StartupObject>
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
<OldToolsVersion>2.0</OldToolsVersion>
<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.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<OutputPath>bin\Debug\</OutputPath>
<BaseAddress>285212672</BaseAddress>
<ConfigurationOverrideFile>
</ConfigurationOverrideFile>
<DefineConstants>TRACE;DEBUG</DefineConstants>
<DocumentationFile>
</DocumentationFile>
<DebugSymbols>true</DebugSymbols>
<FileAlignment>4096</FileAlignment>
<Optimize>false</Optimize>
<RegisterForComInterop>false</RegisterForComInterop>
<RemoveIntegerChecks>false</RemoveIntegerChecks>
<WarningLevel>4</WarningLevel>
<DebugType>full</DebugType>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<OutputPath>bin\Release\</OutputPath>
<BaseAddress>285212672</BaseAddress>
<ConfigurationOverrideFile>
</ConfigurationOverrideFile>
<DefineConstants>TRACE</DefineConstants>
<DocumentationFile>
</DocumentationFile>
<FileAlignment>4096</FileAlignment>
<Optimize>true</Optimize>
<RegisterForComInterop>false</RegisterForComInterop>
<RemoveIntegerChecks>false</RemoveIntegerChecks>
<WarningLevel>4</WarningLevel>
<DebugType>none</DebugType>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="System">
<Name>System</Name>
</Reference>
<Reference Include="System.Data">
<Name>System.Data</Name>
</Reference>
<Reference Include="System.Drawing">
<Name>System.Drawing</Name>
</Reference>
<Reference Include="System.Web" />
<Reference Include="System.Web.Services" />
<Reference Include="System.Windows.Forms">
<Name>System.Windows.Forms</Name>
</Reference>
<Reference Include="System.Xml">
<Name>System.XML</Name>
</Reference>
</ItemGroup>
<ItemGroup>
<Content Include="MSNPSharp_logo.ico" />
<None Include="Resources\Color_fontHS.png" />
<None Include="Resources\app_banner.png" />
<None Include="Resources\loading.gif" />
<None Include="Resources\YahooMessenger_logo.png" />
<None Include="Resources\msn_ico.ico" />
<None Include="Resources\MSNPSharp_logo_small.ico" />
<None Include="Resources\MSNPSharp_logo.ico" />
<None Include="Resources\status\open.png" />
<None Include="Resources\status\online.png" />
<None Include="Resources\status\offline.png" />
<None Include="Resources\status\idle.png" />
<None Include="Resources\status\hidden.png" />
<None Include="Resources\status\closed.png" />
<None Include="Resources\status\circle.png" />
<None Include="Resources\status\busy.png" />
<None Include="Resources\status\away.png" />
<None Include="Resources\file.png" />
<None Include="Resources\nudge.png" />
<None Include="Resources\yahoo_ico.ico" />
<None Include="Resources\smileys\tongueout.gif" />
<None Include="Resources\smileys\smiley.gif" />
<None Include="Resources\smileys\sad.gif" />
<None Include="Resources\smileys\biggrin.gif" />
<None Include="Resources\smileys\wink.gif" />
<None Include="Resources\inner_emoicon.png" />
<Compile Include="AddContactForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="AddContactForm.Designer.cs">
<DependentUpon>AddContactForm.cs</DependentUpon>
</Compile>
<Compile Include="ConversationForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FileTransferForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FileTransferForm.Designer.cs">
<DependentUpon>FileTransferForm.cs</DependentUpon>
</Compile>
<Compile Include="DotMSNClient.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="DotMSNClient.Designer.cs">
<DependentUpon>DotMSNClient.cs</DependentUpon>
</Compile>
<Compile Include="ImportContacts.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="ImportContacts.Designer.cs">
<DependentUpon>ImportContacts.cs</DependentUpon>
</Compile>
<Compile Include="MusicForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="MusicForm.Designer.cs">
<DependentUpon>MusicForm.cs</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="RemoveContactForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="RemoveContactForm.Designer.cs">
<DependentUpon>RemoveContactForm.cs</DependentUpon>
</Compile>
<Compile Include="ReverseAddedForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="ReverseAddedForm.Designer.cs">
<DependentUpon>ReverseAddedForm.cs</DependentUpon>
</Compile>
<Compile Include="RtfRichTextBox.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="TraceForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="TraceForm.Designer.cs">
<DependentUpon>TraceForm.cs</DependentUpon>
</Compile>
<EmbeddedResource Include="AddContactForm.resx">
<SubType>Designer</SubType>
<DependentUpon>AddContactForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="ConversationForm.resx">
<DependentUpon>ConversationForm.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="FileTransferForm.resx">
<DependentUpon>FileTransferForm.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="DotMSNClient.resx">
<DependentUpon>DotMSNClient.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="ImportContacts.resx">
<SubType>Designer</SubType>
<DependentUpon>ImportContacts.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="MusicForm.resx">
<SubType>Designer</SubType>
<DependentUpon>MusicForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<SubType>Designer</SubType>
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Include="RemoveContactForm.resx">
<SubType>Designer</SubType>
<DependentUpon>RemoveContactForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="ReverseAddedForm.resx">
<SubType>Designer</SubType>
<DependentUpon>ReverseAddedForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="TraceForm.resx">
<SubType>Designer</SubType>
<DependentUpon>TraceForm.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\MSNPSharp\MSNPSharp.csproj">
<Project>{97CB2DC7-2FE8-4AF5-84D0-6B9872A5E960}</Project>
<Name>MSNPSharp</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<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>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PreBuildEvent>
</PreBuildEvent>
<PostBuildEvent>
</PostBuildEvent>
</PropertyGroup>
</Project>

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 />
<InstallUrlHistory />
<SupportUrlHistory />
<UpdateUrlHistory />
<BootstrapperUrlHistory />
<ErrorReportUrlHistory />
<FallbackCulture>en-US</FallbackCulture>
<VerifyUploadedFiles>false</VerifyUploadedFiles>
</PropertyGroup>
</Project>

150
Example/DotMSNClient.resx Normal file
View file

@ -0,0 +1,150 @@
<?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="ImageList1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>118, 17</value>
</metadata>
<metadata name="userMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>776, 17</value>
</metadata>
<metadata name="openFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>506, 17</value>
</metadata>
<metadata name="openImageDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>228, 17</value>
</metadata>
<metadata name="tmrKeepOnLine.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>639, 17</value>
</metadata>
<metadata name="tmrNews.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="sortContextMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 56</value>
</metadata>
<metadata name="groupContextMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>163, 56</value>
</metadata>
<metadata name="toolTipChangePhoto.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>322, 56</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>76</value>
</metadata>
</root>

164
Example/FileTransferForm.Designer.cs generated Normal file
View file

@ -0,0 +1,164 @@
namespace MSNPSharpClient
{
partial class FileTransferForm
{
/// <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>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.lblFile = new System.Windows.Forms.Label();
this.txtFilePath = new System.Windows.Forms.TextBox();
this.btnOK = new System.Windows.Forms.Button();
this.btnCancel = new System.Windows.Forms.Button();
this.progressBar = new System.Windows.Forms.ProgressBar();
this.button1 = new System.Windows.Forms.Button();
this.saveFileDialog = new System.Windows.Forms.SaveFileDialog();
this.label1 = new System.Windows.Forms.Label();
this.lblSize = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// lblFile
//
this.lblFile.AutoSize = true;
this.lblFile.Location = new System.Drawing.Point(18, 8);
this.lblFile.Name = "lblFile";
this.lblFile.Size = new System.Drawing.Size(29, 12);
this.lblFile.TabIndex = 0;
this.lblFile.Text = "File";
//
// txtFilePath
//
this.txtFilePath.Location = new System.Drawing.Point(64, 6);
this.txtFilePath.Name = "txtFilePath";
this.txtFilePath.Size = new System.Drawing.Size(270, 21);
this.txtFilePath.TabIndex = 3;
this.txtFilePath.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
//
// btnOK
//
this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK;
this.btnOK.Location = new System.Drawing.Point(64, 94);
this.btnOK.Name = "btnOK";
this.btnOK.Size = new System.Drawing.Size(164, 37);
this.btnOK.TabIndex = 6;
this.btnOK.Tag = "OK";
this.btnOK.Text = "OK";
this.btnOK.UseVisualStyleBackColor = true;
this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
//
// btnCancel
//
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.btnCancel.Location = new System.Drawing.Point(237, 94);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(97, 37);
this.btnCancel.TabIndex = 7;
this.btnCancel.Text = "Cancel";
this.btnCancel.UseVisualStyleBackColor = true;
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
//
// progressBar
//
this.progressBar.Location = new System.Drawing.Point(64, 56);
this.progressBar.Name = "progressBar";
this.progressBar.Size = new System.Drawing.Size(270, 21);
this.progressBar.Step = 1;
this.progressBar.TabIndex = 8;
this.progressBar.Visible = false;
//
// button1
//
this.button1.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.button1.Location = new System.Drawing.Point(254, 30);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(80, 21);
this.button1.TabIndex = 9;
this.button1.Text = "Browse...";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// saveFileDialog
//
this.saveFileDialog.Filter = "*.*|*.*";
this.saveFileDialog.RestoreDirectory = true;
this.saveFileDialog.Title = "Save as...";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(18, 34);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(29, 12);
this.label1.TabIndex = 10;
this.label1.Text = "Size";
//
// lblSize
//
this.lblSize.AutoSize = true;
this.lblSize.Location = new System.Drawing.Point(61, 34);
this.lblSize.Name = "lblSize";
this.lblSize.Size = new System.Drawing.Size(35, 12);
this.lblSize.TabIndex = 11;
this.lblSize.Text = "bytes";
//
// FileTransferForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.btnCancel;
this.ClientSize = new System.Drawing.Size(345, 142);
this.ControlBox = false;
this.Controls.Add(this.lblSize);
this.Controls.Add(this.label1);
this.Controls.Add(this.button1);
this.Controls.Add(this.progressBar);
this.Controls.Add(this.btnCancel);
this.Controls.Add(this.btnOK);
this.Controls.Add(this.txtFilePath);
this.Controls.Add(this.lblFile);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "FileTransferForm";
this.Text = "File Transfer";
this.Load += new System.EventHandler(this.FileTransferForm_Load);
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FileTransferForm_FormClosing);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label lblFile;
private System.Windows.Forms.TextBox txtFilePath;
private System.Windows.Forms.Button btnOK;
private System.Windows.Forms.Button btnCancel;
private System.Windows.Forms.ProgressBar progressBar;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.SaveFileDialog saveFileDialog;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label lblSize;
}
}

172
Example/FileTransferForm.cs Normal file
View file

@ -0,0 +1,172 @@
using System;
using System.IO;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
namespace MSNPSharpClient
{
using MSNPSharp;
using MSNPSharp.Core;
using MSNPSharp.DataTransfer;
public partial class FileTransferForm : Form
{
MSNSLPInvitationEventArgs invite;
private bool transferFinished;
public FileTransferForm(MSNSLPInvitationEventArgs invite)
{
this.invite = invite;
InitializeComponent();
}
private void FileTransferForm_Load(object sender, EventArgs e)
{
string appPath = Path.GetFullPath(".");
Text = "File Transfer: " + invite.TransferProperties.RemoteContact.Mail;
txtFilePath.Text = Path.Combine(appPath, invite.Filename);
lblSize.Text = invite.FileSize.ToString() + " bytes";
invite.TransferSession.TransferStarted += (TransferSession_TransferStarted);
invite.TransferSession.TransferProgressed += (TransferSession_TransferProgressed);
invite.TransferSession.TransferAborted += (TransferSession_TransferAborted);
invite.TransferSession.TransferFinished += (TransferSession_TransferFinished);
}
void TransferSession_TransferStarted(object sender, EventArgs e)
{
if (InvokeRequired)
{
Invoke(new EventHandler<EventArgs>(TransferSession_TransferStarted), sender, e);
return;
}
progressBar.Visible = true;
lblSize.Text = "Transfer started";
}
void TransferSession_TransferProgressed(object sender, P2PTransferProgressedEventArgs e)
{
if (InvokeRequired)
{
Invoke(new EventHandler<P2PTransferProgressedEventArgs>(TransferSession_TransferProgressed), sender, e);
return;
}
progressBar.Visible = true;
progressBar.Value = e.Percent;
lblSize.Text = "Transferred: " + e.Transferred + " / " + e.TotalSize;
}
void TransferSession_TransferFinished(object sender, EventArgs e)
{
if (InvokeRequired)
{
Invoke(new EventHandler<EventArgs>(TransferSession_TransferFinished), sender, e);
return;
}
transferFinished = true;
btnOK.Text = "Open File";
btnOK.Tag = "OPENFILE";
btnCancel.Visible = true;
lblSize.Text = "Transfer finished";
progressBar.Visible = false;
progressBar.Value = 0;
}
void TransferSession_TransferAborted(object sender, EventArgs e)
{
if (InvokeRequired)
{
Invoke(new EventHandler<EventArgs>(TransferSession_TransferAborted), sender, e);
return;
}
btnOK.Text = "Close";
btnOK.Tag = "CLOSE";
lblSize.Text = "Transfer aborted";
progressBar.Visible = false;
progressBar.Value = 0;
}
private void button1_Click(object sender, EventArgs e)
{
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
txtFilePath.Text = saveFileDialog.FileName;
}
}
private void btnCancel_Click(object sender, EventArgs e)
{
if (transferFinished)
{
Close();
}
else
{
invite.Accept = false;
invite.TransferHandler.RejectTransfer(invite);
btnCancel.Visible = false;
Close();
}
}
private void btnOK_Click(object sender, EventArgs e)
{
switch (btnOK.Tag.ToString())
{
case "OK":
invite.TransferSession.DataStream = new FileStream(txtFilePath.Text, FileMode.Create, FileAccess.Write);
invite.TransferSession.AutoCloseStream = true;
invite.Accept = true;
invite.TransferHandler.AcceptTransfer(invite);
btnCancel.Visible = false;
lblSize.Text = "Waiting to start...";
btnOK.Text = "Abort Transfer";
btnOK.Tag = "ABORT";
break;
case "ABORT":
invite.TransferHandler.CloseSession(invite.TransferSession);
btnOK.Text = "Close";
btnOK.Tag = "CLOSE";
break;
case "OPENFILE":
Process.Start(txtFilePath.Text);
Close();
break;
case "CLOSE":
Close();
break;
}
}
private void FileTransferForm_FormClosing(object sender, FormClosingEventArgs e)
{
invite.TransferSession.TransferStarted -= (TransferSession_TransferStarted);
invite.TransferSession.TransferProgressed -= (TransferSession_TransferProgressed);
invite.TransferSession.TransferAborted -= (TransferSession_TransferAborted);
invite.TransferSession.TransferFinished -= (TransferSession_TransferFinished);
}
}
};

View file

@ -0,0 +1,123 @@
<?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="saveFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

120
Example/ImportContacts.Designer.cs generated Normal file
View file

@ -0,0 +1,120 @@
namespace MSNPSharpClient
{
partial class ImportContacts
{
/// <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>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.openFileDialog = new System.Windows.Forms.OpenFileDialog();
this.lblInvitation = new System.Windows.Forms.Label();
this.txtInvitation = new System.Windows.Forms.TextBox();
this.browseFile = new System.Windows.Forms.Button();
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// openFileDialog
//
this.openFileDialog.DefaultExt = "ctt";
this.openFileDialog.Filter = "Messenger Contact List|*.ctt";
this.openFileDialog.Title = "Select Contact File";
//
// lblInvitation
//
this.lblInvitation.AutoSize = true;
this.lblInvitation.Location = new System.Drawing.Point(12, 20);
this.lblInvitation.Name = "lblInvitation";
this.lblInvitation.Size = new System.Drawing.Size(96, 13);
this.lblInvitation.TabIndex = 0;
this.lblInvitation.Text = "Invitation Message";
//
// txtInvitation
//
this.txtInvitation.Location = new System.Drawing.Point(114, 17);
this.txtInvitation.Name = "txtInvitation";
this.txtInvitation.Size = new System.Drawing.Size(342, 20);
this.txtInvitation.TabIndex = 1;
this.txtInvitation.Text = "Accept me :)";
//
// browseFile
//
this.browseFile.Location = new System.Drawing.Point(114, 43);
this.browseFile.Name = "browseFile";
this.browseFile.Size = new System.Drawing.Size(134, 23);
this.browseFile.TabIndex = 2;
this.browseFile.Text = "Browse Contact File...";
this.browseFile.UseVisualStyleBackColor = true;
this.browseFile.Click += new System.EventHandler(this.browseFile_Click);
//
// button1
//
this.button1.DialogResult = System.Windows.Forms.DialogResult.OK;
this.button1.Location = new System.Drawing.Point(283, 73);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(84, 23);
this.button1.TabIndex = 3;
this.button1.Text = "OK";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button_Click);
//
// button2
//
this.button2.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.button2.Location = new System.Drawing.Point(373, 73);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(83, 23);
this.button2.TabIndex = 4;
this.button2.Text = "Cancel";
this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.button_Click);
//
// ImportContacts
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(466, 108);
this.Controls.Add(this.button2);
this.Controls.Add(this.button1);
this.Controls.Add(this.browseFile);
this.Controls.Add(this.txtInvitation);
this.Controls.Add(this.lblInvitation);
this.Name = "ImportContacts";
this.Text = "Import Contacts";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.OpenFileDialog openFileDialog;
private System.Windows.Forms.Label lblInvitation;
private System.Windows.Forms.TextBox txtInvitation;
private System.Windows.Forms.Button browseFile;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
}
}

73
Example/ImportContacts.cs Normal file
View file

@ -0,0 +1,73 @@
using System;
using System.IO;
using System.Xml;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using MSNPSharp;
namespace MSNPSharpClient
{
public partial class ImportContacts : Form
{
public ImportContacts()
{
InitializeComponent();
}
private string invitationMessage = String.Empty;
public string InvitationMessage
{
get
{
return invitationMessage;
}
}
private List<string> _contacts = new List<string>();
public List<string> Contacts
{
get
{
return _contacts;
}
}
private void browseFile_Click(object sender, EventArgs e)
{
if (DialogResult.OK == openFileDialog.ShowDialog(this))
{
Contacts.Clear();
invitationMessage = txtInvitation.Text;
try
{
XmlDocument doc = new XmlDocument();
doc.LoadXml(File.ReadAllText(openFileDialog.FileName));
XmlNodeList contacts = doc.GetElementsByTagName("contact");
foreach (XmlNode contactNode in contacts)
{
if (ClientType.PassportMember == (ClientType)Convert.ToInt32(contactNode.Attributes["type"].Value))
{
Contacts.Add(contactNode.InnerText.ToLower(System.Globalization.CultureInfo.InvariantCulture));
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
MessageBox.Show(Contacts.Count.ToString() + " contacts to be imported.");
}
}
private void button_Click(object sender, EventArgs e)
{
Close();
}
}
}

123
Example/ImportContacts.resx Normal file
View file

@ -0,0 +1,123 @@
<?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="openFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

BIN
Example/MSNPSharp_logo.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

142
Example/MusicForm.Designer.cs generated Normal file
View file

@ -0,0 +1,142 @@
namespace MSNPSharpClient
{
partial class MusicForm
{
/// <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>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.lblArtist = new System.Windows.Forms.Label();
this.lblSong = new System.Windows.Forms.Label();
this.lblAlbum = new System.Windows.Forms.Label();
this.txtArtist = new System.Windows.Forms.TextBox();
this.txtSong = new System.Windows.Forms.TextBox();
this.txtAlbum = new System.Windows.Forms.TextBox();
this.btnOK = new System.Windows.Forms.Button();
this.btnCancel = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// lblArtist
//
this.lblArtist.AutoSize = true;
this.lblArtist.Location = new System.Drawing.Point(18, 9);
this.lblArtist.Name = "lblArtist";
this.lblArtist.Size = new System.Drawing.Size(30, 13);
this.lblArtist.TabIndex = 0;
this.lblArtist.Text = "Artist";
//
// lblSong
//
this.lblSong.AutoSize = true;
this.lblSong.Location = new System.Drawing.Point(16, 35);
this.lblSong.Name = "lblSong";
this.lblSong.Size = new System.Drawing.Size(32, 13);
this.lblSong.TabIndex = 1;
this.lblSong.Text = "Song";
//
// lblAlbum
//
this.lblAlbum.AutoSize = true;
this.lblAlbum.Location = new System.Drawing.Point(12, 59);
this.lblAlbum.Name = "lblAlbum";
this.lblAlbum.Size = new System.Drawing.Size(36, 13);
this.lblAlbum.TabIndex = 2;
this.lblAlbum.Text = "Album";
//
// txtArtist
//
this.txtArtist.Location = new System.Drawing.Point(64, 6);
this.txtArtist.Name = "txtArtist";
this.txtArtist.Size = new System.Drawing.Size(297, 20);
this.txtArtist.TabIndex = 3;
//
// txtSong
//
this.txtSong.Location = new System.Drawing.Point(64, 32);
this.txtSong.Name = "txtSong";
this.txtSong.Size = new System.Drawing.Size(297, 20);
this.txtSong.TabIndex = 4;
//
// txtAlbum
//
this.txtAlbum.Location = new System.Drawing.Point(64, 56);
this.txtAlbum.Name = "txtAlbum";
this.txtAlbum.Size = new System.Drawing.Size(297, 20);
this.txtAlbum.TabIndex = 5;
//
// btnOK
//
this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK;
this.btnOK.Location = new System.Drawing.Point(204, 82);
this.btnOK.Name = "btnOK";
this.btnOK.Size = new System.Drawing.Size(75, 23);
this.btnOK.TabIndex = 6;
this.btnOK.Text = "OK";
this.btnOK.UseVisualStyleBackColor = true;
//
// btnCancel
//
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.btnCancel.Location = new System.Drawing.Point(285, 82);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(76, 23);
this.btnCancel.TabIndex = 7;
this.btnCancel.Text = "Cancel";
this.btnCancel.UseVisualStyleBackColor = true;
//
// MusicForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(374, 113);
this.Controls.Add(this.btnCancel);
this.Controls.Add(this.btnOK);
this.Controls.Add(this.txtAlbum);
this.Controls.Add(this.txtSong);
this.Controls.Add(this.txtArtist);
this.Controls.Add(this.lblAlbum);
this.Controls.Add(this.lblSong);
this.Controls.Add(this.lblArtist);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "MusicForm";
this.Text = "I am Listening...";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label lblArtist;
private System.Windows.Forms.Label lblSong;
private System.Windows.Forms.Label lblAlbum;
private System.Windows.Forms.TextBox txtArtist;
private System.Windows.Forms.TextBox txtSong;
private System.Windows.Forms.TextBox txtAlbum;
private System.Windows.Forms.Button btnOK;
private System.Windows.Forms.Button btnCancel;
}
}

44
Example/MusicForm.cs Normal file
View file

@ -0,0 +1,44 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace MSNPSharpClient
{
public partial class MusicForm : Form
{
public MusicForm()
{
InitializeComponent();
}
public string Artist
{
get
{
return txtArtist.Text;
}
}
public string Song
{
get
{
return txtSong.Text;
}
}
public string Album
{
get
{
return txtSong.Text;
}
}
}
}

120
Example/MusicForm.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>

View file

@ -0,0 +1,20 @@
using System;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
[assembly: ComVisibleAttribute(false)]
[assembly: CLSCompliantAttribute(false)]
[assembly: AssemblyTitleAttribute("MSNPSharp Example Client")]
[assembly: AssemblyDescriptionAttribute(".NET MSN Messenger library Example Client")]
[assembly: AssemblyCopyrightAttribute("Copyright (c) 2002-2011, Bas Geertsema, Xih Solutions (http://www.xihsolutions.net), Thiago.Sayao, Pang Wu, Ethem Evlice.")]
[assembly: AssemblyProductAttribute("MSNPSharp")]
[assembly: AssemblyDelaySignAttribute(false)]
[assembly: GuidAttribute("FAE04EC0-301F-11D3-BF4B-00C04F79EFBC")]
// Version information for an assembly consists of the following four values:
// Major.Minor.Build.SVNRevision
[assembly: AssemblyVersionAttribute("3.2.1.2668")]
[assembly: AssemblyFileVersionAttribute("3.2.1.2668")]
[assembly: AssemblyCompanyAttribute("MSNPSharp")]
[assembly: AssemblyTrademarkAttribute("MSNPSharp")]

303
Example/Properties/Resources.Designer.cs generated Normal file
View file

@ -0,0 +1,303 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace MSNPSharpClient.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("MSNPSharpClient.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;
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap app_banner {
get {
object obj = ResourceManager.GetObject("app_banner", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap away {
get {
object obj = ResourceManager.GetObject("away", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap biggrin {
get {
object obj = ResourceManager.GetObject("biggrin", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap busy {
get {
object obj = ResourceManager.GetObject("busy", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap circle {
get {
object obj = ResourceManager.GetObject("circle", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap closed {
get {
object obj = ResourceManager.GetObject("closed", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap Color_fontHS {
get {
object obj = ResourceManager.GetObject("Color_fontHS", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap file {
get {
object obj = ResourceManager.GetObject("file", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap hidden {
get {
object obj = ResourceManager.GetObject("hidden", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap idle {
get {
object obj = ResourceManager.GetObject("idle", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap inner_emoticon {
get {
object obj = ResourceManager.GetObject("inner_emoticon", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap loading {
get {
object obj = ResourceManager.GetObject("loading", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
/// </summary>
internal static System.Drawing.Icon msn_ico {
get {
object obj = ResourceManager.GetObject("msn_ico", resourceCulture);
return ((System.Drawing.Icon)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
/// </summary>
internal static System.Drawing.Icon MSNPSharp_logo_small_ico {
get {
object obj = ResourceManager.GetObject("MSNPSharp_logo_small_ico", resourceCulture);
return ((System.Drawing.Icon)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap nudge {
get {
object obj = ResourceManager.GetObject("nudge", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap offline {
get {
object obj = ResourceManager.GetObject("offline", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap online {
get {
object obj = ResourceManager.GetObject("online", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap open {
get {
object obj = ResourceManager.GetObject("open", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap sad {
get {
object obj = ResourceManager.GetObject("sad", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap smiley {
get {
object obj = ResourceManager.GetObject("smiley", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap tongueout {
get {
object obj = ResourceManager.GetObject("tongueout", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap wink {
get {
object obj = ResourceManager.GetObject("wink", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
/// </summary>
internal static System.Drawing.Icon yahoo_ico {
get {
object obj = ResourceManager.GetObject("yahoo_ico", resourceCulture);
return ((System.Drawing.Icon)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap YahooMessenger_logo {
get {
object obj = ResourceManager.GetObject("YahooMessenger_logo", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
}
}

View file

@ -0,0 +1,193 @@
<?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>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="yahoo_ico" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\yahoo_ico.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="sad" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\smileys\sad.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="nudge" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\nudge.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="MSNPSharp_logo_small_ico" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\MSNPSharp_logo_small.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="biggrin" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\smileys\biggrin.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="away" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\status\away.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="msn_ico" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\msn_ico.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="idle" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\status\idle.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="loading" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\loading.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="wink" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\smileys\wink.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="busy" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\status\busy.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="hidden" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\status\hidden.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="online" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\status\online.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="file" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\file.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="offline" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\status\offline.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="circle" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\status\circle.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="closed" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\status\closed.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="YahooMessenger_logo" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\YahooMessenger_logo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="open" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\status\open.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="tongueout" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\smileys\tongueout.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="smiley" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\smileys\smiley.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="inner_emoticon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\inner_emoicon.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="app_banner" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\app_banner.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Color_fontHS" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Color_fontHS.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

102
Example/RemoveContactForm.Designer.cs generated Normal file
View file

@ -0,0 +1,102 @@
namespace MSNPSharpClient
{
partial class RemoveContactForm
{
/// <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>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.cbRemove = new System.Windows.Forms.CheckBox();
this.cbBlock = new System.Windows.Forms.CheckBox();
this.btnRemove = new System.Windows.Forms.Button();
this.btnCancel = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// cbRemove
//
this.cbRemove.AutoSize = true;
this.cbRemove.Location = new System.Drawing.Point(12, 21);
this.cbRemove.Name = "cbRemove";
this.cbRemove.Size = new System.Drawing.Size(201, 17);
this.cbRemove.TabIndex = 0;
this.cbRemove.Text = "Remove this user from my contact list";
this.cbRemove.UseVisualStyleBackColor = true;
//
// cbBlock
//
this.cbBlock.AutoSize = true;
this.cbBlock.Location = new System.Drawing.Point(12, 44);
this.cbBlock.Name = "cbBlock";
this.cbBlock.Size = new System.Drawing.Size(75, 17);
this.cbBlock.TabIndex = 1;
this.cbBlock.Text = "Also block";
this.cbBlock.UseVisualStyleBackColor = true;
//
// btnRemove
//
this.btnRemove.DialogResult = System.Windows.Forms.DialogResult.OK;
this.btnRemove.Location = new System.Drawing.Point(24, 76);
this.btnRemove.Name = "btnRemove";
this.btnRemove.Size = new System.Drawing.Size(99, 23);
this.btnRemove.TabIndex = 2;
this.btnRemove.Text = "Remove contact";
this.btnRemove.UseVisualStyleBackColor = true;
this.btnRemove.Click += new System.EventHandler(this.btn_Click);
//
// btnCancel
//
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.btnCancel.Location = new System.Drawing.Point(129, 76);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(75, 23);
this.btnCancel.TabIndex = 3;
this.btnCancel.Text = "Cancel";
this.btnCancel.UseVisualStyleBackColor = true;
this.btnCancel.Click += new System.EventHandler(this.btn_Click);
//
// RemoveContactForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(217, 113);
this.Controls.Add(this.btnCancel);
this.Controls.Add(this.btnRemove);
this.Controls.Add(this.cbBlock);
this.Controls.Add(this.cbRemove);
this.Name = "RemoveContactForm";
this.Text = "Remove Contact";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.CheckBox cbRemove;
private System.Windows.Forms.CheckBox cbBlock;
private System.Windows.Forms.Button btnRemove;
private System.Windows.Forms.Button btnCancel;
}
}

View file

@ -0,0 +1,40 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace MSNPSharpClient
{
public partial class RemoveContactForm : Form
{
public bool RemoveFromAddressBook
{
get
{
return cbRemove.Checked;
}
}
public bool Block
{
get
{
return cbBlock.Checked;
}
}
public RemoveContactForm()
{
InitializeComponent();
}
private void btn_Click(object sender, EventArgs e)
{
Close();
}
}
}

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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
Example/Resources/file.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 917 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

BIN
Example/Resources/nudge.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 823 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

151
Example/ReverseAddedForm.Designer.cs generated Normal file
View file

@ -0,0 +1,151 @@
namespace MSNPSharpClient
{
partial class ReverseAddedForm
{
/// <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>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.lblAdded = new System.Windows.Forms.Label();
this.gbMembership = new System.Windows.Forms.GroupBox();
this.rbBlock = new System.Windows.Forms.RadioButton();
this.rbAllow = new System.Windows.Forms.RadioButton();
this.cbContactList = new System.Windows.Forms.CheckBox();
this.btnOK = new System.Windows.Forms.Button();
this.btnCancel = new System.Windows.Forms.Button();
this.gbMembership.SuspendLayout();
this.SuspendLayout();
//
// lblAdded
//
this.lblAdded.AutoSize = true;
this.lblAdded.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(162)));
this.lblAdded.Location = new System.Drawing.Point(12, 9);
this.lblAdded.Name = "lblAdded";
this.lblAdded.Size = new System.Drawing.Size(226, 13);
this.lblAdded.TabIndex = 0;
this.lblAdded.Text = "{0} has added you to their contact list.";
//
// gbMembership
//
this.gbMembership.Controls.Add(this.rbBlock);
this.gbMembership.Controls.Add(this.rbAllow);
this.gbMembership.Location = new System.Drawing.Point(15, 36);
this.gbMembership.Name = "gbMembership";
this.gbMembership.Size = new System.Drawing.Size(441, 74);
this.gbMembership.TabIndex = 1;
this.gbMembership.TabStop = false;
this.gbMembership.Text = "Add contact to:";
//
// rbBlock
//
this.rbBlock.AutoSize = true;
this.rbBlock.Location = new System.Drawing.Point(15, 42);
this.rbBlock.Name = "rbBlock";
this.rbBlock.Size = new System.Drawing.Size(421, 17);
this.rbBlock.TabIndex = 1;
this.rbBlock.Text = "Blocked List (User can not see my online status and can not send instant messages" +
")";
this.rbBlock.UseVisualStyleBackColor = true;
this.rbBlock.CheckedChanged += new System.EventHandler(this.rbBlock_CheckedChanged);
//
// rbAllow
//
this.rbAllow.AutoSize = true;
this.rbAllow.Checked = true;
this.rbAllow.Location = new System.Drawing.Point(15, 19);
this.rbAllow.Name = "rbAllow";
this.rbAllow.Size = new System.Drawing.Size(352, 17);
this.rbAllow.TabIndex = 0;
this.rbAllow.TabStop = true;
this.rbAllow.Text = "Allowed List (User can see my status and can send instant messages)";
this.rbAllow.UseVisualStyleBackColor = true;
//
// cbContactList
//
this.cbContactList.AutoSize = true;
this.cbContactList.Checked = true;
this.cbContactList.CheckState = System.Windows.Forms.CheckState.Checked;
this.cbContactList.Location = new System.Drawing.Point(30, 125);
this.cbContactList.Name = "cbContactList";
this.cbContactList.Size = new System.Drawing.Size(169, 17);
this.cbContactList.TabIndex = 2;
this.cbContactList.Text = "Add this user to my contact list";
this.cbContactList.UseVisualStyleBackColor = true;
//
// btnOK
//
this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK;
this.btnOK.Location = new System.Drawing.Point(302, 125);
this.btnOK.Name = "btnOK";
this.btnOK.Size = new System.Drawing.Size(75, 23);
this.btnOK.TabIndex = 3;
this.btnOK.Text = "OK";
this.btnOK.UseVisualStyleBackColor = true;
this.btnOK.Click += new System.EventHandler(this.btn_Click);
//
// btnCancel
//
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.btnCancel.Location = new System.Drawing.Point(381, 125);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(75, 23);
this.btnCancel.TabIndex = 4;
this.btnCancel.Text = "Cancel";
this.btnCancel.UseVisualStyleBackColor = true;
this.btnCancel.Click += new System.EventHandler(this.btn_Click);
//
// ReverseAddedForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(470, 156);
this.Controls.Add(this.btnCancel);
this.Controls.Add(this.btnOK);
this.Controls.Add(this.cbContactList);
this.Controls.Add(this.gbMembership);
this.Controls.Add(this.lblAdded);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "ReverseAddedForm";
this.Text = "Pending Contact {0}";
this.gbMembership.ResumeLayout(false);
this.gbMembership.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label lblAdded;
private System.Windows.Forms.GroupBox gbMembership;
private System.Windows.Forms.RadioButton rbAllow;
private System.Windows.Forms.RadioButton rbBlock;
private System.Windows.Forms.CheckBox cbContactList;
private System.Windows.Forms.Button btnOK;
private System.Windows.Forms.Button btnCancel;
}
}

View file

@ -0,0 +1,51 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using MSNPSharp;
namespace MSNPSharpClient
{
public partial class ReverseAddedForm : Form
{
public ReverseAddedForm(Contact contact)
{
InitializeComponent();
Text = String.Format(Text, contact.Mail);
lblAdded.Text = String.Format(lblAdded.Text, contact.Name + " (" + contact.Mail + ")");
}
public bool Blocked
{
get
{
return rbBlock.Checked;
}
}
public bool AddToContactList
{
get
{
return cbContactList.Checked;
}
}
private void rbBlock_CheckedChanged(object sender, EventArgs e)
{
if (rbBlock.Checked)
{
cbContactList.Checked = false;
}
}
private void btn_Click(object sender, EventArgs e)
{
Close();
}
}
}

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>

427
Example/RtfRichTextBox.cs Normal file
View file

@ -0,0 +1,427 @@
using System;
using System.IO;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Imaging;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace MSNPSharpClient
{
using MSNPSharp;
public class RtfRichTextBox : RichTextBox
{
[DllImport("gdiplus.dll")]
private static extern uint GdipEmfToWmfBits(IntPtr _hEmf, uint _bufferSize, byte[] _buffer, int _mappingMode, EmfToWmfBitsFlags _flags);
#region .cctor
static bool hasGdiPlus = false;
static RtfRichTextBox()
{
try
{
if(!Settings.IsMono)
{
//We are in M$ Windows!
GdipEmfToWmfBits(IntPtr.Zero, 0, null, 0, 0);
hasGdiPlus = true;
}
}
catch (Exception)
{
}
}
#endregion
private float xDpi;
private float yDpi;
private RtfColor textColor = RtfColor.Black;
private RtfColor highlightColor = RtfColor.White;
private Dictionary<string, Bitmap> emotions = new Dictionary<string, Bitmap>();
private Dictionary<RtfColor, string> rtfColor = new Dictionary<RtfColor, string>();
private Dictionary<string, string> rtfFontFamily = new Dictionary<string, string>();
public RtfRichTextBox()
{
rtfColor.Add(RtfColor.Aqua, @"\red0\green255\blue255");
rtfColor.Add(RtfColor.Black, @"\red0\green0\blue0");
rtfColor.Add(RtfColor.Blue, @"\red0\green0\blue255");
rtfColor.Add(RtfColor.Fuchsia, @"\red255\green0\blue255");
rtfColor.Add(RtfColor.Gray, @"\red128\green128\blue128");
rtfColor.Add(RtfColor.Green, @"\red0\green128\blue0");
rtfColor.Add(RtfColor.Lime, @"\red0\green255\blue0");
rtfColor.Add(RtfColor.Maroon, @"\red128\green0\blue0");
rtfColor.Add(RtfColor.Navy, @"\red0\green0\blue128");
rtfColor.Add(RtfColor.Olive, @"\red128\green128\blue0");
rtfColor.Add(RtfColor.Purple, @"\red128\green0\blue128");
rtfColor.Add(RtfColor.Red, @"\red255\green0\blue0");
rtfColor.Add(RtfColor.Silver, @"\red192\green192\blue192");
rtfColor.Add(RtfColor.Teal, @"\red0\green128\blue128");
rtfColor.Add(RtfColor.White, @"\red255\green255\blue255");
rtfColor.Add(RtfColor.Yellow, @"\red255\green255\blue0");
rtfFontFamily.Add(FontFamily.GenericMonospace.Name, @"\fmodern");
rtfFontFamily.Add(FontFamily.GenericSansSerif.Name, @"\fswiss");
rtfFontFamily.Add(FontFamily.GenericSerif.Name, @"\froman");
rtfFontFamily.Add("UNKNOWN", @"\fnil");
using (Graphics graphics = CreateGraphics())
{
xDpi = graphics.DpiX;
yDpi = graphics.DpiY;
}
}
public RtfRichTextBox(RtfColor _textColor)
: this()
{
textColor = _textColor;
}
public RtfRichTextBox(RtfColor _textColor, RtfColor _highlightColor)
: this()
{
textColor = _textColor;
highlightColor = _highlightColor;
}
public void AppendRtf(string _rtf)
{
Select(TextLength, 0);
SelectionColor = Color.Black;
SelectedRtf = _rtf;
}
public void AppendTextAsRtf(string _text)
{
AppendTextAsRtf(_text, Font);
}
public void AppendTextAsRtf(string _text, Font _font)
{
AppendTextAsRtf(_text, _font, textColor);
}
public void AppendTextAsRtf(string _text, Font _font, RtfColor _textColor)
{
AppendTextAsRtf(_text, _font, _textColor, highlightColor);
}
public void AppendTextAsRtf(string _text, Font _font, RtfColor _textColor, RtfColor _backColor)
{
Select(TextLength, 0);
InsertTextAsRtf(_text, _font, _textColor, _backColor);
}
private string GetColorTable(RtfColor _textColor, RtfColor _backColor)
{
StringBuilder builder = new StringBuilder();
builder.Append(@"{\colortbl ;");
builder.Append(rtfColor[_textColor]);
builder.Append(";");
builder.Append(rtfColor[_backColor]);
builder.Append(@";}\n");
return builder.ToString();
}
private string GetDocumentArea(string _text, Font _font)
{
StringBuilder builder = new StringBuilder();
builder.Append(@"\viewkind4\uc1\pard\cf1\f0\fs20");
builder.Append(@"\highlight2");
if (_font.Bold)
{
builder.Append(@"\b");
}
if (_font.Italic)
{
builder.Append(@"\i");
}
if (_font.Strikeout)
{
builder.Append(@"\strike");
}
if (_font.Underline)
{
builder.Append(@"\ul");
}
builder.Append(@"\f0");
builder.Append(@"\fs");
builder.Append((int)Math.Round((double)(2f * _font.SizeInPoints)));
builder.Append(" ");
builder.Append(_text.Replace("\n", @"\par "));
builder.Append(@"\highlight0");
if (_font.Bold)
{
builder.Append(@"\b0");
}
if (_font.Italic)
{
builder.Append(@"\i0");
}
if (_font.Strikeout)
{
builder.Append(@"\strike0");
}
if (_font.Underline)
{
builder.Append(@"\ulnone");
}
builder.Append(@"\f0");
builder.Append(@"\fs20");
builder.Append(@"\cf0\fs17}");
return builder.ToString();
}
private string GetFontTable(Font _font)
{
StringBuilder builder = new StringBuilder();
builder.Append(@"{\fonttbl{\f0");
builder.Append(@"\");
if (rtfFontFamily.ContainsKey(_font.FontFamily.Name))
{
builder.Append(rtfFontFamily[_font.FontFamily.Name]);
}
else
{
builder.Append(rtfFontFamily["UNKNOWN"]);
}
builder.Append(@"\fcharset0 ");
builder.Append(_font.Name);
builder.Append(";}}");
return builder.ToString();
}
private string GetImagePrefix(Image _image)
{
StringBuilder builder = new StringBuilder();
int picw = (int)Math.Round((double)((((float)_image.Width) / xDpi) * 2540f));
int pich = (int)Math.Round((double)((((float)_image.Height) / yDpi) * 2540f));
int picwgoal = (int)Math.Round((double)((((float)_image.Width) / xDpi) * 1440f));
int pichgoal = (int)Math.Round((double)((((float)_image.Height) / yDpi) * 1440f));
builder.Append(@"{\pict\wmetafile8");
builder.Append(@"\picw");
builder.Append(picw);
builder.Append(@"\pich");
builder.Append(pich);
builder.Append(@"\picwgoal");
builder.Append(picwgoal);
builder.Append(@"\pichgoal");
builder.Append(pichgoal);
builder.Append(" ");
return builder.ToString();
}
private string GetRtfImage(Image _image)
{
MemoryStream stream = null;
Graphics graphics = null;
Metafile image = null;
string ret;
try
{
stream = new MemoryStream();
using (graphics = CreateGraphics())
{
IntPtr hdc = graphics.GetHdc();
image = new Metafile(stream, hdc);
graphics.ReleaseHdc(hdc);
}
using (graphics = Graphics.FromImage(image))
{
graphics.DrawImage(_image, new Rectangle(0, 0, _image.Width, _image.Height));
}
IntPtr henhmetafile = image.GetHenhmetafile();
uint num = GdipEmfToWmfBits(henhmetafile, 0, null, 1, EmfToWmfBitsFlags.EmfToWmfBitsFlagsDefault);
byte[] buffer = new byte[num];
GdipEmfToWmfBits(henhmetafile, num, buffer, 1, EmfToWmfBitsFlags.EmfToWmfBitsFlagsDefault);
StringBuilder builder = new StringBuilder();
for (int i = 0; i < buffer.Length; i++)
{
builder.Append(string.Format("{0:X2}", buffer[i]));
}
ret = builder.ToString();
}
finally
{
if (graphics != null)
{
graphics.Dispose();
}
if (image != null)
{
image.Dispose();
}
if (stream != null)
{
stream.Close();
}
}
return ret;
}
public void InsertEmotion()
{
if (hasGdiPlus)
{
foreach (string emoticon in emotions.Keys)
{
int start = Find(emoticon, RichTextBoxFinds.None);
if (start > -1)
{
Select(start, emoticon.Length);
InsertImage(emotions[emoticon]);
}
}
}
}
public void InsertImage(Image _image)
{
if (hasGdiPlus)
{
StringBuilder builder = new StringBuilder();
builder.Append(@"{\rtf1\ansi\ansicpg1252\deff0\deflang1033");
builder.Append(GetFontTable(Font));
builder.Append(GetImagePrefix(_image));
builder.Append(GetRtfImage(_image));
builder.Append(@"}");
SelectedRtf = builder.ToString();
}
}
public void InsertRtf(string _rtf)
{
SelectedRtf = _rtf;
}
public void InsertTextAsRtf(string _text)
{
InsertTextAsRtf(_text, Font);
}
public void InsertTextAsRtf(string _text, Font _font)
{
InsertTextAsRtf(_text, _font, textColor);
}
public void InsertTextAsRtf(string _text, Font _font, RtfColor _textColor)
{
InsertTextAsRtf(_text, _font, _textColor, highlightColor);
}
public void InsertTextAsRtf(string _text, Font _font, RtfColor _textColor, RtfColor _backColor)
{
StringBuilder builder = new StringBuilder();
builder.Append(@"{\rtf1\ansi\ansicpg1252\deff0\deflang1033");
builder.Append(GetFontTable(_font));
builder.Append(GetColorTable(_textColor, _backColor));
builder.Append(GetDocumentArea(_text, _font));
SelectedRtf = builder.ToString();
}
private string RemoveBadChars(string _originalRtf)
{
return _originalRtf.Replace("\0", "");
}
public Dictionary<string, Bitmap> Emotions
{
get
{
return emotions;
}
}
public bool HasEmotion
{
get
{
if (hasGdiPlus)
{
foreach (string emoticon in emotions.Keys)
{
if (Text.IndexOf(emoticon, StringComparison.CurrentCultureIgnoreCase) > -1)
{
return true;
}
}
}
return false;
}
}
public RtfColor HiglightColor
{
get
{
return highlightColor;
}
set
{
highlightColor = value;
}
}
public new string Rtf
{
get
{
return RemoveBadChars(base.Rtf);
}
set
{
base.Rtf = value;
}
}
public RtfColor TextColor
{
get
{
return textColor;
}
set
{
textColor = value;
}
}
[Flags]
private enum EmfToWmfBitsFlags
{
EmfToWmfBitsFlagsDefault = 0,
EmfToWmfBitsFlagsEmbedEmf = 1,
EmfToWmfBitsFlagsIncludePlaceable = 2,
EmfToWmfBitsFlagsNoXORClip = 4
}
public enum RtfColor
{
Black,
Maroon,
Green,
Olive,
Navy,
Purple,
Teal,
Gray,
Silver,
Red,
Lime,
Yellow,
Blue,
Fuchsia,
Aqua,
White
}
}
};

165
Example/TraceForm.Designer.cs generated Normal file
View file

@ -0,0 +1,165 @@
namespace MSNPSharpClient
{
partial class TraceForm
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows
/// <summary>
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(TraceForm));
this.tsbStart = new System.Windows.Forms.ToolStripButton();
this.tsbStop = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.tsbClear = new System.Windows.Forms.ToolStripButton();
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.toolStripLabelLevel = new System.Windows.Forms.ToolStripLabel();
this.toolStripComboBoxLevel = new System.Windows.Forms.ToolStripComboBox();
this.rtbTrace = new System.Windows.Forms.RichTextBox();
this.toolStrip1.SuspendLayout();
this.SuspendLayout();
//
// tsbStart
//
this.tsbStart.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
this.tsbStart.Enabled = false;
this.tsbStart.Image = ((System.Drawing.Image)(resources.GetObject("tsbStart.Image")));
this.tsbStart.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbStart.Name = "tsbStart";
this.tsbStart.Size = new System.Drawing.Size(35, 22);
this.tsbStart.Text = "Start";
this.tsbStart.ToolTipText = "Start Tracing";
this.tsbStart.Click += new System.EventHandler(this.tsbStart_Click);
//
// tsbStop
//
this.tsbStop.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
this.tsbStop.Image = ((System.Drawing.Image)(resources.GetObject("tsbStop.Image")));
this.tsbStop.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbStop.Name = "tsbStop";
this.tsbStop.Size = new System.Drawing.Size(35, 22);
this.tsbStop.Text = "Stop";
this.tsbStop.ToolTipText = "Stop Tracing";
this.tsbStop.Click += new System.EventHandler(this.tsbStop_Click);
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25);
//
// tsbClear
//
this.tsbClear.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
this.tsbClear.Image = ((System.Drawing.Image)(resources.GetObject("tsbClear.Image")));
this.tsbClear.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbClear.Name = "tsbClear";
this.tsbClear.Size = new System.Drawing.Size(38, 22);
this.tsbClear.Text = "Clear";
this.tsbClear.ToolTipText = "Clear All";
this.tsbClear.Click += new System.EventHandler(this.tsbClear_Click);
//
// toolStrip1
//
this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.tsbStart,
this.tsbStop,
this.toolStripSeparator1,
this.tsbClear,
this.toolStripSeparator2,
this.toolStripLabelLevel,
this.toolStripComboBoxLevel});
this.toolStrip1.Location = new System.Drawing.Point(0, 0);
this.toolStrip1.Name = "toolStrip1";
this.toolStrip1.Size = new System.Drawing.Size(661, 25);
this.toolStrip1.TabIndex = 1;
this.toolStrip1.Text = "toolStrip1";
//
// toolStripSeparator2
//
this.toolStripSeparator2.Name = "toolStripSeparator2";
this.toolStripSeparator2.Size = new System.Drawing.Size(6, 25);
//
// toolStripLabelLevel
//
this.toolStripLabelLevel.Name = "toolStripLabelLevel";
this.toolStripLabelLevel.Size = new System.Drawing.Size(40, 22);
this.toolStripLabelLevel.Text = "Level: ";
//
// toolStripComboBoxLevel
//
this.toolStripComboBoxLevel.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.toolStripComboBoxLevel.Items.AddRange(new object[] {
"Verbose",
"Info",
"Warning",
"Error",
"Off"});
this.toolStripComboBoxLevel.Name = "toolStripComboBoxLevel";
this.toolStripComboBoxLevel.Size = new System.Drawing.Size(121, 25);
this.toolStripComboBoxLevel.SelectedIndexChanged += new System.EventHandler(this.toolStripComboBoxLevel_SelectedIndexChanged);
//
// rtbTrace
//
this.rtbTrace.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.rtbTrace.Location = new System.Drawing.Point(0, 30);
this.rtbTrace.Name = "rtbTrace";
this.rtbTrace.Size = new System.Drawing.Size(661, 457);
this.rtbTrace.TabIndex = 0;
this.rtbTrace.Text = "";
//
// TraceForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(661, 488);
this.Controls.Add(this.toolStrip1);
this.Controls.Add(this.rtbTrace);
this.Name = "TraceForm";
this.Text = "TraceForm";
this.Load += new System.EventHandler(this.TraceForm_Load);
this.toolStrip1.ResumeLayout(false);
this.toolStrip1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.ToolStripButton tsbStart;
private System.Windows.Forms.ToolStripButton tsbStop;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
private System.Windows.Forms.ToolStripButton tsbClear;
private System.Windows.Forms.ToolStrip toolStrip1;
private System.Windows.Forms.RichTextBox rtbTrace;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
private System.Windows.Forms.ToolStripLabel toolStripLabelLevel;
private System.Windows.Forms.ToolStripComboBox toolStripComboBoxLevel;
}
}

291
Example/TraceForm.cs Normal file
View file

@ -0,0 +1,291 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
using System.Security.Permissions;
namespace MSNPSharpClient
{
using MSNPSharp;
public partial class TraceForm : Form
{
RichTextBoxTraceListener rtbTraceListener = null;
public TraceForm()
{
InitializeComponent();
this.Icon = Properties.Resources.MSNPSharp_logo_small_ico;
rtbTraceListener = new RichTextBoxTraceListener(rtbTrace);
Trace.Listeners.Add(rtbTraceListener);
FormClosing += new FormClosingEventHandler(TraceForm_FormClosing);
}
void TraceForm_FormClosing(object sender, FormClosingEventArgs e)
{
rtbTraceListener.Close();
Trace.Listeners.Remove(rtbTraceListener);
}
private void tsbClear_Click(object sender, EventArgs e)
{
rtbTrace.Clear();
}
private void tsbStop_Click(object sender, EventArgs e)
{
rtbTraceListener.Stop();
tsbStart.Enabled = true;
tsbStop.Enabled = false;
}
private void tsbStart_Click(object sender, EventArgs e)
{
rtbTraceListener.Resume();
tsbStart.Enabled = false;
tsbStop.Enabled = true;
}
private void TraceForm_Load(object sender, EventArgs e)
{
toolStripComboBoxLevel.SelectedItem = "Verbose";
}
private void toolStripComboBoxLevel_SelectedIndexChanged(object sender, EventArgs e)
{
MSNPSharp.Settings.TraceSwitch.Level = (TraceLevel)Enum.Parse(typeof(TraceLevel), toolStripComboBoxLevel.SelectedItem.ToString());
}
}
public class TraceWriter : TextWriter
{
private RichTextBox richTextBox = null;
private delegate void WriteHandler(string buffer, RichTextBox rtb);
private const int MaxBufferLen = 1024;
private StringBuilder buffer = new StringBuilder(MaxBufferLen);
private DateTime lastInputTime = DateTime.Now;
private Thread writeThread = null;
private Queue<char> messageQueue = new Queue<char>(MaxBufferLen);
private bool canClose = false;
private bool userClick = false;
private int selectionStart = 0;
private int selectionLength = 0;
protected virtual void WriteBuffer()
{
StringBuilder trace = new StringBuilder(MaxBufferLen);
while (!canClose)
{
lock (messageQueue)
{
while (messageQueue.Count > 0)
{
trace.EnsureCapacity(buffer.Length < MaxBufferLen ? MaxBufferLen : MaxBufferLen + 2);
trace.Append(messageQueue.Dequeue());
}
}
if (trace.Length > 0)
{
try
{
richTextBox.BeginInvoke(new WriteHandler(OutPut), new object[] { trace.ToString(), richTextBox });
}
catch (Exception)
{
return;
}
trace.Remove(0, trace.Length);
}
Thread.Sleep(Settings.IsMono ? 5000 : 100);
}
}
protected virtual void OutPut(string buffer, RichTextBox rtb)
{
if (selectionStart == rtb.Text.Length)
userClick = false;
rtb.AppendText(buffer);
if (userClick)
{
rtb.Select(selectionStart, selectionLength);
rtb.ScrollToCaret();
}
}
public TraceWriter(RichTextBox outputRTB)
{
richTextBox = outputRTB;
richTextBox.Click += new EventHandler(richTextBox_Click);
richTextBox.KeyDown += new KeyEventHandler(richTextBox_KeyDown);
writeThread = new Thread(new ThreadStart(WriteBuffer));
writeThread.Start();
}
void richTextBox_KeyDown(object sender, KeyEventArgs e)
{
userClick = true;
selectionStart = richTextBox.SelectionStart;
selectionLength = richTextBox.SelectionLength;
}
void richTextBox_Click(object sender, EventArgs e)
{
userClick = true;
selectionStart = richTextBox.SelectionStart;
selectionLength = richTextBox.SelectionLength;
}
public override void Write(char value)
{
if (richTextBox != null && buffer != null)
{
lock (messageQueue)
{
messageQueue.Enqueue(value);
}
}
}
public override void Close()
{
canClose = true;
base.Close();
}
public override Encoding Encoding
{
get { return Encoding.Default; }
}
}
[HostProtection(SecurityAction.LinkDemand, Synchronization = true)]
public class RichTextBoxTraceListener : TraceListener
{
// Fields
private TraceWriter writer = null;
private object syncObject = new object();
private bool stop = false;
// Methods
public RichTextBoxTraceListener()
: base()
{
}
public RichTextBoxTraceListener(RichTextBox rtb)
: base(string.Empty)
{
writer = new TraceWriter(rtb);
}
public override void Close()
{
if (this.writer != null)
{
this.writer.Close();
}
this.writer = null;
this.stop = true;
}
private bool EnsureWriter()
{
lock (syncObject)
{
if (writer == null || stop == true) return false;
return true;
}
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
this.Close();
}
}
public override void Flush()
{
if (!EnsureWriter()) return;
this.writer.Flush();
}
private static Encoding GetEncodingWithFallback(Encoding encoding)
{
Encoding encoding2 = (Encoding)encoding.Clone();
encoding2.EncoderFallback = EncoderFallback.ReplacementFallback;
encoding2.DecoderFallback = DecoderFallback.ReplacementFallback;
return encoding2;
}
public override void Write (string message)
{
if (!EnsureWriter ())
return;
if (base.NeedIndent)
{
this.WriteIndent ();
}
if (!Settings.IsMono)
{
this.writer.Write ("[" + DateTime.Now.ToString ("u") + "] " + message);
}
}
public override void WriteLine(string message)
{
if (!EnsureWriter()) return;
if (base.NeedIndent)
{
this.WriteIndent();
}
this.writer.WriteLine("[" + DateTime.Now.ToString("u") + "] " + message);
base.NeedIndent = true;
}
public void Stop()
{
lock (syncObject)
{
stop = true;
}
}
public void Resume()
{
lock (syncObject)
{
stop = false;
}
}
// Properties
public TraceWriter Writer
{
get
{
return this.writer;
}
set
{
this.writer = value;
}
}
}
}

169
Example/TraceForm.resx Normal file
View file

@ -0,0 +1,169 @@
<?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>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="tsbStart.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL
U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI
VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ
QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4
/g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9
cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j
3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR
dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb
NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE
s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC
</value>
</data>
<data name="tsbStop.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL
U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI
VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ
QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4
/g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9
cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j
3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR
dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb
NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE
s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC
</value>
</data>
<data name="tsbClear.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL
U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI
VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ
QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4
/g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9
cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j
3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR
dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb
NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE
s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC
</value>
</data>
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>