модуль "Menu item ext."
Который как раз и занимается тем, что вытаскивает в меню контакта всякие протокольные фишки.
Ну ок, смотрим сорцы:
SET_UID(mi, 0x2616aa3f, 0x535a, 0x464c, 0xbd, 0x26, 0x1b, 0x15, 0xbe, 0xfa, 0x1f, 0xf);
mi.position = 120000;
mi.name.w = LPGENW("Always visible");
mi.pszService = MS_SETVIS;
hmenuVis = Menu_AddContactMenuItem(&mi);
SET_UID(mi, 0x7d93de78, 0xb1c, 0x4c51, 0x8c, 0x88, 0x33, 0x72, 0x12, 0xb5, 0xb8, 0xe7);
mi.position++;
mi.name.w = LPGENW("Never visible");
mi.pszService = MS_SETINVIS;
hmenuOff = Menu_AddContactMenuItem(&mi);
эти пункты дёргают сервисы MS_SETVIS и MS_SETINVIS. Смотрим, кто это у нас:
#define MS_SETINVIS "MenuEx/SetInvis"
и что у нас происходит при onSetInvis?
// set the invisible-flag in db
static INT_PTR onSetInvis(WPARAM wparam, LPARAM)
{
MCONTACT hContact = (MCONTACT)wparam;
ProtoChainSend(hContact, PSS_SETAPPARENTMODE, (db_get_w(hContact, GetContactProto(hContact), "ApparentMode", 0) == ID_STATUS_OFFLINE) ? 0 : ID_STATUS_OFFLINE, 0);
return 0;
в переводе на русский, когда мы дёргаем MS_SETINVIS, то мы пишем контакту в базу ключик ApparentMode и ставим ключику значение "Оффлайн", чтобы подменить наш реальный статус, отправляемый контакту, фейковым, тактм образом он всегда видит нас как "не в сети". "Apparent Mode" в переводе с английского "кажущийся режим", что как бы говорит о его назначении - подменять статус, отправляемый с нашей стороны .
к отображению контакта в нашем клисте это никаким боком