
Unlike previous versions of MSN Messenger, which exposed all lists, versions 5 and up only expose the contact list. Via the property MyContacts you have access to an IMessengerContacts object which holds a collection of IMessengerContact objects.
All about Windows Live Messenger, providing news, reviews, support, and information for developing and improving your Messenger experience.

Unlike previous versions of MSN Messenger, which exposed all lists, versions 5 and up only expose the contact list. Via the property MyContacts you have access to an IMessengerContacts object which holds a collection of IMessengerContact objects.

.NET Messenger Service supports the status “Idle”, which MSN Messenger doesn’t let you change to, but is automatically set, if enabled, after a certain period of inactivity. The setting can be found on the personal tab in options dialog: “Show me as ‘Away’ when I’m inactive for X minutes”.
MSN Messenger doesn’t actually show users as idle when the status is automatically set, but instead shows them as “Away”. Fortunately, it doesn’t share the same resource strings for idle and away, so one of the aways can be changed to idle. There are two instances that need to be changed, in msgslang.dll on table 3, entry 38: ” (Away)”, which is for displaying next to users in the contact list, should be changed to ” (Idle)”. And on table 7, entry 101: “Away”, for showing in the contact properties dialog, should be changed to “Idle”.
I’ve created an example in Visual Basic 6 that changes both entries using Windows’ resource editing functions.

Most methods and properties that you call will generate an error if something is not right, these errors can be trapped and you can do your own thing when it happens. The errors that MSN Messenger will raise are defined in an constant enum MSGRConstants, this enum disappeared in MSN Messenger 6, so download our export of it instead. Because this export is from MSN Messenger 5, it is now missing new values introduced in MSN Messenger 6 and 7. It is also renamed MSNMSGRConstants for compatibility purposes.
This example handles two common errors when calling AutoSignin, one being if the sign in details aren’t saved (”remember sign-in name and passport..”), and if the user is already signed in.
Option Explicit Public m_objMessenger As MessengerAPI.Messenger Private Sub Form_Load() Dim eError As MSNMSGRConstants On Error GoTo ErrForm_Load Set m_objMessenger = New MessengerAPI.Messenger Call m_objMessenger.AutoSignin ErrForm_Load: eError = Err.Number If eError = MSGR_E_FAIL Then Debug.Print "Signin name and password are not saved." ElseIf eError = MSGR_E_ALREADY_LOGGED_ON Then Debug.Print "Already logged in." End If End Sub
What happens here is, code execution goes to a special handler when an error occurs, a MSNMSGRConstant enum variable is set to the last error number, Err.Number. And an if statement detects what the error was and prints to debug a little detail.