Recently, I accepted a new challenging job, that is, getting the contact of MSN and implementing MSN operations.
Private xihsolutions. dotmsn. Messenger messenger = new messenger ();
Protected void page_load (Object sender, eventargs E)
{
// By default this example will emulate the official Microsoft Windows Messenger Client
Messenger. Credentials. clientid = "msmsgs@msnmsgr.com
";
Messenger. Credentials. clientcode = "q1p7w2e4j9r8u3s5 ";
// Uncomment this to enable verbose output for debugging
Settings. traceswitch. Level = system. Diagnostics. tracelevel. verbose;
// Set the events that we will handle
// Remember that the nameserver is the server that sends contact lists, notifies you of contact status changes, etc.
// A switchboard server handles the individual conversation sessions.
Messenger. nameserverprocessor. connectionestablished + = new eventhandler (nameserverprocessor_connectionestablished );
Messenger. nameserver. signedin + = new eventhandler (nameserver_signedin );
Messenger. nameserver. signedoff + = new signedoffeventhandler (nameserver_signedoff );
Messenger. nameserverprocessor. connectingexception + = new
Processorexceptioneventhandler (nameserverprocessor_connectingexception );
Messenger. nameserver. exceptionoccurred + = new handlerexceptioneventhandler (nameserver_exceptionoccurred );
Messenger. nameserver. authenticationerror + = new handlerexceptioneventhandler (nameserver_authenticationerror );
Messenger. nameserver. servererrorreceived + = new errorreceivedeventhandler (nameserver_servererrorreceived );
Messenger. conversationcreated + = new conversationcreatedeventhandler (messenger_conversationcreated );
Messenger. transferinvitationreceived + = new
Msnslpinvitationreceivedeventhandler (messenger_transferinvitationreceived );
}
/// <Summary>
/// Asks the user to accept or deny the incoming filetransfer invitation.
/// </Summary>
/// <Param name = "sender"> </param>
/// <Param name = "E"> </param>
Private void messenger_transferinvitationreceived (Object sender, msnslpinvitationeventargs E)
{
// If (MessageBox. Show (
// Messenger. contactlist [E. transferproperties. remotecontact]. Name +
// "Wants to send you a file./R/nfilename:" +
// E. filename + "/R/nlength (bytes):" + E. filesize,
// "Filetransfer invitation ",
// Messageboxbuttons. yesno, messageboxicon. Question) = dialogresult. Yes)
//{
/// By setting the accept property in the eventargs to true we give the transfer a green light
// Savefiledialog. filename = E. filename;
// If (dialogresult) invoke (New
Showfiledialogdelegate (showfiledialog), new object [] {savefiledialog
}) = Dialogresult. OK)
//{
// E. transfersession. datastream = new filestream (savefiledialog. filename, filemode. Create, fileaccess. Write );
// E. Accept = true;
//}
//}
}
Private void messenger_conversationcreated (Object sender, conversationcreatedeventargs E)
{
// Check if the request is initiated remote or by this object
// If it is initiated remote then we have to create a conversation form. Otherwise
// Form is already created and we don't need to create another one.
If (E. initiator = NULL)
{
// Use the invoke method to create the form in the main thread
// Control. Invoke (New createconversationdelegate (createconversationform), new object [] {e. Conversation });
}
}
/// <Summary>
/// Notifies the user of errors which are sent by the MSN server.
/// </Summary>
/// <Param name = "sender"> </param>
/// <Param name = "E"> </param>
Private void nameserver_servererrorreceived (Object sender, msnerroreventargs E)
{
// When the MSN server sends an error code we want to be notified.
// Response. Write (E. msnerror. tostring ());
Setstatus ("server error received ");
}
Private void nameserver_authenticationerror (Object sender, exceptioneventargs E)
{
// Response. Write ("authentication failed, check your account or password .");
Setstatus ("authentication failed ");
}
Private void nameserver_exceptionoccurred (Object sender, exceptioneventargs E)
{
// Ignore the unauthorized exception, since we're handling that error in another method.
If (E. Exception is unauthorizedexception)
Return;
// Response. Write (E. Exception. tostring ());
}
Private void nameserverprocessor_connectingexception (Object sender, exceptioneventargs E)
{
// String message = E. Exception. tostring ();
Setstatus ("Connecting failed ");
}
Private void nameserver_signedoff (Object sender, signedoffeventargs E)
{
Setstatus ("signed off from the messenger network ");
}
Private void nameserver_signedin (Object sender, eventargs E)
{
Setstatus ("signed into the messenger network as" + messenger. Owner. Name );
// Set our presence status
Messenger. Owner. Status = presencestatus. online;
Updatecontactlist ();
}
Private void nameserverprocessor_connectionestablished (Object sender, eventargs E)
{
Setstatus ("connected to server ");
}
Private delegate void updatecontactlistdelegate ();
/// <Summary>
/// Updates the listview.
/// </Summary>
Private void updatecontactlist ()
{
If (messenger. Connected = false)
Return;
// Listview1.items. Clear ();
Listbox1.items. Clear ();
// Messenger. contactlist. All. Current
If (messenger. contactlist. All! = NULL)
{
String costring = "";
Foreach (contact in messenger. contactlist. All)
{
Listitem item = new listitem ();
Item. Text = contact. Name;
// Item. value = contact. tostring ();
Listbox1.items. Add (item );
Costring = costring + contact. Name. Trim ();
}
Response. Write ("<SCRIPT> alert ('" + costring + "'); </SCRIPT> ");
Listbox1.databind ();
}
}
Protected void button#click (Object sender, eventargs E)
{
// Messenger. Credentials. clientid = "msmsgs@msnmsgr.com
";
// Messenger. Credentials. clientcode = "q1p7w2e4j9r8u3s5 ";
If (messenger. Connected)
{
Messenger. Disconnect ();
}
Messenger. Credentials. Account = txtuserid. Text. Trim ();
Messenger. Credentials. Password = txtpasswd. Text. Trim ();
// Messenger. connectivitysettings. proxyhost = "10.1.180.11 ";
// Messenger. connectivitysettings. proxyport = 8080;
// Messenger. connectivitysettings. proxytype = proxytype. SOCKS5;
// Messenger. connectivitysettings. proxyusername = User Name
// Messenger. connectivitysettings. proxypassword = Password
Try
{
Messenger. Connect ();
// Response. Write ("<SCRIPT> alert ('success'); </SCRIPT> ");
}
Catch (exception message)
{
// Response. Write (Message );
}
// Listbox1.appenddatabounditems ();
}
Private delegate void setstatusdelegate (string status );
Private void setstatussynchronized (string status)
{
// Response. Write (Status );
}
Private void setstatus (string status)
{
Setstatussynchronized (Status );
}
}
Dotmsn can be used to operate the MSN control. To be happy, you can use MSN to obtain contacts on campus.