Windows API

Windows API(neformálněWinAPI) jeAPIvyvinuté firmouMicrosoftprooperační systémMicrosoft Windows. Všechny programy v Microsoft Windows musí nezávisle na použitémprogramovacím jazycekomunikovat prostřednictvím Windows API, které obsahuje nejen základní funkce, ale i funkce pro vytvářeníuživatelského rozhranía další.
Protože je jádro systémů MicrosoftWindows NThybridní, používá se v programech výhradněmeziprocesová komunikace. Programy nemají k jádru přístup pomocísystémových volání, jako je to obvyklé vunixovýchsystémech s jádremmonolitickéhotypu.
Nízkoúrovňový přístup k systému Windows, nutný především proovladače zařízení, je v současné verzi Windows poskytován systémemWindows Driver FoundationneboNative API.
Funkčnost Windows API lze rozdělit do 8 kategorií:
WebovýprohlížečWindows Internet Explorerposkytuje mnoho API funkcí, které lze považovat za součást Windows API. Internet Explorer je součástí operačních systémů firmy Microsoft od Windows 95 a poskytuje doplňující webové funkce odWindows 98:
Microsoft poskytujeDirectXAPI jako součást systému odWindows 95OSR2. DirectX poskytuje podporu, a to nejen pro multimédia a hry:
Windows API slouží zejména pro komunikaci programů s operačním systémem. Pro komunikaci programů mezi sebou vyvinul Microsoft sérii technologií, která začalaDynamic Data Exchange(DDE), které bylo nahrazenoObject Linking and Embedding(OLE) a později ještěComponent Object Model(COM).
Microsoft vyvinul různé nadstavbové knihovny, které umožňují aplikacím pracovat s nízkoúrovňovými Windows API funkcemi abstraktnějším způsobem.Microsoft Foundation Class Library(MFC) je nadstavba Windows API protřídyvC++, která usnadňujeobjektově orientované programovánípři využívání Windows API. Active Template Library (ATL) ješablonověorientovaná nadstavba pro COM.Windows Template Library(WTL) byla vyvinuta jako rozšíření pro ATL a zamýšlena jako odlehčená alternativa k MFC.
Další nadstavby vyvinula firmaBorland:Object Windows Library(OWL) byla vydána jako konkurence k MFC a poskytuje podobnou objektově orientovanou nadstavbu. Nahradila jiVisual Component Library(VCL), která je napsána vObject Pascalua dostupná jak proDelphi, tak proC++Builder.
Většina aplikačníchframeworkůpro Windows je (alespoň částečně) nadstavbou nad Windows API. Proto také.NET FrameworkaJavastejně jako ostatníprogramovací jazykypod Windows jsou (nebo obsahují) nadstavbové knihovny.
Téměř všechny nové verzeMicrosoft Windowspřinášejí rozšíření nebo změny Windows API, avšak název API se s verzemi Microsoft Windows nemění kromě změny zWin32naWindows API, které nyní zahrnuje všechny starší i všechny budoucí verze.
Přestože je implementace Windows API chráněnaautorským právem(copyright), je všeobecně respektován precedent,který umožňuje ostatním dodavatelům emulovat Windows pomocí poskytnutí identického API bez porušení autorských práv.
Ve Windows je několik desítek knihoven (kernel32.dll,user32.dll,imagehlp.dll, …), které na zavolání vykonají funkce API. Jsou to celky, na které je možné v různých programech, tzv. „debuggerech“, nastavovatbreakpointy(zarážky). Toho využívají napříkladcrackeři.
VAssembleruprobíhá volání API funkcí Windows instrukcítcall, před ní pomocí instrukcepushmusí proběhnout uložení hodnot. V některých assemblerech (MASM) je možné je volat pomocí maker, např.: