Здавствуй, Максим. Сразу оговорюсь, что моя фамилия Гром, а не Громом ))).....Ну да ладно
Отвечаю по порядку:
1) -Отправить "Вас добавили" {как сервисное сообщение};
За отправку сервисных сообщений, о том, что вы добавили кого-то в список контактов отвечают две процедуры:
ICQClient1.SendAuthResponse(123456789, True, '');//скажем об успешной авторизации
ICQClient1.SendYouWereAdded(123456789);//отправим ответ об успешном добавлении в список
Вызываешь их в своей процедуре добавления контактов
2) -Удалить себя из его списка контактов;
Видел мельком реализацию этой функции, но не запомнил. Как то просто не обращал внимания. Точно знаю, что это возможно.
3)-Позволить вас добавть.
Когда приходит запрос авторизации, срабатывают события OnAuthRequest и OnAuthResponse. В обоих событиях приходит UIN, который просит авторизацию.
Вот пример:
procedure TForm1.ICQClient1AuthRequest(Sender: TObject; UIN,
Reason: String);
begin
ICQClient1.SSLActivate;
ICQClient1.SSLChangeStart(false);
ICQClient1.SSLAddGroup('Друзья', 0010);
ICQClient1.SSLAddUser(0010, i, uin, 'Grom', '', true, false);
ICQClient1.SendAuthRequest(StrToInt(Uin), 'Авторизируйте меня ;)');//отправим запрос авторизации (если требуется)
ICQClient1.SendAuthResponse(StrToInt(Uin), True, '');//скажеи об успешной авторизации
ICQClient1.SendYouWereAdded(StrToInt(Uin));//отправим ответ об успешном добавлении в список
ICQClient1.SSLChangeEnd;
end;
На счёт статусов честно скажу, у меня тоже не получилось. Работает только "Онлайн", "готов поболтать", "отошёл" и "не беспокоить". Да и в самом QIP'е тоже нет полной совместимости. Рекомендую изучить протокол ICQ и поюзать новые изменения.
По-любому для этого нужно будет лезть в исходник компонента и исправлять пакеты. У самого Волкова Ивана (Царь Иоанн) тоже не получилось разобраться со статусами, хотя он и я является автором исправленного компонента Ticqclient.
Посмотри на примере Царя Иоанна, Прямая ссылка на программу и на моём примере.
Методом проб и ошибок и с изучением протокола сможешь достичь результата.