windows.h

De Wikipedia, la enciclopedia libre


windows.h es un archivo cabecera específico de Windows para la programación en lenguaje C/C++ que contiene las declaraciones de todas las funciones de la biblioteca Windows API, todas las macros utilizadas por los programadores de aplicaciones para Windows, y todas las estructuras de datos utilizadas en gran cantidad de funciones y subsistemas. La Win32 API puede agregarse en proyectos de programación en C haciendo la inclusión de la cabecera <windows.h>

Archivos de cabeceras incluidos[editar]

windows.h incluye automáticamente gran cantidad de otras cabeceras. Muchas de ellas no pueden incluirse por sí mismas, por una cuestión de dependencias.

windows.h incluye los siguientes archivos cabeceras:

  • excpt.h – manejo de excepciones
  • stdarg.h – funciones de variable-argumento (cabecera estándar de C)
  • windef.h – varios macros y tipos
  • winnt.h – varios macros y tipos (para Windows NT)
  • basetsd.h – varios tipos
  • guiddef.h – el tipo GUID
  • ctype.h – clasificación de caracteres (cabecera estándar de C)
  • string.h – cadenas y búferes(cabecera estándar de C)
  • winbase.h – kernel32.dll: servicios del núcleo del sistema operativo; advapi32.dll:servicios del núcleo(ej. función CreateProcessAsUser), control de acceso(ej. función AdjustTokenGroups).
  • winerror.h – códigos de error de Windows.
  • wingdi.h – GDI (Graphics Device Interface, en español, interfaz del dispositivo gráfico)
  • winuser.h – user32.dll: servicios de usuario
  • winnls.h – NLS (Native Language Support, en español, soporte de lenguaje nativo)
  • wincon.h – servicios de consola de comandos
  • winver.h – información de versión
  • winreg.h – Registro de Windows
  • winnetwk.h – WNet (Windows Networking: Red en Windows)
  • winsvc.h – Servicios de Windows y SCM (Service Control Manager: Administrador de Control de Servicios)
  • imm.h – IME (Input Method Editor)

Otras inclusiones[editar]

  • cderr.h – CommDlgExtendedError códigos de error de funciones
  • commdlg.h – Common Dialog Boxes
  • dde.h – DDE (Dynamic Data Exchange)
  • ddeml.h – Administrador de la biblioteca de DDE
  • dlgs.h – constantes para Common Dialog Boxes
  • lzexpand.h – LZ (Lempel-Ziv) compresión/descompresión
  • mmsystem.h – Multimedia en Windows
  • nb30.h – NetBIOS
  • rpc.h – RPC
  • shellapi.h – Windows Shell API
  • wincrypt.h – API de criptografía
  • winperf.h – Monitoreo de rendimiento
  • winresrc.h – usada en Recursos de Windows
  • winsock.h – Winsock (Windows Sockets), version 1.1
  • winspool.h – Print Spooler
  • winbgim.h – Biblioteca gráfica estándar

OLE y COM[editar]

  • ole2.h – OLE (Object Linking and Embedding)
  • objbase.h – COM (Component Object Model)
  • oleauto.h – OLE Automation
  • olectlid.h – varias definiciones de GUID

Macros[editar]

Varias macros para el funcionamiento de windows.h.

Ejemplo en lenguaje C[editar]

Véase Windows Programming: Window Creation.

#include <windows.h>
#include <stdio.h>

LPSTR szClassName = "MiClase";
HINSTANCE hInstance;
LRESULT CALLBACK MyWndProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInstance, LPSTR szCmdLine, int iCmdShow)
{
   WNDCLASS wnd;
   MSG msg;
   HWND hwnd;

   hInstance = hInst;

   wnd.style = CS_HREDRAW | CS_VREDRAW;
   wnd.lpfnWndProc = MyWndProc;
   wnd.cbClsExtra = 0;
   wnd.cbWndExtra = 0;
   wnd.hInstance = hInstance;
   wnd.hIcon = LoadIcon(NULL, IDI_APPLICATION); //icono por defecto
   wnd.hCursor = LoadCursor(NULL, IDC_ARROW);   //flecha de mouse por defecto
   wnd.hbrBackground = (HBRUSH)(COLOR_BACKGROUND+1);
   wnd.lpszMenuName = NULL;                     //sin menu
   wnd.lpszClassName = szClassName;

   if(!RegisterClass(&wnd))                     //registrando WNDCLASS
   {
       printf("Este programa requiere Windows\n");
       return 0;
   }

   hwnd = CreateWindow(szClassName,
                       "Titulo de la ventana",
                       WS_OVERLAPPEDWINDOW,
                       CW_USEDEFAULT, CW_USEDEFAULT,
                       CW_USEDEFAULT, CW_USEDEFAULT,
                       NULL, NULL,
                       hInstance, NULL);
   ShowWindow(hwnd, iCmdShow);              //muestra la ventana en la pantalla
   UpdateWindow(hwnd);             //se actualiza la ventana

   while(GetMessage(&msg, NULL, 0, 0))      //ciclo de mensajes
   {
       TranslateMessage(&msg);
       DispatchMessage(&msg);
   }
   return msg.wParam;
}

LRESULT CALLBACK MyWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
   switch(msg)
   {
       case WM_DESTROY:
           PostQuitMessage(0);
           return 0;
   }
   return DefWindowProc(hwnd, msg, wParam, lParam);
}

Enlaces externos[editar]