Compartir a través de


Tipos de datos de Windows

Los tipos de datos admitidos por Windows se usan para definir valores devueltos de función, parámetros de función y parámetros de mensaje y miembros de estructura. Definen el tamaño y el significado de estos elementos. Para obtener más información sobre los tipos de datos subyacentes de C/C++, vea Intervalos de tipos de datos.

La tabla siguiente contiene los siguientes tipos: carácter, entero, booleano, puntero y identificador. Los tipos de caracteres, enteros y booleanos son comunes a la mayoría de los compiladores de C. La mayoría de los nombres de tipo de puntero comienzan con un prefijo de P o LP. Los identificadores hacen referencia a un recurso que se ha cargado en la memoria.

Para obtener más información sobre el control de enteros de 64 bits, vea Enteros grandes.

Tipo de datos Descripción
APIENTRY Convención de llamada para las funciones del sistema.
Este tipo se declara en WinDef.h de la siguiente manera:
#define APIENTRY WINAPI
ÁTOMO Un átomo. Para obtener más información, vea Acerca de las tablas Atom.
Este tipo se declara en WinDef.h de la siguiente manera:
typedef WORD ATOM;
BOOL Variable booleana (debe ser TRUE o FALSE).
Este tipo se declara en WinDef.h de la siguiente manera:
typedef int BOOL;
BOOLEANA Variable booleana (debe ser TRUE o FALSE).
Este tipo se declara en WinNT.h de la siguiente manera:
typedef BYTE BOOLEAN;
BYTE Byte (8 bits).
Este tipo se declara en WinDef.h de la siguiente manera:
typedef unsigned char BYTE;
CALLBACK Convención de llamada para las funciones de devolución de llamada.
Este tipo se declara en WinDef.h de la siguiente manera:
#define CALLBACK __stdcall
CALLBACK, WINAPI y APIENTRY se usan para definir funciones con la convención de llamada de __stdcall. La mayoría de las funciones de la API de Windows se declaran mediante WINAPI. Es posible que desee usar CALLBACK para las funciones de devolución de llamada que implemente para ayudar a identificar la función como una función de devolución de llamada.
CCHAR Carácter de Windows (ANSI) de 8 bits.
Este tipo se declara en WinNT.h de la siguiente manera:
typedef char CCHAR;
CHAR Carácter de Windows (ANSI) de 8 bits. Para obtener más información, vea Juegos de caracteres usados por fuentes.
Este tipo se declara en WinNT.h de la siguiente manera:
typedef char CHAR;
COLORREF El valor de color rojo, verde, azul (RGB) (32 bits). Vea COLORREF para obtener información sobre este tipo.
Este tipo se declara en WinDef.h de la siguiente manera:
typedef DWORD COLORREF;
CONST Variable cuyo valor se va a mantener constante durante la ejecución.
Este tipo se declara en WinDef.h de la siguiente manera:
#define CONST const
DWORD Entero de 32 bits sin signo. El intervalo es de 0 a 4294967295 decimal.
Este tipo se declara en IntSafe.h de la siguiente manera:
typedef unsigned long DWORD;
DWORDLONG Entero de 64 bits sin signo. El intervalo es de 0 a 18446744073709551615 decimal.
Este tipo se declara en IntSafe.h de la siguiente manera:
typedef unsigned __int64 DWORDLONG;
DWORD_PTR Tipo largo sin signo para la precisión del puntero. Use al convertir un puntero a un tipo largo para realizar la aritmética de puntero. (También se usa normalmente para parámetros generales de 32 bits que se han ampliado a 64 bits en Windows de 64 bits).
Este tipo se declara en BaseTsd.h de la siguiente manera:
typedef ULONG_PTR DWORD_PTR;
DWORD32 Entero de 32 bits sin signo.
Este tipo se declara en BaseTsd.h de la siguiente manera:
typedef unsigned int DWORD32;
DWORD64 Entero de 64 bits sin signo.
Este tipo se declara en BaseTsd.h de la siguiente manera:
typedef unsigned __int64 DWORD64;
FLOTADOR Variable de punto flotante.
Este tipo se declara en WinDef.h de la siguiente manera:
typedef float FLOAT;
HACCEL Identificador de una tabla de aceleración.
Este tipo se declara en WinDef.h de la siguiente manera:
typedef HANDLE HACCEL;
HALF_PTR Mitad del tamaño de un puntero. Use dentro de una estructura que contenga un puntero y dos campos pequeños.
Este tipo se declara en BaseTsd.h de la siguiente manera:
C++
#ifdef _WIN64
 typedef int HALF_PTR;
#else
 typedef short HALF_PTR;
#endif
MANEJAR

Identificador de un objeto .

Este tipo se declara en WinNT.h de la siguiente manera:

typedef PVOID HANDLE;

HBITMAP

Identificador de un mapa de bits.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef HANDLE HBITMAP;

HBRUSH

Identificador de un pincel.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef HANDLE HBRUSH;

HCOLORSPACE

Identificador de un espacio de colores.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef HANDLE HCOLORSPACE;

HCONV

Identificador de una conversación de intercambio dinámico de datos (DDE).

Este tipo se declara en Ddeml.h de la siguiente manera:

typedef HANDLE HCONV;

HCONVLIST

Identificador de una lista de conversaciones DDE.

Este tipo se declara en Ddeml.h de la siguiente manera:

typedef HANDLE HCONVLIST;

HCURSOR

Identificador de un cursor.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef HICON HCURSOR;

HDC

Identificador de un contexto de dispositivo (DC).

Este tipo se declara en WinDef.h de la siguiente manera:

typedef HANDLE HDC;

HDDEDATA

Identificador de datos DDE.

Este tipo se declara en Ddeml.h de la siguiente manera:

typedef HANDLE HDDEDATA;

HDESK

Identificador de un escritorio.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef HANDLE HDESK;

HDROP

Identificador de una estructura de colocación interna.

Este tipo se declara en ShellApi.h de la siguiente manera:

typedef HANDLE HDROP;

HDWP

Identificador de una estructura de posición de ventana diferida.

Este tipo se declara en WinUser.h de la siguiente manera:

typedef HANDLE HDWP;

HENHMETAFILE

Identificador de un metarchivo mejorado.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef HANDLE HENHMETAFILE;

HFILE

Identificador de un archivo abierto por OpenFile, no CreateFile.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef int HFILE;

HFONT

Identificador de una fuente.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef HANDLE HFONT;

HGDIOBJ

Identificador de un objeto GDI.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef HANDLE HGDIOBJ;

HGLOBAL

Identificador de un bloque de memoria global.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef HANDLE HGLOBAL;

HHOOK

Identificador de un gancho.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef HANDLE HHOOK;

HICON

Identificador de un icono.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef HANDLE HICON;

HINSTANCE

Identificador de una instancia de . Esta es la dirección base del módulo en memoria.

HMODULE e HINSTANCE son los mismos hoy en día, pero representan diferentes cosas en Windows de 16 bits.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef HANDLE HINSTANCE;

HKEY

Manipulador de una clave del Registro.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef HANDLE HKEY;

HKL

Identificador de configuración regional de entrada.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef HANDLE HKL;

HLOCAL

Identificador de un bloque de memoria local.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef HANDLE HLOCAL;

HMENU

Identificador de un menú.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef HANDLE HMENU;

HMETAFILE

Identificador de un metarchivo.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef HANDLE HMETAFILE;

HMODULE

Identificador de un módulo. Esta es la dirección base del módulo en memoria.

HMODULE e HINSTANCE son los mismos en las versiones actuales de Windows, pero representan diferentes cosas en Windows de 16 bits.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef HINSTANCE HMODULE;

HMONITOR

Identificador de un monitor de pantalla.

Este tipo se declara en WinDef.h de la siguiente manera:

if(WINVER >= 0x0500) typedef HANDLE HMONITOR;

HPALETTE

Identificador de una paleta.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef HANDLE HPALETTE;

HPEN

Identificador de un lápiz.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef HANDLE HPEN;

HRESULT

Los códigos de retorno usados por las interfaces COM. Para obtener más información, vea Estructura de los códigos de error COM. Para probar un valor HRESULT , use las macros FAILED y SUCCEEDED .

Este tipo se declara en WinNT.h de la siguiente manera:

typedef LONG HRESULT;

HRGN

Identificador de una región.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef HANDLE HRGN;

HRSRC

Identificador de un recurso.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef HANDLE HRSRC;

HSZ

Identificador de una cadena DDE.

Este tipo se declara en Ddeml.h de la siguiente manera:

typedef HANDLE HSZ;

HWINSTA

Identificador de una estación de ventanas.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef HANDLE WINSTA;

HWND

Identificador de una ventana.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef HANDLE HWND;

INT

Entero de 32 bits con signo. El intervalo es -2147483648 a través de 2147483647 decimal.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef int INT;

INT_PTR

Tipo entero con signo para la precisión del puntero. Use al convertir un puntero a un entero para realizar la aritmética del puntero.

Este tipo se declara en BaseTsd.h de la siguiente manera:

C++
#if defined(_WIN64) 
 typedef __int64 INT_PTR; 
#else 
 typedef int INT_PTR;
#endif
INT8

Entero de 8 bits con signo.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef signed char INT8;

INT16

Entero de 16 bits con signo.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef signed short INT16;

INT32

Entero de 32 bits con signo. El intervalo es -2147483648 a través de 2147483647 decimal.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef signed int INT32;

INT64

Entero de 64 bits con signo. El intervalo es -9223372036854775808 a 9223372036854775807 decimal.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef signed __int64 INT64;

LANGID

Identificador de idioma. Para obtener más información, vea Identificadores de idioma.

Este tipo se declara en WinNT.h de la siguiente manera:

typedef WORD LANGID;

LCID

Identificador de configuración regional. Para obtener más información, consulte Identificadores de configuración regional.

Este tipo se declara en WinNT.h de la siguiente manera:

typedef DWORD LCID;

LCTYPE

Tipo de información de configuración regional. Para obtener una lista, vea Constantes de información de configuración regional.

Este tipo se declara en WinNls.h de la siguiente manera:

typedef DWORD LCTYPE;

LGRPID

Identificador de grupo de idioma. Para obtener una lista, consulte EnumLanguageGroupLocales.

Este tipo se declara en WinNls.h de la siguiente manera:

typedef DWORD LGRPID;

LARGO

Entero de 32 bits con signo. El intervalo es -2147483648 a través de 2147483647 decimal.

Este tipo se declara en WinNT.h de la siguiente manera:

typedef long LONG;

LONGLONG

Entero de 64 bits con signo. El intervalo es -9223372036854775808 a 9223372036854775807 decimal.

Este tipo se declara en WinNT.h de la siguiente manera:

C++
#if !defined(_M_IX86)
 typedef __int64 LONGLONG; 
#else
 typedef double LONGLONG;
#endif
LONG_PTR

Tipo largo con signo para la precisión del puntero. Use al convertir un puntero a un largo para realizar la aritmética de puntero.

Este tipo se declara en BaseTsd.h de la siguiente manera:

C++
#if defined(_WIN64)
 typedef __int64 LONG_PTR; 
#else
 typedef long LONG_PTR;
#endif
LONG32

Entero de 32 bits con signo. El intervalo es -2147483648 a través de 2147483647 decimal.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef signed int LONG32;

LONG64

Entero de 64 bits con signo. El intervalo es -9223372036854775808 a 9223372036854775807 decimal.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef __int64 LONG64;

LPARAM

Parámetro de mensaje.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef LONG_PTR LPARAM;

LPBOOL

Puntero a un BOOL.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef BOOL far *LPBOOL;

LPBYTE

Puntero a un BYTE.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef BYTE far *LPBYTE;

LPCOLORREF

Puntero a un valor COLORREF .

Este tipo se declara en WinDef.h de la siguiente manera:

typedef DWORD *LPCOLORREF;

LPCSTR

Puntero a una cadena constante terminada en null de caracteres de Windows (ANSI) de 8 bits. Para obtener más información, vea Juegos de caracteres usados por fuentes.

Este tipo se declara en WinNT.h de la siguiente manera:

typedef __nullterminated CONST CHAR *LPCSTR;

LPCTSTR

LPCWSTR si se define UNICODE, de lo contrario, un LPCSTR. Para obtener más información, vea Tipos de datos de Windows para cadenas.

Este tipo se declara en WinNT.h de la siguiente manera:

C++
#ifdef UNICODE
 typedef LPCWSTR LPCTSTR; 
#else
 typedef LPCSTR LPCTSTR;
#endif
LPCVOID

Puntero a una constante de cualquier tipo.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef CONST void *LPCVOID;

LPCWSTR

Puntero a una cadena terminada en null constante de caracteres Unicode de 16 bits. Para obtener más información, vea Juegos de caracteres usados por fuentes.

Este tipo se declara en WinNT.h de la siguiente manera:

typedef CONST WCHAR *LPCWSTR;

LPDWORD

Puntero a un DWORD.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef DWORD *LPDWORD;

LPHANDLE

Puntero a un IDENTIFICADOR.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef HANDLE *LPHANDLE;

LPINT

Puntero a un INT.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef int *LPINT;

LPLONG

Puntero a un long.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef long *LPLONG;

LPSTR

Puntero a una cadena terminada en null de caracteres de Windows (ANSI) de 8 bits. Para obtener más información, vea Juegos de caracteres usados por fuentes.

Este tipo se declara en WinNT.h de la siguiente manera:

typedef CHAR *LPSTR;

LPTSTR

LpWSTR si se define UNICODE, de lo contrario, un LPSTR. Para obtener más información, vea Tipos de datos de Windows para cadenas.

Este tipo se declara en WinNT.h de la siguiente manera:

C++
#ifdef UNICODE
 typedef LPWSTR LPTSTR;
#else
 typedef LPSTR LPTSTR;
#endif
LPVOID

Puntero a cualquier tipo.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef void *LPVOID;

LPWORD

Puntero a word.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef WORD *LPWORD;

LPWSTR

Puntero a una cadena terminada en null de caracteres Unicode de 16 bits. Para obtener más información, vea Juegos de caracteres usados por fuentes.

Este tipo se declara en WinNT.h de la siguiente manera:

typedef WCHAR *LPWSTR;

LRESULT

Resultado firmado del procesamiento de mensajes.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef LONG_PTR LRESULT;

PBOOL

Puntero a un BOOL.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef BOOL *PBOOL;

PBOOLEAN

Puntero a un valor BOOLEAN.

Este tipo se declara en WinNT.h de la siguiente manera:

typedef BOOLEAN *PBOOLEAN;

PBYTE

Puntero a un BYTE.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef BYTE *PBYTE;

PCHAR

Puntero a un char.

Este tipo se declara en WinNT.h de la siguiente manera:

typedef CHAR *PCHAR;

PCSTR

Puntero a una cadena terminada en null constante de caracteres de Windows (ANSI) de 8 bits. Para obtener más información, vea Juegos de caracteres usados por fuentes.

Este tipo se declara en WinNT.h de la siguiente manera:

typedef CONST CHAR *PCSTR;

PCTSTR

Un PCWSTR si se define UNICODE, de lo contrario, un PCSTR. Para obtener más información, vea Tipos de datos de Windows para cadenas.

Este tipo se declara en WinNT.h de la siguiente manera:

C++
#ifdef UNICODE
 typedef LPCWSTR PCTSTR;
#else
 typedef LPCSTR PCTSTR;
#endif
PCWSTR

Puntero a una cadena terminada en null constante de caracteres Unicode de 16 bits. Para obtener más información, vea Juegos de caracteres usados por fuentes.

Este tipo se declara en WinNT.h de la siguiente manera:

typedef CONST WCHAR *PCWSTR;

PDWORD

Puntero a un DWORD.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef DWORD *PDWORD;

PDWORDLONG

Puntero a un DWORDLONG.

Este tipo se declara en WinNT.h de la siguiente manera:

typedef DWORDLONG *PDWORDLONG;

PDWORD_PTR

Puntero a un DWORD_PTR.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef DWORD_PTR *PDWORD_PTR;

PDWORD32

Puntero a un DWORD32.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef DWORD32 *PDWORD32;

PDWORD64

Puntero a un DWORD64.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef DWORD64 *PDWORD64;

PFLOAT

Puntero a float.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef FLOAT *PFLOAT;

PHALF_PTR

Puntero a un HALF_PTR.

Este tipo se declara en BaseTsd.h de la siguiente manera:

C++
#ifdef _WIN64
 typedef HALF_PTR *PHALF_PTR;
#else
 typedef HALF_PTR *PHALF_PTR;
#endif
PHANDLE

Puntero a un IDENTIFICADOR.

Este tipo se declara en WinNT.h de la siguiente manera:

typedef HANDLE *PHANDLE;

PHKEY

Puntero a un HKEY.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef HKEY *PHKEY;

PINTA

Puntero a un INT.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef int *PINT;

PINT_PTR

Puntero a un INT_PTR.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef INT_PTR *PINT_PTR;

PINT8

Puntero a un INT8.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef INT8 *PINT8;

PINT16

Puntero a un INT16.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef INT16 *PINT16;

PINT32

Puntero a un INT32.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef INT32 *PINT32;

PINT64

Puntero a un INT64.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef INT64 *PINT64;

PLCID

Puntero a un LCID.

Este tipo se declara en WinNT.h de la siguiente manera:

typedef PDWORD PLCID;

PLONG

Puntero a un long.

Este tipo se declara en WinNT.h de la siguiente manera:

typedef LONG *PLONG;

PLONGLONG

Puntero a un LONGLONG.

Este tipo se declara en WinNT.h de la siguiente manera:

typedef LONGLONG *PLONGLONG;

PLONG_PTR

Puntero a un LONG_PTR.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef LONG_PTR *PLONG_PTR;

PLONG32

Puntero a long32.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef LONG32 *PLONG32;

PLONG64

Puntero a long64.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef LONG64 *PLONG64;

POINTER_32

Puntero de 32 bits. En un sistema de 32 bits, se trata de un puntero nativo. En un sistema de 64 bits, se trata de un puntero de 64 bits truncado.

Este tipo se declara en BaseTsd.h de la siguiente manera:

C++
#if defined(_WIN64)
#define POINTER_32 __ptr32
#else
#define POINTER_32
#endif
POINTER_64

Puntero de 64 bits. En un sistema de 64 bits, se trata de un puntero nativo. En un sistema de 32 bits, se trata de un puntero de 32 bits extendido de signo.

Tenga en cuenta que no es seguro asumir el estado del bit de puntero alto.

Este tipo se declara en BaseTsd.h de la siguiente manera:

C++
#if (_MSC_VER >= 1300)
#define POINTER_64 __ptr64
#else
#define POINTER_64
#endif
POINTER_SIGNED

Puntero firmado.

Este tipo se declara en BaseTsd.h de la siguiente manera:

#define POINTER_SIGNED __sptr

POINTER_UNSIGNED

Puntero sin signo.

Este tipo se declara en BaseTsd.h de la siguiente manera:

#define POINTER_UNSIGNED __uptr

PSHORT

Puntero a un short.

Este tipo se declara en WinNT.h de la siguiente manera:

typedef SHORT *PSHORT;

PSIZE_T

Puntero a un SIZE_T.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef SIZE_T *PSIZE_T;

PSSIZE_T

Puntero a un SSIZE_T.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef SSIZE_T *PSSIZE_T;

PSTR

Puntero a una cadena terminada en null de caracteres de Windows (ANSI) de 8 bits. Para obtener más información, vea Juegos de caracteres usados por fuentes.

Este tipo se declara en WinNT.h de la siguiente manera:

typedef CHAR *PSTR;

PTBYTE

Puntero a un TBYTE.

Este tipo se declara en WinNT.h de la siguiente manera:

typedef TBYTE *PTBYTE;

PTCHAR

Puntero a un TCHAR.

Este tipo se declara en WinNT.h de la siguiente manera:

typedef TCHAR *PTCHAR;

PTSTR

PWSTR si se define UNICODE, de lo contrario, una PSTR. Para obtener más información, vea Tipos de datos de Windows para cadenas.

Este tipo se declara en WinNT.h de la siguiente manera:

C++
#ifdef UNICODE
 typedef LPWSTR PTSTR;
#else typedef LPSTR PTSTR;
#endif
PUCHAR

Puntero a un UCHAR.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef UCHAR *PUCHAR;

PUHALF_PTR

Puntero a un UHALF_PTR.

Este tipo se declara en BaseTsd.h de la siguiente manera:

C++
#ifdef _WIN64
 typedef UHALF_PTR *PUHALF_PTR;
#else
 typedef UHALF_PTR *PUHALF_PTR;
#endif
PUINT

Puntero a un UINT.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef UINT *PUINT;

PUINT_PTR

Puntero a un UINT_PTR.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef UINT_PTR *PUINT_PTR;

PUINT8

Puntero a un UINT8.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef UINT8 *PUINT8;

PUINT16

Puntero a un UINT16.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef UINT16 *PUINT16;

PUINT32

Puntero a un UINT32.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef UINT32 *PUINT32;

PUINT64

Puntero a un UINT64.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef UINT64 *PUINT64;

PULONG

Puntero a un ULONG.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef ULONG *PULONG;

PULONGLONG

Puntero a un ULONGLONG.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef ULONGLONG *PULONGLONG;

PULONG_PTR

Puntero a un ULONG_PTR.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef ULONG_PTR *PULONG_PTR;

PULONG32

Puntero a un ULONG32.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef ULONG32 *PULONG32;

PULONG64

Puntero a un ULONG64.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef ULONG64 *PULONG64;

PUSHORT

Puntero a un USHORT.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef USHORT *PUSHORT;

PVOID

Puntero a cualquier tipo.

Este tipo se declara en WinNT.h de la siguiente manera:

typedef void *PVOID;

PWCHAR

Puntero a un WCHAR.

Este tipo se declara en WinNT.h de la siguiente manera:

typedef WCHAR *PWCHAR;

PWORD

Puntero a word.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef WORD *PWORD;

PWSTR

Puntero a una cadena terminada en null de caracteres Unicode de 16 bits. Para obtener más información, vea Juegos de caracteres usados por fuentes.

Este tipo se declara en WinNT.h de la siguiente manera:

typedef WCHAR *PWSTR;

QWORD

Entero de 64 bits sin signo.

Este tipo se declara de la siguiente manera:

typedef unsigned __int64 QWORD;

SC_HANDLE

Identificador de una base de datos del Administrador de control de servicios. Para obtener más información, vea Identificadores de SCM.

Este tipo se declara en WinSvc.h de la siguiente manera:

typedef HANDLE SC_HANDLE;

SC_LOCK

Bloqueo en una base de datos del Administrador de control de servicios. Para obtener más información, vea Identificadores de SCM.

Este tipo se declara en WinSvc.h de la siguiente manera:

typedef LPVOID SC_LOCK;

SERVICE_STATUS_HANDLE

Identificador de un valor de estado de servicio. Para obtener más información, vea Identificadores de SCM.

Este tipo se declara en WinSvc.h de la siguiente manera:

typedef HANDLE SERVICE_STATUS_HANDLE;

CORTO

Entero de 16 bits. El intervalo es de -32768 a 32767 decimal.

Este tipo se declara en WinNT.h de la siguiente manera:

typedef short SHORT;

SIZE_T

Número máximo de bytes a los que un puntero puede apuntar. Se usa para un recuento que debe abarcar el intervalo completo de un puntero.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef ULONG_PTR SIZE_T;

SSIZE_T

Una versión firmada de SIZE_T.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef LONG_PTR SSIZE_T;

TBYTE

WCHAR si se define UNICODE, de lo contrario, un CHAR.

Este tipo se declara en WinNT.h de la siguiente manera:

C++
#ifdef UNICODE
 typedef WCHAR TBYTE;
#else
 typedef unsigned char TBYTE;
#endif
TCHAR

WCHAR si se define UNICODE, de lo contrario, un CHAR.

Este tipo se declara en WinNT.h de la siguiente manera:

C++
#ifdef UNICODE
 typedef WCHAR TCHAR;
#else
 typedef char TCHAR;
#endif
UCHAR

Un CHAR sin firmar.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef unsigned char UCHAR;

UHALF_PTR

Un HALF_PTR sin signo. Use dentro de una estructura que contenga un puntero y dos campos pequeños.

Este tipo se declara en BaseTsd.h de la siguiente manera:

C++
#ifdef _WIN64
 typedef unsigned int UHALF_PTR;
#else
 typedef unsigned short UHALF_PTR;
#endif
UINT

Un INT sin signo. El intervalo es de 0 a 4294967295 decimal.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef unsigned int UINT;

UINT_PTR

Un INT_PTR sin signo.

Este tipo se declara en BaseTsd.h de la siguiente manera:

C++
#if defined(_WIN64)
 typedef unsigned __int64 UINT_PTR;
#else
 typedef unsigned int UINT_PTR;
#endif
UINT8

Un INT8 sin signo.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef unsigned char UINT8;

UINT16

Un INT16 sin signo.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef unsigned short UINT16;

UINT32

Un int32 sin signo. El intervalo es de 0 a 4294967295 decimal.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef unsigned int UINT32;

UINT64

Un int64 sin signo. El intervalo es de 0 a 18446744073709551615 decimal.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef unsigned __int64 UINT64;

ULONG

Long sin signo. El intervalo es de 0 a 4294967295 decimal.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef unsigned long ULONG;

ULONGLONG

Entero de 64 bits sin signo. El intervalo es de 0 a 18446744073709551615 decimal.

Este tipo se declara en WinNT.h de la siguiente manera:

C++
#if !defined(_M_IX86)
 typedef unsigned __int64 ULONGLONG;
#else
 typedef double ULONGLONG;
#endif
ULONG_PTR

Un LONG_PTR sin signo.

Este tipo se declara en BaseTsd.h de la siguiente manera:

C++
#if defined(_WIN64)
 typedef unsigned __int64 ULONG_PTR;
#else
 typedef unsigned long ULONG_PTR;
#endif
ULONG32

Long32 sin signo. El intervalo es de 0 a 4294967295 decimal.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef unsigned int ULONG32;

ULONG64

Long64 sin signo. El intervalo es de 0 a 18446744073709551615 decimal.

Este tipo se declara en BaseTsd.h de la siguiente manera:

typedef unsigned __int64 ULONG64;

UNICODE_STRING

Cadena Unicode.

Este tipo se declara en Winternl.h de la siguiente manera:

C++
typedef struct _UNICODE_STRING {
  USHORT  Length;
  USHORT  MaximumLength;
  PWSTR  Buffer;
} UNICODE_STRING;
typedef UNICODE_STRING *PUNICODE_STRING;
typedef const UNICODE_STRING *PCUNICODE_STRING;
USHORT

Un SHORT sin signo. El intervalo es de 0 a 65535 decimal.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef unsigned short USHORT;

USN

Número de secuencia de actualización (USN).

Este tipo se declara en WinNT.h de la siguiente manera:

typedef LONGLONG USN;

VACÍO

Cualquier tipo.

Este tipo se declara en WinNT.h de la siguiente manera:

#define VOID void

WCHAR

Carácter Unicode de 16 bits. Para obtener más información, vea Juegos de caracteres usados por fuentes.

Este tipo se declara en WinNT.h de la siguiente manera:

typedef wchar_t WCHAR;

WINAPI

Convención de llamada para las funciones del sistema.

Este tipo se declara en WinDef.h de la siguiente manera:

#define WINAPI __stdcall

CALLBACK, WINAPI y APIENTRY se usan para definir funciones con la convención de llamada de __stdcall. La mayoría de las funciones de la API de Windows se declaran mediante WINAPI. Es posible que desee usar CALLBACK para las funciones de devolución de llamada que implemente para ayudar a identificar la función como una función de devolución de llamada.

PALABRA

Entero de 16 bits sin signo. El intervalo es de 0 a 65535 decimal.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef unsigned short WORD;

WPARAM

Parámetro de mensaje.

Este tipo se declara en WinDef.h de la siguiente manera:

typedef UINT_PTR WPARAM;

Requisitos

Requisito Value
Cliente mínimo compatible
Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows Server 2003 [solo aplicaciones de escritorio]
Encabezado
BaseTsd.h;
WinDef.h;
WinNT.h