Compartilhar via


Tipos de dados do Windows

Os tipos de dados compatíveis com o Windows são usados para definir valores de retorno de função, parâmetros de função e mensagem e membros da estrutura. Eles definem o tamanho e o significado desses elementos. Para obter mais informações sobre os tipos de dados C/C++ subjacentes, consulte intervalos de tipos de dados.

A tabela a seguir contém os seguintes tipos: caractere, inteiro, booliano, ponteiro e identificador. Os tipos de caractere, inteiro e booliano são comuns à maioria dos compiladores C. A maioria dos nomes de tipo de ponteiro começa com um prefixo de P ou LP. Os identificadores referem-se a um recurso que foi carregado na memória.

Para obter mais informações sobre como lidar com inteiros de 64 bits, consulte inteiros grandes.

Tipo de dado Descrição
APIENTRY A convenção de chamada para funções do sistema.
Esse tipo é declarado em WinDef.h da seguinte maneira:
#define APIENTRY WINAPI
ATOM Um átomo. Para obter mais informações, consulte Sobre tabelas Atom.
Esse tipo é declarado em WinDef.h da seguinte maneira:
typedef WORD ATOM;
BOOL Uma variável booliana (deve ser verdadeiro ou FALSE).
Esse tipo é declarado em WinDef.h da seguinte maneira:
typedef int BOOL;
BOOLEAN Uma variável booliana (deve ser verdadeiro ou FALSE).
Esse tipo é declarado no WinNT.h da seguinte maneira:
typedef BYTE BOOLEAN;
BYTE Um byte (8 bits).
Esse tipo é declarado em WinDef.h da seguinte maneira:
typedef unsigned char BYTE;
CALLBACK A convenção de chamada para funções de retorno de chamada.
Esse tipo é declarado em WinDef.h da seguinte maneira:
#define CALLBACK __stdcall
de RETORNO DE CHAMADA, WINAPI e APIENTRY são usados para definir funções com a convenção de chamada __stdcall. A maioria das funções na API do Windows é declarada usando WINAPI. Talvez você queira usar callback para as funções de retorno de chamada que você implementa para ajudar a identificar a função como uma função de retorno de chamada.
CCHAR Um caractere ANSI (Windows) de 8 bits.
Esse tipo é declarado no WinNT.h da seguinte maneira:
typedef char CCHAR;
CHAR Um caractere ANSI (Windows) de 8 bits. Para obter mais informações, consulte conjuntos de caracteres usados por fontes.
Esse tipo é declarado no WinNT.h da seguinte maneira:
typedef char CHAR;
COLORREF O valor de cor vermelho, verde, azul (RGB) (32 bits). Consulte COLORREF para obter informações sobre esse tipo.
Esse tipo é declarado em WinDef.h da seguinte maneira:
typedef DWORD COLORREF;
CONST Uma variável cujo valor deve permanecer constante durante a execução.
Esse tipo é declarado em WinDef.h da seguinte maneira:
#define CONST const
DWORD Um inteiro sem sinal de 32 bits. O intervalo é de 0 a 4294967295 decimal.
Esse tipo é declarado no IntSafe.h da seguinte maneira:
typedef unsigned long DWORD;
DWORDLONG Um inteiro sem sinal de 64 bits. O intervalo é de 0 a 18446744073709551615 decimal.
Esse tipo é declarado no IntSafe.h da seguinte maneira:
typedef unsigned __int64 DWORDLONG;
DWORD_PTR Um tipo longo sem sinal para precisão do ponteiro. Use ao converter um ponteiro em um tipo longo para executar aritmética de ponteiro. (Também comumente usado para parâmetros gerais de 32 bits que foram estendidos para 64 bits no Windows de 64 bits.)
Esse tipo é declarado em BaseTsd.h da seguinte maneira:
typedef ULONG_PTR DWORD_PTR;
DWORD32 Um inteiro sem sinal de 32 bits.
Esse tipo é declarado em BaseTsd.h da seguinte maneira:
typedef unsigned int DWORD32;
DWORD64 Um inteiro sem sinal de 64 bits.
Esse tipo é declarado em BaseTsd.h da seguinte maneira:
typedef unsigned __int64 DWORD64;
FLOAT Uma variável de ponto flutuante.
Esse tipo é declarado em WinDef.h da seguinte maneira:
typedef float FLOAT;
HACCEL Um identificador para uma tabela de acelerador de .
Esse tipo é declarado em WinDef.h da seguinte maneira:
typedef HANDLE HACCEL;
HALF_PTR Metade do tamanho de um ponteiro. Use dentro de uma estrutura que contenha um ponteiro e dois campos pequenos.
Esse tipo é declarado em BaseTsd.h da seguinte maneira:
C++
#ifdef _WIN64
 typedef int HALF_PTR;
#else
 typedef short HALF_PTR;
#endif
HANDLE

Um identificador para um objeto.

Esse tipo é declarado no WinNT.h da seguinte maneira:

typedef PVOID HANDLE;

HBITMAP

Um identificador para umde bitmap .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef HANDLE HBITMAP;

HBRUSH

Um identificador para um pincel de .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef HANDLE HBRUSH;

HCOLORSPACE

Um identificador para um espaço de cor .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef HANDLE HCOLORSPACE;

HCONV

Um identificador para uma conversa DDE (troca de dados dinâmica).

Esse tipo é declarado em Ddeml.h da seguinte maneira:

typedef HANDLE HCONV;

HCONVLIST

Um identificador para uma lista de conversas DDE.

Esse tipo é declarado em Ddeml.h da seguinte maneira:

typedef HANDLE HCONVLIST;

HCURSOR

Um identificador para um cursor .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef HICON HCURSOR;

HDC

Um identificador para um de contexto de dispositivo (DC).

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef HANDLE HDC;

HDDEDATA

Um identificador para dados DDE.

Esse tipo é declarado em Ddeml.h da seguinte maneira:

typedef HANDLE HDDEDATA;

HDESK

Um identificador para umda área de trabalho .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef HANDLE HDESK;

HDROP

Um identificador para uma estrutura suspensa interna.

Esse tipo é declarado no ShellApi.h da seguinte maneira:

typedef HANDLE HDROP;

HDWP

Um identificador para uma estrutura de posição de janela adiada.

Esse tipo é declarado no WinUser.h da seguinte maneira:

typedef HANDLE HDWP;

HENHMETAFILE

Um identificador para umde metafile aprimorado .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef HANDLE HENHMETAFILE;

HFILE

Um identificador para um arquivo aberto por OpenFile, não CreateFile.

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef int HFILE;

HFONT

Um identificador para uma fonte .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef HANDLE HFONT;

HGDIOBJ

Um identificador para um objeto GDI.

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef HANDLE HGDIOBJ;

HGLOBAL

Um identificador para um bloco de memória global.

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef HANDLE HGLOBAL;

HHOOK

Um identificador para um gancho de .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef HANDLE HHOOK;

HICON

Um identificador para um ícone de .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef HANDLE HICON;

HINSTANCE

Um identificador para uma instância. Esse é o endereço base do módulo na memória.

HMODULE e HINSTANCE são as mesmas hoje, mas representaram coisas diferentes no Windows de 16 bits.

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef HANDLE HINSTANCE;

HKEY

Um identificador para uma chave do Registro.

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef HANDLE HKEY;

HKL

Um identificador de localidade de entrada.

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef HANDLE HKL;

HLOCAL

Um identificador para um bloco de memória local.

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef HANDLE HLOCAL;

HMENU

Um identificador para um menu .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef HANDLE HMENU;

HMETAFILE

Um identificador para umde metafile .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef HANDLE HMETAFILE;

HMODULE

Um identificador para um módulo. Esse é o endereço base do módulo na memória.

HMODULE e HINSTANCE são iguais nas versões atuais do Windows, mas representavam coisas diferentes no Windows de 16 bits.

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef HINSTANCE HMODULE;

HMONITOR

Um identificador para um monitor de exibição.

Esse tipo é declarado em WinDef.h da seguinte maneira:

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

HPALETTE

Um identificador para uma paleta.

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef HANDLE HPALETTE;

HPEN

Um identificador para uma caneta .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef HANDLE HPEN;

HRESULT

Os códigos de retorno usados pelas interfaces COM. Para obter mais informações, consulte Estrutura dos códigos de erro COM. Para testar um valor de HRESULT , use as macros com FALHA e BEM-sucedidas.

Esse tipo é declarado no WinNT.h da seguinte maneira:

typedef LONG HRESULT;

HRGN

Um identificador para uma região .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef HANDLE HRGN;

HRSRC

Um identificador para um recurso.

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef HANDLE HRSRC;

HSZ

Um identificador para uma cadeia de caracteres DDE.

Esse tipo é declarado em Ddeml.h da seguinte maneira:

typedef HANDLE HSZ;

HWINSTA

Um identificador para uma estação de janela .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef HANDLE WINSTA;

HWND

Um identificador para uma janela .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef HANDLE HWND;

INT

Um inteiro com sinal de 32 bits. O intervalo é -2147483648 por meio de 2147483647 decimal.

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef int INT;

INT_PTR

Um tipo inteiro com sinal para precisão do ponteiro. Use ao converter um ponteiro em um inteiro para executar aritmética de ponteiro.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

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

Um inteiro com sinal de 8 bits.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef signed char INT8;

INT16

Um inteiro com sinal de 16 bits.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef signed short INT16;

INT32

Um inteiro com sinal de 32 bits. O intervalo é -2147483648 por meio de 2147483647 decimal.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef signed int INT32;

INT64

Um inteiro com sinal de 64 bits. O intervalo é -9223372036854775808 por meio de 9223372036854775807 decimal.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef signed __int64 INT64;

LANGID

Um identificador de idioma. Para obter mais informações, consulte de Identificadores de Idioma.

Esse tipo é declarado no WinNT.h da seguinte maneira:

typedef WORD LANGID;

LCID

Um identificador de localidade. Para obter mais informações, consulte Identificadores de Localidade.

Esse tipo é declarado no WinNT.h da seguinte maneira:

typedef DWORD LCID;

LCTYPE

Um tipo de informação de localidade. Para obter uma lista, consulte Constantes de Informações de Localidade.

Esse tipo é declarado em WinNls.h da seguinte maneira:

typedef DWORD LCTYPE;

LGRPID

Um identificador de grupo de idiomas. Para obter uma lista, consulte EnumLanguageGroupLocales.

Esse tipo é declarado em WinNls.h da seguinte maneira:

typedef DWORD LGRPID;

LONG

Um inteiro com sinal de 32 bits. O intervalo é -2147483648 por meio de 2147483647 decimal.

Esse tipo é declarado no WinNT.h da seguinte maneira:

typedef long LONG;

LONGLONG

Um inteiro com sinal de 64 bits. O intervalo é -9223372036854775808 por meio de 9223372036854775807 decimal.

Esse tipo é declarado no WinNT.h da seguinte maneira:

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

Um tipo longo assinado para precisão do ponteiro. Use ao converter um ponteiro para um longo para executar aritmética de ponteiro.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

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

Um inteiro com sinal de 32 bits. O intervalo é -2147483648 por meio de 2147483647 decimal.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef signed int LONG32;

LONG64

Um inteiro com sinal de 64 bits. O intervalo é -9223372036854775808 por meio de 9223372036854775807 decimal.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef __int64 LONG64;

LPARAM

Um parâmetro de mensagem.

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef LONG_PTR LPARAM;

LPBOOL

Um ponteiro para umBOOL .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef BOOL far *LPBOOL;

LPBYTE

Um ponteiro para umBYTE .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef BYTE far *LPBYTE;

LPCOLORREF

Um ponteiro para um valor COLORREF.

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef DWORD *LPCOLORREF;

LPCSTR

Um ponteiro para uma cadeia de caracteres anulada por nulo constante de caracteres ANSI (Windows) de 8 bits. Para obter mais informações, consulte conjuntos de caracteres usados por fontes.

Esse tipo é declarado no WinNT.h da seguinte maneira:

typedef __nullterminated CONST CHAR *LPCSTR;

LPCTSTR

Um LPCWSTR se UNICODE estiver definido, um LPCSTR caso contrário. Para obter mais informações, consulte tipos de dados do Windows para cadeias de caracteres.

Esse tipo é declarado no WinNT.h da seguinte maneira:

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

Um ponteiro para uma constante de qualquer tipo.

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef CONST void *LPCVOID;

LPCWSTR

Um ponteiro para uma cadeia de caracteres Unicode terminada em nulo constante de 16 bits. Para obter mais informações, consulte conjuntos de caracteres usados por fontes.

Esse tipo é declarado no WinNT.h da seguinte maneira:

typedef CONST WCHAR *LPCWSTR;

LPDWORD

Um ponteiro para umDWORD .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef DWORD *LPDWORD;

LPHANDLE

Um ponteiro para umHANDLE .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef HANDLE *LPHANDLE;

LPINT

Um ponteiro para umINT .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef int *LPINT;

LPLONG

Um ponteiro para umLONG .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef long *LPLONG;

LPSTR

Um ponteiro para uma cadeia de caracteres ANSI (Windows) terminada em nulo. Para obter mais informações, consulte conjuntos de caracteres usados por fontes.

Esse tipo é declarado no WinNT.h da seguinte maneira:

typedef CHAR *LPSTR;

LPTSTR

Um LPWSTR se UNICODE for definido, um LPSTR caso contrário. Para obter mais informações, consulte tipos de dados do Windows para cadeias de caracteres.

Esse tipo é declarado no WinNT.h da seguinte maneira:

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

Um ponteiro para qualquer tipo.

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef void *LPVOID;

LPWORD

Um ponteiro para umword .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef WORD *LPWORD;

LPWSTR

Um ponteiro para uma cadeia de caracteres Unicode terminada em nulo de 16 bits. Para obter mais informações, consulte conjuntos de caracteres usados por fontes.

Esse tipo é declarado no WinNT.h da seguinte maneira:

typedef WCHAR *LPWSTR;

LRESULT

Resultado assinado do processamento de mensagens.

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef LONG_PTR LRESULT;

PBOOL

Um ponteiro para umBOOL .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef BOOL *PBOOL;

PBOOLEAN

Um ponteiro para umBOOLEAN .

Esse tipo é declarado no WinNT.h da seguinte maneira:

typedef BOOLEAN *PBOOLEAN;

PBYTE

Um ponteiro para umBYTE .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef BYTE *PBYTE;

PCHAR

Um ponteiro para umCHAR .

Esse tipo é declarado no WinNT.h da seguinte maneira:

typedef CHAR *PCHAR;

PCSTR

Um ponteiro para uma cadeia de caracteres anulada por nulo constante de caracteres ANSI (Windows) de 8 bits. Para obter mais informações, consulte conjuntos de caracteres usados por fontes.

Esse tipo é declarado no WinNT.h da seguinte maneira:

typedef CONST CHAR *PCSTR;

PCTSTR

Um PCWSTR se UNICODE estiver definido, um PCSTR caso contrário. Para obter mais informações, consulte tipos de dados do Windows para cadeias de caracteres.

Esse tipo é declarado no WinNT.h da seguinte maneira:

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

Um ponteiro para uma cadeia de caracteres Unicode terminada em nulo constante de 16 bits. Para obter mais informações, consulte conjuntos de caracteres usados por fontes.

Esse tipo é declarado no WinNT.h da seguinte maneira:

typedef CONST WCHAR *PCWSTR;

PDWORD

Um ponteiro para umDWORD .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef DWORD *PDWORD;

PDWORDLONG

Um ponteiro para umDWORDLONG .

Esse tipo é declarado no WinNT.h da seguinte maneira:

typedef DWORDLONG *PDWORDLONG;

PDWORD_PTR

Um ponteiro para um DWORD_PTR.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef DWORD_PTR *PDWORD_PTR;

PDWORD32

Um ponteiro para um DWORD32.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef DWORD32 *PDWORD32;

PDWORD64

Um ponteiro para um DWORD64.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef DWORD64 *PDWORD64;

PFLOAT

Um ponteiro para umFLOAT .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef FLOAT *PFLOAT;

PHALF_PTR

Um ponteiro para um HALF_PTR.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

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

Um ponteiro para umHANDLE .

Esse tipo é declarado no WinNT.h da seguinte maneira:

typedef HANDLE *PHANDLE;

PHKEY

Um ponteiro para umHKEY .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef HKEY *PHKEY;

PINT

Um ponteiro para umINT .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef int *PINT;

PINT_PTR

Um ponteiro para um INT_PTR.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef INT_PTR *PINT_PTR;

PINT8

Um ponteiro para um INT8.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef INT8 *PINT8;

PINT16

Um ponteiro para umINT16 .

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef INT16 *PINT16;

PINT32

Um ponteiro para umINT32 .

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef INT32 *PINT32;

PINT64

Um ponteiro para umINT64 .

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef INT64 *PINT64;

PLCID

Um ponteiro para um LCID .

Esse tipo é declarado no WinNT.h da seguinte maneira:

typedef PDWORD PLCID;

PLONG

Um ponteiro para umLONG .

Esse tipo é declarado no WinNT.h da seguinte maneira:

typedef LONG *PLONG;

PLONGLONG

Um ponteiro para umLONGLONG .

Esse tipo é declarado no WinNT.h da seguinte maneira:

typedef LONGLONG *PLONGLONG;

PLONG_PTR

Um ponteiro para um LONG_PTR.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef LONG_PTR *PLONG_PTR;

PLONG32

Um ponteiro para um LONG32 .

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef LONG32 *PLONG32;

PLONG64

Um ponteiro para umLONG64 .

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef LONG64 *PLONG64;

POINTER_32

Um ponteiro de 32 bits. Em um sistema de 32 bits, este é um ponteiro nativo. Em um sistema de 64 bits, este é um ponteiro truncado de 64 bits.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

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

Um ponteiro de 64 bits. Em um sistema de 64 bits, este é um ponteiro nativo. Em um sistema de 32 bits, este é um ponteiro de 32 bits estendido por sinal.

Observe que não é seguro assumir o estado do bit de ponteiro alto.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

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

Um ponteiro assinado.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

#define POINTER_SIGNED __sptr

POINTER_UNSIGNED

Um ponteiro sem sinal.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

#define POINTER_UNSIGNED __uptr

PSHORT

Um ponteiro para um SHORT.

Esse tipo é declarado no WinNT.h da seguinte maneira:

typedef SHORT *PSHORT;

PSIZE_T

Um ponteiro para um SIZE_T.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef SIZE_T *PSIZE_T;

PSSIZE_T

Um ponteiro para um SSIZE_T.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef SSIZE_T *PSSIZE_T;

PSTR

Um ponteiro para uma cadeia de caracteres ANSI (Windows) terminada em nulo. Para obter mais informações, consulte conjuntos de caracteres usados por fontes.

Esse tipo é declarado no WinNT.h da seguinte maneira:

typedef CHAR *PSTR;

PTBYTE

Um ponteiro para umTBYTE .

Esse tipo é declarado no WinNT.h da seguinte maneira:

typedef TBYTE *PTBYTE;

PTCHAR

Um ponteiro para umTCHAR .

Esse tipo é declarado no WinNT.h da seguinte maneira:

typedef TCHAR *PTCHAR;

PTSTR

Um PWSTR se UNICODE for definido, um PSTR caso contrário. Para obter mais informações, consulte tipos de dados do Windows para cadeias de caracteres.

Esse tipo é declarado no WinNT.h da seguinte maneira:

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

Um ponteiro para umUCHAR .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef UCHAR *PUCHAR;

PUHALF_PTR

Um ponteiro para um UHALF_PTR.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

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

Um ponteiro para umUINT .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef UINT *PUINT;

PUINT_PTR

Um ponteiro para um UINT_PTR.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef UINT_PTR *PUINT_PTR;

PUINT8

Um ponteiro para umUINT8 .

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef UINT8 *PUINT8;

PUINT16

Um ponteiro para umUINT16 .

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef UINT16 *PUINT16;

PUINT32

Um ponteiro para umUINT32 .

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef UINT32 *PUINT32;

PUINT64

Um ponteiro para umUINT64 .

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef UINT64 *PUINT64;

PULONG

Um ponteiro para umULONG .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef ULONG *PULONG;

PULONGLONG

Um ponteiro para umULONGLONG .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef ULONGLONG *PULONGLONG;

PULONG_PTR

Um ponteiro para um ULONG_PTR.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef ULONG_PTR *PULONG_PTR;

PULONG32

Um ponteiro para um ULONG32.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef ULONG32 *PULONG32;

PULONG64

Um ponteiro para um ULONG64.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef ULONG64 *PULONG64;

PUSHORT

Um ponteiro para umushort .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef USHORT *PUSHORT;

PVOID

Um ponteiro para qualquer tipo.

Esse tipo é declarado no WinNT.h da seguinte maneira:

typedef void *PVOID;

PWCHAR

Um ponteiro para um WCHAR .

Esse tipo é declarado no WinNT.h da seguinte maneira:

typedef WCHAR *PWCHAR;

PWORD

Um ponteiro para umword .

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef WORD *PWORD;

PWSTR

Um ponteiro para uma cadeia de caracteres Unicode terminada em nulo de 16 bits. Para obter mais informações, consulte conjuntos de caracteres usados por fontes.

Esse tipo é declarado no WinNT.h da seguinte maneira:

typedef WCHAR *PWSTR;

QWORD

Um inteiro sem sinal de 64 bits.

Esse tipo é declarado da seguinte maneira:

typedef unsigned __int64 QWORD;

SC_HANDLE

Um identificador para um banco de dados do gerenciador de controle de serviço. Para obter mais informações, consulte identificadores SCM.

Esse tipo é declarado no WinSvc.h da seguinte maneira:

typedef HANDLE SC_HANDLE;

SC_LOCK

Um bloqueio para um banco de dados do gerenciador de controle de serviço. Para obter mais informações, consulte identificadores SCM.

Esse tipo é declarado no WinSvc.h da seguinte maneira:

typedef LPVOID SC_LOCK;

SERVICE_STATUS_HANDLE

Um identificador para um valor de status de serviço. Para obter mais informações, consulte identificadores SCM.

Esse tipo é declarado no WinSvc.h da seguinte maneira:

typedef HANDLE SERVICE_STATUS_HANDLE;

SHORT

Um inteiro de 16 bits. O intervalo é -32768 até 32767 decimais.

Esse tipo é declarado no WinNT.h da seguinte maneira:

typedef short SHORT;

SIZE_T

O número máximo de bytes aos quais um ponteiro pode apontar. Use para uma contagem que deve abranger o intervalo completo de um ponteiro.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef ULONG_PTR SIZE_T;

SSIZE_T

Uma versão assinada do SIZE_T.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef LONG_PTR SSIZE_T;

TBYTE

Um WCHAR se UNICODE for definido, um CHAR caso contrário.

Esse tipo é declarado no WinNT.h da seguinte maneira:

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

Um WCHAR se UNICODE for definido, um CHAR caso contrário.

Esse tipo é declarado no WinNT.h da seguinte maneira:

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

UmCHAR sem sinal.

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef unsigned char UCHAR;

UHALF_PTR

Um HALF_PTRsem sinal. Use dentro de uma estrutura que contenha um ponteiro e dois campos pequenos.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

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

UmINT de sem sinal. O intervalo é de 0 a 4294967295 decimal.

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef unsigned int UINT;

UINT_PTR

Um INT_PTRsem sinal.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

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

UmINT8 de sem sinal .

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef unsigned char UINT8;

UINT16

UmINT16 de sem sinal .

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef unsigned short UINT16;

UINT32

UmINT32 de sem sinal . O intervalo é de 0 a 4294967295 decimal.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef unsigned int UINT32;

UINT64

UmINT64 de sem sinal . O intervalo é de 0 a 18446744073709551615 decimal.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef unsigned __int64 UINT64;

ULONG

UmLONG sem sinal . O intervalo é de 0 a 4294967295 decimal.

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef unsigned long ULONG;

ULONGLONG

Um inteiro sem sinal de 64 bits. O intervalo é de 0 a 18446744073709551615 decimal.

Esse tipo é declarado no WinNT.h da seguinte maneira:

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

Um LONG_PTRsem sinal.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

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

UmLONG32 sem sinal de . O intervalo é de 0 a 4294967295 decimal.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef unsigned int ULONG32;

ULONG64

UmLONG64 sem sinal de . O intervalo é de 0 a 18446744073709551615 decimal.

Esse tipo é declarado em BaseTsd.h da seguinte maneira:

typedef unsigned __int64 ULONG64;

UNICODE_STRING

Uma cadeia de caracteres Unicode.

Esse tipo é declarado em Winternl.h da seguinte maneira:

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

UmCURTO de sem sinal . O intervalo é de 0 a 65535 decimal.

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef unsigned short USHORT;

USN

Um USN (número de sequência de atualização).

Esse tipo é declarado no WinNT.h da seguinte maneira:

typedef LONGLONG USN;

VOID

Qualquer tipo.

Esse tipo é declarado no WinNT.h da seguinte maneira:

#define VOID void

WCHAR

Um caractere Unicode de 16 bits. Para obter mais informações, consulte conjuntos de caracteres usados por fontes.

Esse tipo é declarado no WinNT.h da seguinte maneira:

typedef wchar_t WCHAR;

WINAPI

A convenção de chamada para funções do sistema.

Esse tipo é declarado em WinDef.h da seguinte maneira:

#define WINAPI __stdcall

de RETORNO DE CHAMADA, WINAPI e APIENTRY são usados para definir funções com a convenção de chamada __stdcall. A maioria das funções na API do Windows é declarada usando WINAPI. Talvez você queira usar callback para as funções de retorno de chamada que você implementa para ajudar a identificar a função como uma função de retorno de chamada.

WORD

Um inteiro sem sinal de 16 bits. O intervalo é de 0 a 65535 decimal.

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef unsigned short WORD;

WPARAM

Um parâmetro de mensagem.

Esse tipo é declarado em WinDef.h da seguinte maneira:

typedef UINT_PTR WPARAM;

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows Server 2003 [somente aplicativos da área de trabalho]
Cabeçalho
BaseTsd.h;
WinDef.h;
WinNT.h