Udostępnij przez


Przetwarzanie komunikatów panelu sterowania

Funkcja CPlApplet wywołania zwrotnego przetwarza wszystkie komunikaty wysyłane do elementu Panelu sterowania przez system Windows. Komunikaty wysyłane do funkcji są w określonej kolejności. Za pomocą tego samego tokenu element .cpl wymaga przetworzenia komunikatów w określony sposób.

Najpierw funkcja CPlApplet odbiera komunikat CPL_INIT, gdy system Windows najpierw ładuje element Panelu sterowania. Funkcja powinna wykonywać wszelkie inicjowanie, takie jak przydzielanie pamięci i zwracanie wartości niezerowej. Jeśli CPlApplet nie może ukończyć inicjowania, musi zwrócić zero, kierując system Windows do zakończenia komunikacji i zwolnienia biblioteki DLL.

Następnie, jeśli komunikat CPL_INIT zakończył się pomyślnie, system Windows wysyła komunikat CPL_GETCOUNT. Następnie funkcja musi zwrócić liczbę elementów Panelu sterowania obsługiwanych przez plik .dll.

FunkcjaCPlAppletnastępnie odbiera jeden komunikat CPL_INQUIRE i jeden komunikat CPL_NEWINQUIRE dla każdego elementu Panelu sterowania obsługiwanego przez plik .dll. Funkcja wypełnia strukturę CPLINFO lub NEWCPLINFO informacjami dotyczącymi Twojego elementu, takimi jak jego nazwa, ikona i opisowy ciąg znaków. Większość aplikacji powinna przetwarzać komunikat CPL_INQUIRE i ignorować komunikat CPL_NEWINQUIRE. Komunikat CPL_INQUIRE zawiera informacje w postaci, którą system Windows może buforować, co skutkuje znacznie lepszą wydajnością. Komunikat CPL_NEWINQUIRE jest używany tylko wtedy, gdy trzeba zmienić ikonę elementu lub wyświetlić ciągi na podstawie stanu komputera. Nie można znaleźć elementów Panelu sterowania korzystających z CPL_NEWINQUIRE za pomocą wyszukiwania w menu Start w systemie Windows Vista, ponieważ korzysta z buforowania.

Następnie funkcja CPlApplet odbiera komunikat CPL_DBLCLK jako powiadomienie, że użytkownik wybrał ikonę reprezentującą element Panelu sterowania. Ta funkcja może odbierać tę wiadomość dowolną liczbę razy. Komunikat zawiera identyfikator elementu oraz wskaźnik lpData zwrócony w strukturze CPLINFO lub NEWCPLINFO podczas wywołania CPL_INQUIRE lub CPL_NEWINQUIRE. Funkcja powinna wyświetlić odpowiednie okno dialogowe i przetworzyć kolejne dane wejściowe użytkownika.

Oprócz CPL_DBLCLK można wysłać komunikat CPL_STARTWPARMS, jeśli element Panelu sterowania jest wywoływany z wiersza polecenia lub z innego programu z parametrami wejściowymi. Komunikat zawiera identyfikator elementu wraz z dodatkowym ciągiem parametru.

Przed zakończeniem kontrolowania aplikacji CPlApplet odbiera komunikat CPL_STOP raz dla każdego elementu Panelu sterowania obsługiwanego przez plik .dll. Komunikat zawiera identyfikator elementu Panel Sterowania i wskaźnik lpData zwrócony w CPLINFO lub NEWCPLINFO struktury w wywołaniu CPL_INQUIRE lub CPL_NEWINQUIRE. Funkcja powinna zwolnić dowolną pamięć przydzieloną dla określonego okna dialogowego.

Po ostatnim komunikacie CPL_STOP, CPlApplet odbiera komunikat CPL_EXIT. Funkcja powinna zwolnić całą pozostałą przydzieloną pamięć oraz wyrejestrować wszelkie zarejestrowane klasy okien prywatnych. Natychmiast po powrocie funkcji z tego komunikatu system Windows zwalnia element Panelu sterowania, wywołując funkcję FreeLibrary.

Elementy panelu sterowania

wskazówki dotyczące środowiska użytkownika

rejestrowanie elementów panelu sterowania

Korzystanie z CPLApplet

Uruchamianie poleceń panelu sterowania

rozszerzanie elementów panelu sterowania systemu

przypisywanie kategorii panelu sterowania

tworzenie linków zadań z możliwością wyszukiwania dla elementu Panelu sterowania

uzyskiwanie dostępu do Panelu sterowania w trybie awaryjnym w systemie Windows Vista