API de Windows

Conjunt bàsic d'interfícies de programació d'aplicacions de Microsoft disponible als sistemes operatius 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.[1] 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.[2]

API de Windows

TipusAPI Modifica el valor a Wikidata
Més informació
Stack ExchangeEtiqueta Modifica el valor a Wikidata

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.[3]

L'API de Windows (Win32) se centra principalment en el llenguatge de programació C,[4] 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++ [5] i està orientat a objectes per disseny.[5]

ReactOS és un sistema operatiu gratuït i de codi obert que pretén implementar l'API de Windows (i en realitat ja implementa un subconjunt útil).

Visió general modifica

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.[6]
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 modifica

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