Wysłany: 03 Gru 2004 19:55 Funkcja 0387 - wywoływanie menu
Funkcja 0387 wywołuje menu z podanego root offset-u.
Czyli, w miejsce funkcji 05E0 podajemy funkcje 0387, a w miejsce ID funkcji 05E0 podajemy root offset danego menu.
Telefon: NHM-5
Dołączył: 23 Mar 2004 Posty: 93 Skąd: Essen/Niemcy
Wysłany: 06 Gru 2004 09:36
tak, zgadza sie, jest ona czesto wykorzystywana w menu. programy zrzucajace strukture menu (g3n0lite, NokiX) rozpoznaja po niej, ze jest to podmenu i "wchodza" do srodka.
[ Dodano: 06-12-2004, 09:40 ]
a tak na marginesie dodam co ja wiem: 0x1b5c/0x1b5d - jedna wlacza, druga wylacza podswietlenie, 0x6cc - zmienia stan blokady klawiszy (wl./wyl.), wiecej teraz nie pamietam...
Telefon: NHM-5
Dołączył: 23 Mar 2004 Posty: 93 Skąd: Essen/Niemcy
Wysłany: 07 Gru 2004 11:04
To ja jeszcze dopowiem: zamiast 0x40C8 moze byc samo 0xC8; wartosci dla innych klawiszy: C - 0x1A, Navi - 0x19, strzalka w gore - 0x17, strzalka w dol - 0x18, power - 0x0D.
[ Dodano: 07-12-2004, 11:14 ]
A i jeszcze funkcja 0xC9 to symulacja puszczenia klawisza, argument ten sam co przy 0xC8. Jest jeszcze 0xCA, to tez nacisniecie, tylko ze argument jest w ASCII (a moze nawet w Unicode), np. klawisz 0 to 0x30, 1 to 0x31 itd. Wartosci ASCII mozna podejrzec w dowolnym hex edytorze. tych funkcji jest mnostwo ale wiekszosc nie zostala stworzona do wywolywania przez menu, niektore maja wiecej argumentow (a przez menu mozna podac tylko jeden). jak wspomniana 0x8226 - normalnie ma dwa argumenty: id ikonki i adres tekstu.
[ Dodano: 07-12-2004, 11:22 ]
a wogole to wyjasnie jak jest z tym 0xC8 zamiast 0x40C8. ten numer funkcji zawiera w sobie dwie informacje: numer funkcji i ilosc parametrow. numer funkcji to dolne 14 bitow natomist gorne 2 to ilosc parametrow. podczas wywolywania z menu do wstawionego w strukturze numeru dodawana jest wlasnie ilosc parametrow rowna 1 (bo jest tylko jedno pole parametru w strukturze). w hexie wyglada to tak (jako przyklad wezme to 0xC8): samo 0xC8 - bez argumentow, 0x40C8 - jeden argument, 0x80C8 - dwa argumenty, 0xC0C8 - 3 argumenty. Dlatego widzicie, przy 0x40C8 mozna tej czworki nie podawac bo jest ona zawsze ustawiana przy wywolywaniu z menu. Tak samo jest z 0x5E0, w menu jest 0x5E0 ale tak naprawde wysylana jest 0x45E0 (jeden argument - id funkcji). nokie maja taka funkcje SEND_MESSAGE, ktora w R0 oczekuje wlasnie numeru funkcji (ja to wlasciwie nazywam wiadomoscia) wlasnie z tym 4/8/C a pozniej argumentow w R1/R2/R3. Jak ktos sie bawi WinARM'em to znajdzie setki wywolan tej funkcji. Jesli chociaz jedna osoba cos z tego zrozumiala to sie ciesze :)).
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Nie możesz ściągać załączników na tym forum