Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Informacje podstawowe
Konnekt | Forum > Developerzy > Tworzenie wtyczek
KoSiarzPL
sUIActionNotify_base->act _act

_act.id - zawiera identyfikator zdarzenia jakie zaszlo (identyfikatory wbudowane i stworzone przez programiste)

_act.cnt - zawiera identyfikator urzytkownika dla ktorego zaszlo to zdarzenie (kiedy jest on pusty?)

_act.parent - identyfikator grupy, czy chodzi o GroupBoxy tworzone w oknie konfiguracji? Czy sa tez inne grupy

sUIActionNotify_base->code - jest to akcja dla _act tak?

jesli robie:
if ((anBase->act.id & IMIB_) == IMIB_CFG) return ActionCfgProc(anBase);
to sprawdzam czy bit w act.id zgadza sie z IMIB_. Ale ja tworzac identyfikator akcji nie uwzgledniam w nim czy jest w nim ten bit. Wiec to nigdy nie powinno byc spelnione a jesli jest to pozniej porownanie wartosci _act.id i mojego id nie beda rowne. Wiec jak z tym jest. Rdzen sam dodaje bit i sam go musze przed sprawdzaniem odjac. tak?

czyli komunikaty wygladaja tak:
1. tworze id zdarzenia
2. rejestruje zdarzenie
3. w petli obslugi zdarzen sprawdzam czy _act.id = moj_id_zdarzenia
4. w .code moge sprawdzic jakie zdarzenie wywolalo moje zdarzenie

Czesc 2:
IM_PLUG_TYPE - Zwracamy jakiego typu jest nasza wtyczka (które wiadomości będziemy obsługiwać)

Moze przyjmowac wartosci:

IMT_ALL - Wszystkie typy.
IMT_ALLMESSAGES - Otrzyma w IM_MSG_RCV wszystkie wiadomoťci , niezale¬nie od NET.
IMT_CONFIG - Konfiguracja.
IMT_CONTACT - Kontakty.
IMT_CORE - Wiadomość bezpośrednio do rdzenia (lub UI).
IMT_MESSAGE - Wiadomości tekstowe.
IMT_MESSAGEACK - Będzie otrzymywać IM_MSG_ACK.
IMT_MSGUI - Wtyczka wykorzystuje system obsługi wiadomości tekstowych zawarty w UI.
IMT_NET - Wtyczka obsługuje kontakty całej swojej sieci.
IMT_NETSEARCH - Wtyczka obsługuje wyszukiwanie kontaktów w swojej sieci.
IMT_NETUID - Kontakty w sieci posiadają UID (UserID).
IMT_PROTOCOL - Protokół sieciowy.
IMT_UI - Interfejs Użytkownika (używanie wtyczki UI).

Nie no super opis. Moglby ktos mi opisac jaki wplyw na wtyczke maja poszczegolne wartosci.

Dziekuje, to tyle na dzis.
hao
Przede wszystkim - przejrzyj SDK. Masz tam w "Dodatkowe strony" - "Jak napisać własną wtyczke?", oraz kilka przykładów i opisów...

Flagi IMIB_ są tylko i wyłącznie dla ułatwienia i wcale nie trzeba ich używać. Jeżeli np. tworzysz akcję w konfiguracji, która ma być powiązana z ustawieniem CFG_MOJE_USTAWIENIE, to żeby nie wymyślać osobnego identyfikatora dla akcji, oraz mieć pewność że nie pokryje się on z żadnym istniejącym, ustawiasz identyfikator akcji jako (IMIB_CFG | CFG_MOJE_USTAWIENIE). W ActionCfgProc z id usuwana jest flaga IMIB_, więc w switch/case można podać samo CFG_MOJE_USTAWIENIE...
Reasumując, flagę IMIB_ ustawiasz sam na własne życzenie...

->code jest to rodzaj powiadomienia - ACTN_ACTION, ACTN_CHECK itd...
->act to akcja dla której powiadomienie wystąpiło
act.cnt zawiera cokolwiek tylko przy akcjach związanych z użytkownikiem (czyli akcje menu kontaktów, okna rozmowy, okna informacji o kontakcie)
act.parent to identyfikator akcji nadrzędnej. Jeżeli zarejestrujesz akcję przez UIGroupInsert() zostanie ona zarejestrowana jako grupa (ale MUSI mieć wtedy unikalny ID!) i będzie można do niej dodawać podakcje

IM_PLUG_TYPE zwraca typ obsługiwanych komunikatów...
Więc jeżeli Twoja wtyczka chce dostawać ogólne komunikaty o kontaktach, zwraca tam IMT_CONTACT, jeżeli jest wtyczką z własną siecią kontaktów zwracasz ustawione IMT_NET, itd... Oczywiście flagi się łączą: IMT_CONTACT | IMT_NET ...
Podczas wysyłania komunikatu przez IMessage() podaje się jego typ. Komunikat otrzymają tylko te wtyczki, które zadeklarują jego obsługę w IM_PLUG_TYPE.

KoSiarzPL
SDK juz czytalem i nie bylo tam tego czego szukam. Tzn jest tyle ile napisalem w tym temacie. Dzialajaca wtyczke tez umiem napisac poprzez skopiuj wklej a chce wiedziec dokladnie co oznacza kazda instrukcja. Dalej nie rozuimem co oznacza poszczegolny IMT_. Bo opis "kontakty" "wiadomosci tekstowe" a tym bardziej "Kontakty w sieci posiadają UID (UserID)" "Protokół sieciowy" nie wiele mi mowi.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2012 Invision Power Services, Inc.