- Windows API
-
Windows API ou WinAPI est le nom donné par Microsoft à l'Interface de programmation (API) sur les systèmes d'exploitation Microsoft Windows. Elle est conçue pour les langages de programmation C et C++ et est la manière privilégiée pour une application d'interagir avec les systèmes d'exploitation Windows jusque Windows 7.
Un kit de développement (SDK) est disponible pour Windows qui fournit la documentation et les outils pour permettre aux développeurs de créer des logiciels en utilisant cette API et les technologies associées.
Sommaire
Composant de Windows API
Les fonctionnalités fournies par Windows API peuvent être rangées dans sept catégories :
Services de base
- Donne accès aux ressources fondamentales du système disponibles sous Windows. Exemples : Système de fichiers, périphériques, processus, processus léger, accès au registre système et au Système de gestion d'exceptions. Ces fonctions sont stockées dans les fichiers kernel.exe, krnl286.exe ou krnl386.exe pour les systèmes 16-bits et kernel32.dll et advapi32.dll sur les systèmes 32 bits.
Interface graphique
- Permet d'accéder aux ressources pour l'affichage sur les moniteurs, imprimantes, ... Elle est stockée dans le fichier gdi.exe sur les systèmes 16-bits et gdi32.dll sur les systèmes 32-bits.
Interface utilisateur
- Permet d'afficher et de gérer les contrôles de base comme les boutons et barres de défilement, de recevoir les informations du clavier et de la souris et des fonctionnalités associées comme l'Environnement graphique. Ces fonctionnalités sont stockées dans le fichier user.exe sur les systèmes 16-bits, et user32.dll comctl32.dll sur les systèmes 32-bits. Depuis Windows XP, les contrôles ont été regroupés dans comctl32.dll, dédiant user32.dll pleinement aux infrastructures.
Boîtes de dialogue communes
- Permet d'afficher les Boîtes de dialogue pour ouvrir et enregistrer des fichiers, choisir la couleur et la police, ... Elle réside dans le fichier comdlg.dll sur les systèmes 16-bits et comdlg32.dll sur les systèmes 32-bits. Elle a été groupée avec la partie Interface utilisateur.
Bibliothèque de contrôles communs
- Donne accès à des fonctions avancées du système d'exploitation comme des barres de statut (situées au bas des fenêtres), barres de progression, barres d'outils et onglets. Ces commandes résident dans la bibliothèque logicielle commctrl.dll sur les systèmes 16-bits et comctl32.dll. Elle est groupée avec l'interface utilisateur.
Shell Windows
- Le composant de Windows API qui permet à des applications d'accéder aux fonctionnalités fournies par le shell du système d'exploitation. Elle réside dans le fichier shell.dll sur les systèmes 16-bits et shell32.dll sur les systèmes 32-bits, et depuis Windows 95 dans le fichier shlwapi.dll. Elle a été groupée avec la partie Interface utilisateur.
Services réseau
- Donne accès aux diverses possibilités de gestion de réseau du système d'exploitation. Ses sous-composants incluent NetBIOS, Winsock, RPC... Sur les anciennes versions de Windows, cela incluait NetDDE.
Autres API liées
Internet Explorer offre quelques API qui sont souvent utilisées par les programmes et peut donc être considéré comme une partie de Windows API. Internet Explorer est fourni d'office depuis Windows 98. Il est prévu d'arrêter cette prise en charge avec Vista.
Depuis Windows 95, il y aussi des API pour les affichages graphiques qui permettent d'avoir accès aux ressources de DirectX.
Il y a aussi d'autres API pour les relations entre les applications comme DDE (Dynamic Data Exchange, Echange dynamique de données), OLE (Object Linking and Embedding) (voir (en) Object Linking and Embedding) et COM (Component Object Model).
Versions
Chaque version de Windows a apporté son lot de modifications de l'API. Malgré cela, le nom de l'API reste le même sauf pour les modifications majeures. Microsoft a quand même changé le nom Win32 en Windows API pour les contenir dans une seule famille même pour une prochaine modification de celle-ci.
- Win16 était la première API pour les versions 16-bits du système. Elle était au départ simplement nommé Windows API mais a été renommé en Win16 pour permettre le passage au 32-bits de Windows API. Les fonctionnalités étaient principalement dans le noyau du système : kernel.exe (ou krnl286.exe ou krnl386.exe), user.exe et gdi.exe. Malgré l'extension exe, ces fichiers sont des bibliothèques de liens dynamiques.
- Win32 est la version 32-bits de l'API pour les systèmes plus récents. L'api se compose d'implémentations, comme avec Win16, dans le système bibliothèques de liens dynamiques. Le noyau de Win32 réside dans les fichiers kernel32.dll, user32.dll, et gdi32.dll. Win32 a été présenté avec Windows NT. La version embarquée avec Windows 95 était appelée Win32c, avec "c" pour compatibilité (compatibility en anglais) mais ce nom a été abandonné pour Win32. Dans la version Windows NT 4.0 et suivantes, les appels de Win32 sont exécutés par deux modules, csrss.exe (Client/Server Runtime Server Subsystem) en mode utilisateur et win32k.sys en mode noyau.
- Win32s est une extension de Win32 pour les systèmes Windows 3.x qui a été introduite comme sous-ensemble de Win32. Le "s" est pour sous-ensemble (subset en anglais).
- Win32 pour les éditions 64bits précédemment appelée Win64 est la version pour les ordinateurs 64-bits, avec les versions Windows XP Professional x64 Edition pour les processeurs x86-64 ainsi que Windows XP 64-bit Edition et Windows Server 2003 pour les processeurs Itanium. Cette version apporte juste le support pour ces deux nouvelles plateformes.
Autres implémentations
Bien que Windows API soit soumise aux droits d'auteurs[réf. nécessaire] et malgré les précédents légaux aux États-Unis, il est permis d'émuler cette API sur d'autres plateformes.
C'est le cas par exemple de WINE qui émule une API compatible avec Win32 pour les systèmes d'exploitation à base UNIX. Un autre exemple est le système ReactOS.
Voir aussi
- WinRT, le remplaçant de WinAPI, coexistant avec celle-ci sous Windows 8.
Liens externes
Windows API Reference sur MSDN : la référence à la source.
Spy Studio Surveiller l'activité.
news://fr.comp.os.ms-windows.programmation Newsgroup français dédié à la programmation des API Win32
http://www.charlespetzold.com/pw5/ Livre de référence indispensable pour acquérir les bases
Catégorie :- API Microsoft
Wikimedia Foundation. 2010.