# API de Windows

L'API de Windows, informalment WinAPI, és el conjunt bàsic d'interfícies de programació d'aplicacions (API) de Microsoft disponible als sistemes operatius Microsoft Windows. El nom API de Windows fa referència col·lectivament a diverses implementacions de plataformes diferents a les quals sovint es fa referència amb els seus propis noms (per exemple, l'API Win32). Gairebé tots els programes de Windows interactuen amb l'API de Windows. A la línia de sistemes operatius Windows NT, un petit nombre (com ara programes iniciats a principis del procés d'inici de Windows) utilitzen l'API nativa.
El suport per a desenvolupadors està disponible en forma d'un kit de desenvolupament de programari, Microsoft Windows SDK, que proporciona documentació i eines necessàries per crear programari basat en l'API de Windows i les interfícies de Windows associades.
L'API de Windows (Win32) se centra principalment en el llenguatge de programació C, ja que les seves funcions exposades i estructures de dades es descriuen en aquest llenguatge en versions recents de la seva documentació. Tanmateix, l'API pot ser utilitzada per qualsevol compilador o assemblador de llenguatge de programació capaç de gestionar les estructures de dades de baix nivell (ben definides) juntament amb les convencions de trucada prescrites per a trucades i devolució de crides. De la mateixa manera, la implementació interna de la funció de l'API s'ha desenvolupat històricament en diversos idiomes. Malgrat que C no és un llenguatge de programació orientat a objectes, tant l'API de Windows com Windows s'han descrit històricament com a orientats a objectes. També hi ha hagut moltes classes i extensions d'embolcall (de Microsoft i altres) per a llenguatges orientats a objectes que fan més explícita aquesta estructura orientada a objectes (Microsoft Foundation Class Library (MFC), Visual Component Library (VCL), GDI+, etc.). Per exemple, Windows 8 proporciona l'API de Windows i l'API WinRT, que s'implementa en C++ i està orientat a objectes per disseny.

## Visió general

Les funcions proporcionades per l'API de Windows es poden agrupar en vuit categories:

### Serveis bàsics

    Proporcioneu accés als recursos bàsics disponibles per a un sistema Windows. S'inclouen coses com ara sistemes de fitxers, dispositius, processos, fils i gestió d'errors. Aquestes funcions es troben als fitxers kernel.exe, krnl286.exe o krnl386.exe a Windows de 16 bits, i kernel32.dll i KernelBase.dll a Windows de 32 i 64 bits. Aquests fitxers resideixen a la carpeta \Windows\System32 en totes les versions de Windows.

### Serveis avançats

    Proporcioneu accés a funcions més enllà del nucli. S'inclouen coses com el registre de Windows, apagar/reiniciar el sistema (o avortar), iniciar/aturar/crear un servei de Windows, gestionar comptes d'usuari. Aquestes funcions es troben a advapi32.dll i advapires32.dll a Windows de 32 bits.

### Interfície de dispositiu gràfic

    Proporciona funcions per enviar contingut gràfic a monitors, impressores i altres dispositius de sortida. Resideix a gdi.exe a Windows de 16 bits i gdi32.dll a Windows de 32 bits en mode d'usuari. El suport GDI en mode nucli el proporciona win32k.sys que es comunica directament amb el controlador de gràfics.

### Interfície d'usuari

    Proporciona les funcions per crear i gestionar finestres de pantalla i la majoria de controls bàsics, com ara botons i barres de desplaçament, rebre entrada de ratolí i teclat i altres funcions associades a la part de la interfície gràfica d'usuari (GUI) de Windows. Aquesta unitat funcional es troba a user.exe a Windows de 16 bits i user32.dll a Windows de 32 bits. Des de les versions de Windows XP, els controls bàsics resideixen a comctl32.dll, juntament amb els controls comuns (Common Control Library).

### Biblioteca de quadres de diàleg comuns

    Proporciona a les aplicacions els quadres de diàleg estàndard per obrir i desar fitxers, triar color i tipus de lletra, etc. La biblioteca resideix en un fitxer anomenat commdlg.dll a Windows de 16 bits i comdlg32.dll a Windows de 32 bits. S'agrupa a la categoria Interfície d'usuari de l'API.

### Biblioteca de control comuna

    Ofereix a les aplicacions accés a alguns controls avançats proporcionats pel sistema operatiu. Aquests inclouen coses com ara barres d'estat, barres de progrés, barres d'eines i pestanyes. La biblioteca resideix en un fitxer de biblioteca d'enllaços dinàmics (DLL) anomenat commctrl.dll a Windows de 16 bits i comctl32.dll a Windows de 32 bits. S'agrupa a la categoria Interfície d'usuari de l'API.

### Shell de Windows

    El component de l'API de Windows permet a les aplicacions accedir a les funcions proporcionades per l'intèrpret d'ordres del sistema operatiu i canviar-la i millorar-la. El component resideix a shell.dll a Windows de 16 bits i shell32.dll a Windows de 32 bits. Les funcions d'utilitat lleugera de Shell es troben a shlwapi.dll. S'agrupa a la categoria Interfície d'usuari de l'API.

### Serveis de xarxa

    Donar accés a les diferents habilitats de xarxa del sistema operatiu. Els seus subcomponents inclouen NetBIOS, Winsock, NetDDE, trucada de procediment remot (RPC) i molts més. Aquest component resideix a netapi32.dll a Windows de 32 bits.

## Referències

* ↑ «Win32 API Tutorial => Getting started with Win32 API» (en anglès). [Consulta: 9 desembre 2023].
* ↑ Error: hi ha arxiuurl o arxiudata, però calen tots dos paràmetres.Russinovich, Mark. «[Mark Russinovich Inside Native Applications]» (en anglès). Microsoft Docs, 01-11-2006. [Consulta: 12 abril 2022].
* ↑ «win32/desktop-src/desktop-programming.md at docs · MicrosoftDocs/win32» (en anglès). [Consulta: 9 desembre 2023].
* ↑ «Walkthrough: Create a traditional Windows Desktop application (C++)» (en anglès). Microsoft Docs, 23-02-2022.
* 1 2 Mayberry, Michael. WinRT Revealed (en anglès). New York City: Apress, 2012, p. 3. ISBN 978-1-4302-4585-8.
* ↑ «G» (en anglès). Microsoft Developer Network. [Consulta: 28 gener 2009].