Diretamente do arquivo de cabeçalho 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 */
se você quiser saber o que cada um dos cabeçalhos realmente faz, digitar os nomes dos cabeçalhos na pesquisa na biblioteca MSDN normalmente produzirá uma lista das funções desse arquivo de cabeçalho.
Além disso, na página de suporte da Microsoft :
Para acelerar o processo de criação, o Visual C ++ e os Cabeçalhos do Windows fornecem as seguintes novas definições:
VC_EXTRALEAN
WIN32_LEAN_AND_MEAN
Você pode usá-los para reduzir o tamanho dos arquivos de cabeçalho do Win32.
Por fim, se você optar por usar qualquer um desses pré-processadores definidos, e algo que você precisar estiver faltando, poderá incluir apenas esse arquivo de cabeçalho específico. Digitar o nome da função que você procura no MSDN geralmente produzirá uma entrada que informará qual cabeçalho incluir, se você quiser usá-la, na parte inferior da página.
winsock2.h
lo, verifique seWIN32_LEAN_AND_MEAN
sempre está definido, pois, caso contrário, você obterá declarações conflitantes entre as versões do WinSock. Então, eu gosto mais da outra resposta, porque adiciona detalhes ausentes aqui. Notavelmente, mostra qual é o efeito real dessa definição. Ambas as respostas descrevem a documentação do papagaio e, no entanto, a outra é mais abrangente, embora ambas falhem em mencionar as "repercussões" de não usar o define (conflitos de nome do WinSock etc.).