Qu'est-ce que #defining WIN32_LEAN_AND_MEAN exclut exactement ?

Qu’est-ce que #defining WIN32_LEAN_AND_MEAN exclut exactement ?

Directement depuis le fichier d’en-tete Windows.h :

#ifndef WIN32_LEAN_AND_MEAN
    #include <cderr.h>
    #include <dde.h>
    #include <ddeml.h>
    #include <dlgs.h>
    #ifndef _MAC
        #include <lzexpand.h>
        #include <mmsystem.h>
        #include <nb30.h>
        #include <rpc.h>
    #endif
    #include <shellapi.h>
    #ifndef _MAC
        #include <winperf.h>
        #include <winsock.h>
    #endif
    #ifndef NOCRYPT
        #include <wincrypt.h>
        #include <winefs.h>
        #include <winscard.h>
    #endif

    #ifndef NOGDI
        #ifndef _MAC
            #include <winspool.h>
            #ifdef INC_OLE1
                #include <ole.h>
            #else
                #include <ole2.h>
            #endif /* !INC_OLE1 */
        #endif /* !MAC */
        #include <commdlg.h>
    #endif /* !NOGDI */
#endif /* WIN32_LEAN_AND_MEAN */

Si vous souhaitez savoir ce que chacun des en-tetes fait reellement, taper les noms des en-tetes dans la recherche de la bibliotheque MSDN produira generalement une liste des fonctions contenues dans ce fichier d’en-tete.

De plus, depuis la page de support de Microsoft :

Pour accelerer le processus de compilation, Visual C++ et les en-tetes Windows fournissent
les nouvelles definitions suivantes :

VC_EXTRALEAN
WIN32_LEAN_AND_MEAN

Vous pouvez les utiliser pour reduire la taille des fichiers d’en-tete Win32.

Enfin, si vous choisissez d’utiliser l’une de ces definitions de preprocesseur et qu’il vous manque quelque chose, vous pouvez simplement inclure ce fichier d’en-tete specifique vous-meme. Taper le nom de la fonction que vous recherchez dans MSDN produira generalement une entree qui vous indiquera quel en-tete inclure si vous souhaitez l’utiliser, en bas de la page.