Aby otworzyć czat wypełniasz strukturę TPluginChatOpen:(opisałem wszystko co wiem )
typedef struct TPluginChatOpen { int cbSize; wchar_t* JID; //JID Chatrooma int UserIdx; wchar_t* Channel; //Nazwa Chatrooma wchar_t* Nick; bool NewWindow; // nowe okno jak nazwa wskazuje ;p bool IsNewMsg; bool Priority; wchar_t* OriginJID; int ImageIndex; bool AutoAccept; //wartość 0 jeśli chcemy akceptacji, 1 jeśli nie chcemy } TPluginChatOpen; typedef TPluginChatOpen *PPluginChatOpen;I wysyłasz ją do AQQ
PluginLink.CallService(AQQ_SYSTEM_CHAT_OPEN, 0, DWORD(@ChatOpen));
Aby dodać lub usunąć kontakt z listy korzystasz z TPluginChatPresence
typedef struct TPluginChatPresence { int cbSize; int UserIdx; wchar_t* JID; //podajesz jid kanału i jid kontaktu w taki sposób "#haxite@kanal/arni077@kontakt" wchar_t* RealJID; //prawdziwy jid kontaktu wchar_t* Affiliation; //AFFILIATION_ADMIN = "admin"; //AFFILIATION_OUTCAST = "outcast"; //AFFILIATION_MEMBER = "member"; //AFFILIATION_OWNER = "owner"; //AFFILIATION_NONE = "none"; wchar_t* Role; //ROLE_VISITOR = "visitor"; //ROLE_MODERATOR = "moderator"; //ROLE_PARTICIPANT = "participant"; //ROLE_OBSERVER = "none"; bool Offline; //podajemy czy kontakt ma zostać dodany czy usunięty z listy wchar_t* Nick; //wyświetlany nick kontaktu bool Kicked; //wykopany z kanalu bool Banned; //zbanowany na kanale wchar_t* Ver; wchar_t* JIDToShow; //wyświetlany jid kontaktu } TPluginChatPresence; typedef TPluginChatPresence *PPluginChatPresence;I oczywiście wysyłasz:
PluginLink.CallService(AQQ_SYSTEM_CHAT_PRESENCE, 0, DWord(@ChatPres));
Teraz żeby wyświetlić wiadomość na czacie
typedef struct TPluginMessage { int cbSize; wchar_t* JID; //podajesz jid kanału i jid kontaktu w taki sposób "#haxite@kanal/arni077@kontakt" double Date; int ChatState; wchar_t* Body; // tresc wiadomosci bool Offline; wchar_t* DefaultNick; //nick jaki sie ma wyświetlać bool Store; // czy ma zapisać wiadomość do archiwum czy nie unsigned char Kind; // dajemy wartość MSGKIND_GROUPCHAT = 1 } TPluginMessage; typedef TPluginMessage *PPluginMessage;
PluginLink.CallService(AQQ_CONTACTS_MESSAGE, 0, DWord(@ChatMessage));
Myślę że wszystko wytłumaczyłem, a jeśli nie to proszę napisać to podpowiem.