When a local Communicator instance is up and running, signing in means connecting the application to the Communicator instance. This is accomplished when the application creates a Messenger object.
If the local Office Communicator 2007 is signed out, the application can call the IMessenger::AutoSignin method to connect Communicator to a Microsoft® Office Communications Server using the preconfigured settings and user credentials. The call logs a user into the Communications Server in the same way as the user does by clicking Sign In on the Connect menu.
In addition, the application can call the IMessenger::Signin method to sign in with explicit user credentials as specified in the parameters of the method. A call to this method launches a Sign-In Account dialog box, as shown in the following figure.
In response to a call of the IMessenger::Signin method or the IMessenger::AutoSignin method, Office Communicator Automation API raises an event to inform the application of the status of sign-in request, if the application has registered to receive the DMessengerEvents::OnSignin event and implemented the corresponding event handler.
Signing In from a C# Application
The following C# code snippet illustrates how to sign in to the communications service using Office Communicator Automation API.
Copy Code | |
---|---|
// Global or class variable CommunicatorAPI.Messenger communicator; bool connected = false; // A simple implementation of signing in. void Signin(string account, string passwd) { if (connected) return; if (communicator == null) { // Create a Messenger object, if necessary communicator = new CommunicatorAPI.Messenger(); // Register event handlers for OnSignin and Signout events communicator.OnSignin += new DMessengerEvents_OnSigninEventHandler(communicator_OnSignin); communicator.OnSignour += new DMessengerEvents_OnSignoutEventHandler(communicator_OnSignout); // Register more event handlers as appropriate. (Omitted) } if (account == null) communicator.AutoSignin(); else communicator.Signin(account, passwd); } // Event handler for OnSignin event. void communicator_OnSignin(int hr) { if (hr != 0) { Console.WriteLine("Signin failed."); return; } connected = true; // Display contacts to a console window(for illustration only). foreach (IMessengerContact contact in communicator.MyContacts as IMessengerContacts) { if (!contact.IsSelf) Console.WriteLine("{0} ({1})", contact.SigninName, contact.Status); } } |
For an example of the event handler for an OnSignout event, see Signing Out from a Communications Server.