Windows API
Windows API (neformálně WinAPI) je API vyvinuté firmou Microsoft pro operační systém Microsoft Windows. Je navržené pro použití v programovacím jazyce C nebo C++. Pro aplikaci představuje nejpřímější cestu, jak pracovat se systémem Windows.
Nízkoúrovňoví přístup k systému Windows často vyžaduje ovladače zařízení, v současné verzi Windows je poskytováno systémem Windows Driver Foundation.
Windows API
Ve Windows je několik desítek knihoven, které na zavolání funkce API vykonají. (kernel32.dll, user32.dll, imagehlp.dll, …) Jsou to celky, na které je možné v různých programech, tzv. „debuggerech“, nastavovat breakpointy (zarážky). Toho využívají například crackeři.
V Assembleru probíhá volání API funkcí Windows instrukcí call, před ní pomocí instrukce push musí proběhnout uložení hodnot. V některých Assemblerech (MASM) je možné je volat pomocí maker, např.:
invoke MessageBox,NULL, offset text, offset titulek, MB_OK
Přehled komponent Windows API
Funkčnost Windows API lze rozdělit do 7 ketegorií:[1]
- Základní Servis[2]
- Poskytuje přístup k to the nezbytným zdrojům poskytnutý Windows systémem. Zahrnuje všechny věci jako file systems, devices, processes a threads, přistup do Windows registry a error handling. Tyto funkce jsou v souborech kernel.exe, krnl286.exe nebo krnl386.exe na 16-bitových Windows a kernel32.dll a advapi32.dll na 32-bitových Windows.
- Grafické Uživatelské Rozhraní(GUI)[3]
- Poskytuje funkce pro výstupní grafický obsah na monitory, tiskárny a jiné výstupní zařízení. Vše uloženo v gdi.exe na 16-bitových Windows a gdi32.dll na 32-bit Windows.
- Uživatelské Rozhraní[4]
- Poskytuje funkce pro tvorbu a ovládání obrazovkyokna a dalších základních prvků jako je tlačítka a posuvníky, obdrží vstup z klávesnice a myši a jiných funkcí spojených s GUI částí Windows. Tato funkční jednotka se nachází v user.exe na 16-bitových Windows a v user32.dll na 32-bitových Windows. Od Windows XP verze se základní prvky nachází v comctl32.dll, společně s bežnými prvky(Common Control Library).
- Knihovna Běžných Dialogových Oken[5]
- Poskytuje aplikacím standartní dialogová okna pro otevření a ukládní souborů, volba barvy a fontů, atd. Knihovna je uložena v a volána ze souboru commdlg.dll na 16-bitových Windows a comdlg32.dll na 32-bitových Windows. Je uskupeno pod API kategorií Uživatelské Rozhraní.
- Knihovna běžných prvků(Common Control Library)[6]
- Dává aplikaci přístup k pokročilejším prvkům, které poskytuje operační systém. Zahrnuje to věci jako stavový řádek(status bar)s, panely průběhu(progress bars), nástrojová lišta(toolbar) a záložky. Knihovna je umístěna v DLL volána commctrl.dll na 16-bitových Windows a comctl32.dll na 32-bitových Windows. Je spojena do API kategorie Uživatelského Rozhraní.
- Windows Shell[7][8]
- Windows API komponenta dovolující aplikacím přístup k funkcím poskytovaných nadstavbou operačního systémemu změnit stejně dobře jako obohatit. Komponenta je v shell.dll na 16-bitových Windows a shell32.dll a později ve Windows 95 shlwapi.dll na 32-bitových Windows. Je v API kategorii Uživatelského Rozraní.
- Síťové Služby[9]
- Dává přístup k různým Počítačovím síťím a přidružených schopností operačního systému. Zahrnuje pod-komponenty NetBIOS, Winsock, NetDDE, RPC a dalších.
- ↑ Microsoft Developer Network (July 2005). Přehled Windows API. získaný v srpnu 28, 2005.
- ↑ Microsoft Developer Network (červenec 2005). Základní Servis. získaný v sprnu 28, 2005.
- ↑ Microsoft Developer Network (July 2005). Graphics Device Interface. získaný v sprnu 28, 2005.
- ↑ Microsoft Developer Network (July 2005). User Interface. získaný v sprnu 28, 2005.
- ↑ Microsoft Developer Network (2005). Common Dialog Box Library. získaný v září 22, 2005.
- ↑ Microsoft Developer Network (červenec 2005). Common Control Library. získán v srpnu 28, 2005.
- ↑ Microsoft Developer Network (červenec 2005). Windows Shell. získáno v sprnu 28, 2005.
- ↑ Microsoft Developer Network (2005). Nadstavba(Shell) Příručka Programátora. získáné vsprnu 28, 2005.
- ↑ Microsoft Developer Network (červenec 2005). Šíťové Služby. získáno v srpnu 28, 2005.