Взаимодействие с Windows Live Messenger
От: Sidious  
Дата: 24.10.06 14:05
Оценка: :)
Доброго времени суток =)

Задача: необходимо получить список групп в live messenger (LM) вместе с пользователями которые туда входят. Использую Interop.MessengerAPI (add reference и дальше выбираю COM-библиотеку). Делается это всё в 2003 студии под .net 1.1 (это так, на всякий случай, мало ли поможет).
Проблема: Список групп определяется верно, а вот пользователи которые в каждую из групп входят определяются неверно. Бывает что пользователи из группы "Собутыльники" оказываются в группе "Любовницы" или того хуже вообще отображаются как люди не входящие ни в одну из групп. Причем заметил, что если открыть LM и создать группы, поперетягивать туда ВСЕХ пользователей, то информация будет получена верно. Закрываем его, потом опять запускаем — инфа неверная . Версия LM — 8.0 (8.0.0812.00).

Простой пример:
Получаем список имён групп. Работает нормально.
static string[] GetMessengerGroupsNames(MessengerClass msn)
{
    ArrayList groupNames = new ArrayList();
    foreach (IMessengerGroup group in (IMessengerGroups)msn.MyGroups)
    {
        groupNames.Add(group.Name);
    }

    return (string[])groupNames.ToArray(typeof(string));
}


Получаем список имён контактов по имени группы. Не работает.
static string[] GetMessengerGroupContactsNames(MessengerClass msn, string messengerGroupName)
{
    ArrayList contactsNames = new ArrayList();
    foreach (IMessengerGroup group in (IMessengerGroups)msn.MyGroups)
    {
        if (group.Name == messengerGroupName)
        {
            foreach (IMessengerContact contact in (IMessengerContacts)group.Contacts)
            {
                contactsNames.Add(contact.SigninName);
            }
        }
    }

    return (string[])contactsNames.ToArray(typeof(string));
}


Т.е. если судить логически, то перебирая контакты группы "Любовницы" я должен получить их всех, но такого не происходит

Что неверно и как исправить, помогите пожалуйста
Ave mater Shillieni!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.