Ludzie pragną czasami się rozstawać, żeby móc tęsknić, czekać i cieszyć się z powrotem.
funkcje FlashWindow() czy błędach
MessageBeep())
Rejestracja zdarzeń
Rejestracja informacji o zdarzeniach w systemowym dzienniku zdarzeń
( event log)
Odwzorowywanie plików
Odwzorowywanie zawartości plików w pamięci wirtualnej
Obsługa plików
Odczytywanie i zapisywanie plików w urządzeniach pamięci masowej
Uchwyty i obiekty
Obsługa tworzenia i manipulowania tzw. uchwytami i obiektami,
reprezentującymi zasoby systemu i umożliwiającymi ich prawidłowe
wykorzystanie
10
Usługi systemu pomocy
Funkcje związane z systemem pomocy Windows. Funkcje te są de facto obsługiwane przez bibliotekę interfejsu użytkownika ( user32.dll), jednak Microsoft oficjalnie umieszcza je w grupie usług systemowych
Komunikacja
Mechanizmy umożliwiające wymianę danych pomiędzy procesami.
międzyprocesowa (IPC, Podsystem IPC obejmuje obsługę odwzorowywania plików, Interprocess
współużytkowania pamięci, potoki (anonimowe i nazwane), tzw. szczeliny
Communications)
wysyłkowe oraz obsługę schowka
Obsługa „długich” liczb Całkowitoliczbowa arytmetyka 64-bitowa
całkowitych
Szczeliny wysyłkowe
Obsługa tzw. szczelin wysyłkowych (ang. mailslot), umożliwiających jednokierunkową wymianę danych pomiędzy aplikacjami
Zarządzanie pamięcią Obsługa przydzielania i wykorzystania pamięci
Potoki Obsługa potoków (ang. pipe) – mechanizmu IPC pozwalającego procesom na wzajemną wymianę informacji
Przenośne pliki
Zarządzanie i udostępnianie obrazów w pamięci tzw. przenośnych plików
wykonywalne (PE,
wykonywalnych (funkcje zaimplementowane w bibliotece
Portable Executable)
IMAGEHLP.DLL)
Zarządzanie energią
Funkcje i komunikaty związane z podsystemem zarządzania energią
Procesy i wątki Obsługa pracy wielozadaniowej i uruchamiania procesów; tworzenie wątków i procesów potomnych aplikacji oraz zarządzanie nimi
Rejestr systemowy
Zarządzanie, odczyt i zapis danych w rejestrze Windows (ang. registry), zawierającym informacje o konfiguracji elementów systemu
Bezpieczeństwo Udostępnianie bądź blokowanie aplikacjom i użytkownikom dostępu do obiektów i zasobów (niektóre funkcje z tej grupy zaimplementowano w
bibliotece zaawansowanych rozszerzeń API, advapi32.dll)
Usługi Obsługa zautomatyzowanych procesów (usług, ang. service), w których programy bądź sterowniki urządzeń wykonują swoje zadania
automatycznie, bez komunikowania się z użytkownikiem. Zarządzanie
usługami realizowane jest przez program Menedżera usług ( Service
Control Manager, SCM); niektóre funkcje z tej grupy zaimplementowano w bibliotece advapi32.dll)
Operacje na łańcuchach
Kopiowanie, porównywanie, sortowanie, formatowanie i konwersja
łańcuchów znakowych; manipulowanie danymi typu znakowego
Obsługa wyjątków Niezależna od języka i narzędzia programistycznego obsługa tzw.
strukturalnych
wyjątków oraz zamykania procesów
Synchronizacja wątków
Mechanizmy wykorzystywane przez wątki do sterowania dostępem do
zasobów
Informacje o systemie
Funkcje udostępniające informacje o systemie (nazwa komputera,
użytkownika, wartości zmiennych środowiskowych, dane o procesorze,
ustawienia kolorów itd.)
Komunikaty systemowe
Obsługa powiadamiania aplikacji i sterowników o zmianach stanu i
11
parametrów urządzeń
Zamykanie systemu
Zamykanie sesji użytkownika i kończenie pracy systemu
Obsługa pamięci Funkcje obsługi napędów pamięci taśmowych (zapis, odczyt, taśmowych
formatowanie, odczyt informacji o taśmie i napędzie), wykorzystywane
przez aplikacje wykonujące kopie zapasowe
Data i czas
Ustawianie i odczyt daty i czasu dla plików oraz samego systemu
Obsługa stacji roboczych Obsługa wywołań funkcji GDI32 i USER32 bez względu na bieżące konto i pulpitu
użytkownika
Dostępna w obecnej wersji Windows biblioteka user32.dll zawiera 745 funkcji związanych z działaniem jądra systemu i obsługujących wyżej wspomniane podgrupy funkcjonalne. Pełną listę funkcji systemowych dostępnych w danej wersji biblioteki można uzyskać za pomocą opisanego wcześniej programu narzędziowego impdef. Należy przy tym pamiętać, że niektóre z funkcji systemowych zostały zaimplementowane w innych bibliotekach, m.in. user32.dll, imagehlp.dll czy advapi32.dll.
Interfejs GDI
Interfejs urządzeń graficznych GDI ( Graphics Device Interface) zapewnia możliwość rysowania i drukowania zawartości okien. Obsługujące go funkcje, zawarte w bibliotece gdi32.dll, umożliwiają m.in. kreślenie linii, wyprowadzanie tekstu, manipulowanie czcionkami oraz zarządzanie kolorami.
Jednym z podstawowych elementów GDI jest tzw. kontekst urządzenia (ang. device context, DC).
Reprezentuje on strukturę danych, obejmującą zestaw obiektów graficznych, ich atrybutów oraz trybów wyprowadzania. Tworzenie kontekstów realizują funkcje GetDC() i CreateDC(); oprócz nich biblioteka GDI definiuje wiele innych funkcji stosowanych intensywnie do obsługi kontekstów urządzeń. Programista ma do dyspozycji siedem typów obiektów GDI, które można wybrać w kontekście urządzenia; zestawiono je w tabeli 14.3.
Tabela 14.3. Obiekty GDI
Obiekt Zastosowanie
Mapa bitowa Kopiowanie i przemieszczanie fragmentów zawartości ekranu
( bitmap)
Pędzel ( brush)
Malowanie i wypełnianie obszarów wielokątów, elips i ścieżek
Czcionka
Określanie kształtu, rozmiaru i atrybutów znaków wyprowadzanego tekstu
( font)
Paleta ( palette) Ustalanie zestawu używanych kolorów
Ścieżka ( path) Kreślenie i malowanie
Pióro ( pen) Kreślenie linii
Obszar
Obcinanie, wyznaczanie kształtu i inne operacje związane z obszarem rysowania ( region)
Obecne wersje Windows udostępniają 334 funkcje interfejsu GDI. Pełną listę funkcji zaimplementowanych w bibliotece gdi32.dll można uzyskać za pomocą opisanego wcześniej programu narzędziowego impdef.
12
Funkcje GDI są niezwykle użyteczne w przypadku wyprowadzania danych graficznych w formie dwuwymiarowej, np. w programach przeznaczonych do użytku biurowego. Większość z nich ma swoje odpowiedniki w postaci klas TImage i TCanvas, dostępnych w bibliotece VCL. Ponieważ VCL-owa implementacja funkcji i obiektów GDI jest bardzo dobrze dopracowana, podczas tworzenia aplikacji w systemie C++Builder nie ma najczęściej potrzeby bezpośredniego odwoływania się do funkcji Windows.