Raz poprawnie przydzielonego identyfikatora NIE zmieniamy!
Sprawdzamy w SDK czy identyfikator który chcemy wykorzystać nie jest już zajęty
Wartość NET powinna być w przedziale od 256 do 0x00007FFF, w praktyce, nie powinna przekraczać 8000
Nieduże wtyczki nie posiadające własnej sieci kontaktów mogą spokojnie dzielić tą samą wartość NET z innymi niewielkimi wtyczkami
Wtyczki obsługujące protokoły sieciowe i korzystające z identyfikatorów ikonek muszą mieć wartość NET < 128.
Osoby piszące takie wtyczki proszone są o kontakt z twórcami konnekta, nie ma problemu żeby wstawić je poniżej tej wartości.
Wartość SIG
Musi być unikalna, niezmienna oraz jednoznaczna!
Może skłądać się jedyie ze znaków alfanumerycznych oraz znaku podkreślenia (_)
Zabrania się używać polskich liter
Długość SIG musi zawierać się w przedziale <3; 12> znaków
Nazwa powinna być pisana w całości wielkimi literami
Nazwa powinna jednoznacznie kojarzyć się z wtyczką, nie należy używać skrutów poza uzasadnionymi przypatkami
Identyfikatory akcji itp.
Nowe identyfikatory typów komunikatów (MT_) i statusów (ST_) na potrzeby nowych wtyczek MUSZĄ być skonsultowane z opiekunem SDK
Nie ma potrzeby tworzyć kolejnego identyfikatora, jeśli jest już jakiś spełaniający daną rolę
Wszystkie pozostałe identyfikatory (akcji, ikon, kolumn itp.) powinny być tworzone jako ID * 1000 + wartość (wiecej o ID tutaj)
Identyfikatory powinny być mniejsze od 0x007FFFFF (nie licząc maski, na które zostały przygotowane pozostałe bity)
Identyfikatory komunikatów powinny być tworzone jako IM_USER + ID * 1000 + wartość (musze więc być większe niż IM_USER)
Wszystkie identyfikatory w gotowych wtyczkach powinny być zgłoszone do SDK. Najlepiej w pliku nagłówkowym
Koniecznie uważaj na
Należy respektować wszystkie ustawienia użytkownika sprawdzając wartości w tablicach konfiguracji
Wszystkie tablice znaków (char*) zwracane przez dowolne funkcje NIE MOGĄ być edytowane. Zwracane wartości są najczęściej tymczasowe i kolejne wywołanie funkcji API może bufor tymczasowy nadpisać... Jeżeli ich zawartość będzie potrzebna po wywołaniu jakiejkolwiek następnej f-cji API musi ona zostać najpierw skopiowana.
Wszystkie dłuższe operacje (zwłaszcza sieciowe) MUSZĄ być wykonywane w osobnych wątkach
Wtyczki NIE mogą zmieniać aktywnego katalogu aplikacji. Większość ścieżek zapisana jest relatywnie do katalogu z programem. W razie niepewności, można użyć IMC_RESTORECURDIR
Powinieneś
Informacje o wtyczce powinny być zapisane w Resources DLLa. Jako IM_PLUG_VERSION, jeśli nie używamy resources musimy przekazać wersję w postaci "Major.Minor.Release.Build", przy czym, z dwóch ostatnich pól można zrezygnować.
Jeżeli tworzysz ogólnodostępny IMessage, zamiast przekazywać do niego informacje w p1 i p2 zdefiniuj własną strukturę w której będą przekazywane informacje
Pamietaj
Błędnie wysłany komunikat (np. opakowany w złą (np. za małą) strukturę) nie jest po drodze sprawdzany pod kątem poprawności. W najlepszym wypadku spowoduje wywrócenie się programu! W tej chwili najczęściej używaną strukturą jest IMessage_2params (przez f-cje pomocnicze), w przyszłości, każdy komunikat będzie miał swoją prototypową funkcję i już nie trzeba będzie tak uważać. Trzeba jednak koniecznie stosować się do podawanych wymaganych struktur, a w obsłudze komunikatów, wypadałoby sprawdzić, czy strukturka ma odpowiedni rozmiar
Pamiętaj, że wtyczki do których wysyłasz sIMessage, czy sUIActionNotify mogą modyfikować poszczególne pola tych struktur! Jeżeli wykorzystujesz jeden obiekt do wysyłania komunikatów do kilku wtyczek, najlepiej ustawić pola parametrów i sUIAction::cnt na nowo
UID to np. numerek/nazwa użytkownika w sieci (np. UIN w ICQ , czy numerek z Gadu) w postaci tekstowej
Użytkownik programu to kontakt o pozycji 0. Żeby sprawdzić pozycję mając identyfikator używamy cCtrl::DTgetPos(DTCNT , id_kontaktu)
Zakładamy że typy int i void * mają oba po 4 bajty
Programuj ostrożnie! Przemyśl dokładnie numerację identyfikatorów, upewnij się 3 razy czy nie będziesz kolidował z którymś z wymienionych tu punktów bądź już wykorzystywanym identyfikatorem. Twoja pomyłka, może kosztować potencjalnego użytkownika sporo nerwów i być bardzo trudną do wykrycia
W każdym nowym SDK koniecznie trzeba przeczytać changelog
Twórcą projektu kAPI, serwisu oraz materiałów w nim zawartych jest
KoSiarz. Kopiowanie zabronione.