Directamente desde el archivo de encabezado 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 desea saber qué hace cada uno de los encabezados, escribir los nombres de encabezado en la búsqueda en la biblioteca de MSDN generalmente generará una lista de las funciones en ese archivo de encabezado.
Además, desde la página de soporte de Microsoft :
Para acelerar el proceso de compilación, Visual C ++ y los encabezados de Windows proporcionan las siguientes nuevas definiciones:
VC_EXTRALEAN
WIN32_LEAN_AND_MEAN
Puede usarlos para reducir el tamaño de los archivos de encabezado Win32.
Finalmente, si elige usar cualquiera de estas definiciones de preprocesador, y falta algo que necesita, puede incluir ese archivo de encabezado específico usted mismo. Escribir el nombre de la función que está buscando en MSDN generalmente producirá una entrada que le indicará qué encabezado debe incluir si desea usarlo, en la parte inferior de la página.
winsock2.h
mejor, asegúrese deWIN32_LEAN_AND_MEAN
que siempre esté definido porque, de lo contrario, obtendrá declaraciones contradictorias entre las versiones de WinSock. Así que me gusta más la otra respuesta, porque agrega detalles que faltan aquí. Cabe destacar que muestra cuál es el efecto real de esa definición. Ambas respuestas documentan el loro y, sin embargo, la otra es más completa, a pesar de que ambas no mencionan las "repercusiones" de no usar la definición (conflictos de nombres de WinSock, etc.).