Condividi tramite


Tipi di dati Windows

I tipi di dati supportati da Windows vengono usati per definire valori restituiti dalla funzione, parametri di funzione e messaggi e membri della struttura. Definiscono le dimensioni e il significato di questi elementi. Per altre informazioni sui tipi di dati C/C++ sottostanti, vedere intervalli di tipi di dati.

La tabella seguente contiene i tipi seguenti: carattere, integer, booleano, puntatore e handle. I tipi character, integer e Boolean sono comuni alla maggior parte dei compilatori C. La maggior parte dei nomi dei tipi di puntatore inizia con un prefisso P o LP. Gli handle fanno riferimento a una risorsa caricata in memoria.

Per altre informazioni sulla gestione di interi a 64 bit, vedere Valori interi di grandi dimensioni.

Tipo di dati Descrizione
APIENTRY Convenzione di chiamata per le funzioni di sistema.
Questo tipo viene dichiarato in WinDef.h come indicato di seguito:
#define APIENTRY WINAPI
ATOM Un atomo. Per altre informazioni, vedere Informazioni sulle tabelle Atom.
Questo tipo viene dichiarato in WinDef.h come indicato di seguito:
typedef WORD ATOM;
BOOL Una variabile booleana (deve essere TRUE o FALSE).
Questo tipo viene dichiarato in WinDef.h come indicato di seguito:
typedef int BOOL;
BOOLEAN Una variabile booleana (deve essere TRUE o FALSE).
Questo tipo viene dichiarato in WinNT.h come indicato di seguito:
typedef BYTE BOOLEAN;
BYTE Byte (8 bit).
Questo tipo viene dichiarato in WinDef.h come indicato di seguito:
typedef unsigned char BYTE;
CALLBACK Convenzione di chiamata per le funzioni di callback.
Questo tipo viene dichiarato in WinDef.h come indicato di seguito:
#define CALLBACK __stdcall
CALLBACK, WINAPIe APIENTRY vengono tutti usati per definire funzioni con la convenzione di chiamata __stdcall. La maggior parte delle funzioni nell'API Windows viene dichiarata usando WINAPI. È possibile usare callback per le funzioni di callback implementate per identificare la funzione come funzione di callback.
CCHAR Carattere ANSI (Windows a 8 bit).
Questo tipo viene dichiarato in WinNT.h come indicato di seguito:
typedef char CCHAR;
CHAR Carattere ANSI (Windows a 8 bit). Per altre informazioni, vedere set di caratteri utilizzati dai tipi di carattere.
Questo tipo viene dichiarato in WinNT.h come indicato di seguito:
typedef char CHAR;
COLORREF Valore del colore rosso, verde, blu (RGB) (32 bit). Per informazioni su questo tipo, vedere COLORREF .
Questo tipo viene dichiarato in WinDef.h come indicato di seguito:
typedef DWORD COLORREF;
CONST Variabile il cui valore deve rimanere costante durante l'esecuzione.
Questo tipo viene dichiarato in WinDef.h come indicato di seguito:
#define CONST const
DWORD Intero senza segno a 32 bit. L'intervallo è compreso tra 0 e 4294967295 decimale.
Questo tipo viene dichiarato in IntSafe.h come indicato di seguito:
typedef unsigned long DWORD;
DWORDLONG Intero senza segno a 64 bit. L'intervallo è compreso tra 0 e 18446744073709551615 decimale.
Questo tipo viene dichiarato in IntSafe.h come indicato di seguito:
typedef unsigned __int64 DWORDLONG;
DWORD_PTR Tipo long senza segno per la precisione del puntatore. Usare quando si esegue il cast di un puntatore a un tipo long per eseguire l'aritmetica del puntatore. (Usato comunemente anche per i parametri generali a 32 bit estesi a 64 bit in Windows a 64 bit.
Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:
typedef ULONG_PTR DWORD_PTR;
DWORD32 Intero senza segno a 32 bit.
Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:
typedef unsigned int DWORD32;
DWORD64 Intero senza segno a 64 bit.
Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:
typedef unsigned __int64 DWORD64;
FLOAT Variabile a virgola mobile.
Questo tipo viene dichiarato in WinDef.h come indicato di seguito:
typedef float FLOAT;
HACCEL Handle per una tabella dell'acceleratore .
Questo tipo viene dichiarato in WinDef.h come indicato di seguito:
typedef HANDLE HACCEL;
HALF_PTR Metà delle dimensioni di un puntatore. Utilizzare all'interno di una struttura che contiene un puntatore e due campi piccoli.
Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:
C++
#ifdef _WIN64
 typedef int HALF_PTR;
#else
 typedef short HALF_PTR;
#endif
HANDLE

Handle di un oggetto .

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

typedef PVOID HANDLE;

HBITMAP

Handle per un bitmap.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef HANDLE HBITMAP;

HBRUSH

Handle per un pennello .

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef HANDLE HBRUSH;

HCOLORSPACE

Handle per uno spazio colore .

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef HANDLE HCOLORSPACE;

HCONV

Handle per una conversazione DDE (Dynamic Data Exchange).

Questo tipo viene dichiarato in Ddeml.h come indicato di seguito:

typedef HANDLE HCONV;

HCONVLIST

Handle per un elenco di conversazioni DDE.

Questo tipo viene dichiarato in Ddeml.h come indicato di seguito:

typedef HANDLE HCONVLIST;

HCURSOR

Handle per un cursore .

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef HICON HCURSOR;

HDC

Handle per un contesto di dispositivo (DC).

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef HANDLE HDC;

HDDEDATA

Handle per i dati DDE.

Questo tipo viene dichiarato in Ddeml.h come indicato di seguito:

typedef HANDLE HDDEDATA;

HDESK

Handle per un desktop.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef HANDLE HDESK;

HDROP

Handle di una struttura di rilascio interna.

Questo tipo viene dichiarato in ShellApi.h come indicato di seguito:

typedef HANDLE HDROP;

HDWP

Handle per una struttura di posizione della finestra posticipata.

Questo tipo viene dichiarato in WinUser.h come indicato di seguito:

typedef HANDLE HDWP;

HENHMETAFILE

Handle per un metafile avanzato.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef HANDLE HENHMETAFILE;

HFILE

Handle per un file aperto da OpenFile, non CreateFile.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef int HFILE;

HFONT

Handle per un tipo di carattere .

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef HANDLE HFONT;

HGDIOBJ

Handle di un oggetto GDI.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef HANDLE HGDIOBJ;

HGLOBAL

Handle per un blocco di memoria globale.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef HANDLE HGLOBAL;

HHOOK

Handle per un hook .

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef HANDLE HHOOK;

HICON

Handle per un'icona di .

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef HANDLE HICON;

HINSTANCE

Handle di un'istanza di . Questo è l'indirizzo di base del modulo in memoria.

HMODULE e HINSTANCE sono gli stessi oggi, ma rappresentano elementi diversi in Windows a 16 bit.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef HANDLE HINSTANCE;

HKEY

Handle di una chiave del Registro di sistema.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef HANDLE HKEY;

HKL

Identificatore delle impostazioni locali di input.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef HANDLE HKL;

HLOCAL

Handle per un blocco di memoria locale.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef HANDLE HLOCAL;

HMENU

Handle di un menu .

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef HANDLE HMENU;

HMETAFILE

Handle per un metafile .

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef HANDLE HMETAFILE;

HMODULE

Handle di un modulo. Questo è l'indirizzo di base del modulo in memoria.

HMODULE e HINSTANCE sono uguali nelle versioni correnti di Windows, ma rappresentavano elementi diversi in Windows a 16 bit.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef HINSTANCE HMODULE;

HMONITOR

Handle per un monitor di visualizzazione.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

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

HPALETTE

Handle di una tavolozza.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef HANDLE HPALETTE;

HPEN

Handle di una penna .

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef HANDLE HPEN;

HRESULT

Codici restituiti utilizzati dalle interfacce COM. Per altre informazioni, vedere Struttura dei codici di errore COM. Per testare un valore di HRESULT, utilizzare le macro FAILED FAILED e SUCCEEDED.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

typedef LONG HRESULT;

HRGN

Handle per un'area .

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef HANDLE HRGN;

HRSRC

Handle per una risorsa.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef HANDLE HRSRC;

HSZ

Handle di una stringa DDE.

Questo tipo viene dichiarato in Ddeml.h come indicato di seguito:

typedef HANDLE HSZ;

HWINSTA

Handle per una stazione finestra .

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef HANDLE WINSTA;

HWND

Handle per una finestra di .

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef HANDLE HWND;

INT

Intero con segno a 32 bit. L'intervallo viene -2147483648 da 2147483647 decimale.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef int INT;

INT_PTR

Tipo integer con segno per la precisione del puntatore. Usare quando si esegue il cast di un puntatore a un numero intero per eseguire l'aritmetica del puntatore.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

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

Intero con segno a 8 bit.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef signed char INT8;

INT16

Intero con segno a 16 bit.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef signed short INT16;

INT32

Intero con segno a 32 bit. L'intervallo viene -2147483648 da 2147483647 decimale.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef signed int INT32;

INT64

Intero con segno a 64 bit. L'intervallo viene -9223372036854775808 da 9223372036854775807 decimale.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef signed __int64 INT64;

LANGID

Identificatore di lingua. Per altre informazioni, vedere identificatori di lingua .

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

typedef WORD LANGID;

LCID

Identificatore delle impostazioni locali. Per altre informazioni, vedere identificatori delle impostazioni locali .

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

typedef DWORD LCID;

LCTYPE

Tipo di informazioni sulle impostazioni locali. Per un elenco, vedere Costanti informazioni sulle impostazioni locali.

Questo tipo viene dichiarato in WinNls.h come indicato di seguito:

typedef DWORD LCTYPE;

LGRPID

Identificatore del gruppo di lingue. Per un elenco, vedere EnumLanguageGroupLocales.

Questo tipo viene dichiarato in WinNls.h come indicato di seguito:

typedef DWORD LGRPID;

LONG

Intero con segno a 32 bit. L'intervallo viene -2147483648 da 2147483647 decimale.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

typedef long LONG;

LONGLONG

Intero con segno a 64 bit. L'intervallo viene -9223372036854775808 da 9223372036854775807 decimale.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

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

Tipo long con segno per la precisione del puntatore. Usare quando si esegue il cast di un puntatore a un long per eseguire l'aritmetica del puntatore.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

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

Intero con segno a 32 bit. L'intervallo viene -2147483648 da 2147483647 decimale.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef signed int LONG32;

LONG64

Intero con segno a 64 bit. L'intervallo viene -9223372036854775808 da 9223372036854775807 decimale.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef __int64 LONG64;

LPARAM

Parametro del messaggio.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef LONG_PTR LPARAM;

LPBOOL

Puntatore a un BOOL.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef BOOL far *LPBOOL;

LPBYTE

Puntatore a unBYTE .

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef BYTE far *LPBYTE;

LPCOLORREF

Puntatore a un valore COLORREF.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef DWORD *LPCOLORREF;

LPCSTR

Puntatore a una stringa con terminazione Null costante di caratteri ANSI (Windows a 8 bit). Per altre informazioni, vedere set di caratteri utilizzati dai tipi di carattere.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

typedef __nullterminated CONST CHAR *LPCSTR;

LPCTSTR

Un LPCWSTR se UNICODE è definito, un LPCSTR in caso contrario. Per altre informazioni, vedere tipi di dati windows per stringhe.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

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

Puntatore a una costante di qualsiasi tipo.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef CONST void *LPCVOID;

LPCWSTR

Puntatore a una stringa con terminazione Null costante di caratteri Unicode a 16 bit. Per altre informazioni, vedere set di caratteri utilizzati dai tipi di carattere.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

typedef CONST WCHAR *LPCWSTR;

LPDWORD

Puntatore a un DWORD.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef DWORD *LPDWORD;

LPHANDLE

Puntatore a un handle handle.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef HANDLE *LPHANDLE;

LPINT

Puntatore a un INT.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef int *LPINT;

LPLONG

Puntatore a un LONG.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef long *LPLONG;

LPSTR

Puntatore a una stringa con terminazione Null di caratteri ANSI (Windows a 8 bit). Per altre informazioni, vedere set di caratteri utilizzati dai tipi di carattere.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

typedef CHAR *LPSTR;

LPTSTR

Un LPWSTR se è definito UNICODE, LPSTR . Per altre informazioni, vedere tipi di dati windows per stringhe.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

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

Puntatore a qualsiasi tipo.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef void *LPVOID;

LPWORD

Puntatore a un WORD.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef WORD *LPWORD;

LPWSTR

Puntatore a una stringa con terminazione Null di caratteri Unicode a 16 bit. Per altre informazioni, vedere set di caratteri utilizzati dai tipi di carattere.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

typedef WCHAR *LPWSTR;

LRESULT

Risultato firmato dell'elaborazione dei messaggi.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef LONG_PTR LRESULT;

PBOOL

Puntatore a un BOOL.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef BOOL *PBOOL;

PBOOLEAN

Puntatore a un BOOLEAN.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

typedef BOOLEAN *PBOOLEAN;

PBYTE

Puntatore a unBYTE .

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef BYTE *PBYTE;

PCHAR

Puntatore a un CHAR.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

typedef CHAR *PCHAR;

PCSTR

Puntatore a una stringa con terminazione Null costante di caratteri ANSI (Windows a 8 bit). Per altre informazioni, vedere set di caratteri utilizzati dai tipi di carattere.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

typedef CONST CHAR *PCSTR;

PCTSTR

Un PCWSTR se è definito UNICODE, un PCSTR in caso contrario. Per altre informazioni, vedere tipi di dati windows per stringhe.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

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

Puntatore a una stringa con terminazione Null costante di caratteri Unicode a 16 bit. Per altre informazioni, vedere set di caratteri utilizzati dai tipi di carattere.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

typedef CONST WCHAR *PCWSTR;

PDWORD

Puntatore a un DWORD.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef DWORD *PDWORD;

PDWORDLONG

Puntatore a un DWORDLONG.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

typedef DWORDLONG *PDWORDLONG;

PDWORD_PTR

Puntatore a un DWORD_PTR.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef DWORD_PTR *PDWORD_PTR;

PDWORD32

Puntatore a un DWORD32.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef DWORD32 *PDWORD32;

PDWORD64

Puntatore a un DWORD64.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef DWORD64 *PDWORD64;

PFLOAT

Puntatore a un FLOAT.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef FLOAT *PFLOAT;

PHALF_PTR

Puntatore a un HALF_PTR.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

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

Puntatore a un handle handle.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

typedef HANDLE *PHANDLE;

PHKEY

Puntatore a un HKEY.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef HKEY *PHKEY;

PINT

Puntatore a un INT.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef int *PINT;

PINT_PTR

Puntatore a un INT_PTR.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef INT_PTR *PINT_PTR;

PINT8

Puntatore a un INT8.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef INT8 *PINT8;

PINT16

Puntatore a un INT16.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef INT16 *PINT16;

PINT32

Puntatore a un INT32.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef INT32 *PINT32;

PINT64

Puntatore a un INT64.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef INT64 *PINT64;

PLCID

Puntatore a un LCID.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

typedef PDWORD PLCID;

PLONG

Puntatore a un LONG.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

typedef LONG *PLONG;

PLONGLONG

Puntatore a un LONGLONG.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

typedef LONGLONG *PLONGLONG;

PLONG_PTR

Puntatore a un LONG_PTR.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef LONG_PTR *PLONG_PTR;

PLONG32

Puntatore a un LONG32.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef LONG32 *PLONG32;

PLONG64

Puntatore a un LONG64.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef LONG64 *PLONG64;

POINTER_32

Puntatore a 32 bit. In un sistema a 32 bit, si tratta di un puntatore nativo. In un sistema a 64 bit, si tratta di un puntatore a 64 bit troncato.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

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

Puntatore a 64 bit. In un sistema a 64 bit, si tratta di un puntatore nativo. In un sistema a 32 bit, si tratta di un puntatore a 32 bit esteso per i segni.

Si noti che non è sicuro presupporre lo stato del bit del puntatore alto.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

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

Puntatore con segno.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

#define POINTER_SIGNED __sptr

POINTER_UNSIGNED

Puntatore senza segno.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

#define POINTER_UNSIGNED __uptr

PSHORT

Puntatore a un SHORT.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

typedef SHORT *PSHORT;

PSIZE_T

Puntatore a un SIZE_T.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef SIZE_T *PSIZE_T;

PSSIZE_T

Puntatore a un SSIZE_T.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef SSIZE_T *PSSIZE_T;

PSTR

Puntatore a una stringa con terminazione Null di caratteri ANSI (Windows a 8 bit). Per altre informazioni, vedere set di caratteri utilizzati dai tipi di carattere.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

typedef CHAR *PSTR;

PTBYTE

Puntatore a un TBYTE.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

typedef TBYTE *PTBYTE;

PTCHAR

Puntatore a un TCHAR.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

typedef TCHAR *PTCHAR;

PTSTR

Un PWSTR se UNICODE è definito, in caso contrario, un PSTR . Per altre informazioni, vedere tipi di dati windows per stringhe.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

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

Puntatore a un UCHAR.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef UCHAR *PUCHAR;

PUHALF_PTR

Puntatore a un UHALF_PTR.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

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

Puntatore a un UINT.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef UINT *PUINT;

PUINT_PTR

Puntatore a un UINT_PTR.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef UINT_PTR *PUINT_PTR;

PUINT8

Puntatore a un UINT8.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef UINT8 *PUINT8;

PUINT16

Puntatore a un UINT16.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef UINT16 *PUINT16;

PUINT32

Puntatore a un UINT32.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef UINT32 *PUINT32;

PUINT64

Puntatore a un UINT64.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef UINT64 *PUINT64;

PULONG

Puntatore a un ULONG.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef ULONG *PULONG;

PULONGLONG

Puntatore a un ULONGLONG.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef ULONGLONG *PULONGLONG;

PULONG_PTR

Puntatore a un ULONG_PTR.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef ULONG_PTR *PULONG_PTR;

PULONG32

Puntatore a un ULONG32.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef ULONG32 *PULONG32;

PULONG64

Puntatore a un ULONG64.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef ULONG64 *PULONG64;

PUSHORT

Puntatore a un USHORT.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef USHORT *PUSHORT;

PVOID

Puntatore a qualsiasi tipo.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

typedef void *PVOID;

PWCHAR

Puntatore a un WCHAR.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

typedef WCHAR *PWCHAR;

PWORD

Puntatore a un WORD.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef WORD *PWORD;

PWSTR

Puntatore a una stringa con terminazione Null di caratteri Unicode a 16 bit. Per altre informazioni, vedere set di caratteri utilizzati dai tipi di carattere.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

typedef WCHAR *PWSTR;

QWORD

Intero senza segno a 64 bit.

Questo tipo viene dichiarato come segue:

typedef unsigned __int64 QWORD;

SC_HANDLE

Handle per un database di Gestione controllo dei servizi. Per altre informazioni, vedere handle SCM.

Questo tipo viene dichiarato in WinSvc.h come indicato di seguito:

typedef HANDLE SC_HANDLE;

SC_LOCK

Blocco di un database di Gestione controllo dei servizi. Per altre informazioni, vedere handle SCM.

Questo tipo viene dichiarato in WinSvc.h come indicato di seguito:

typedef LPVOID SC_LOCK;

SERVICE_STATUS_HANDLE

Handle per un valore di stato del servizio. Per altre informazioni, vedere handle SCM.

Questo tipo viene dichiarato in WinSvc.h come indicato di seguito:

typedef HANDLE SERVICE_STATUS_HANDLE;

SHORT

Intero a 16 bit. L'intervallo è compreso tra -32768 e 32767 decimali.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

typedef short SHORT;

SIZE_T

Numero massimo di byte a cui può puntare un puntatore. Usare per un conteggio che deve estendersi all'intervallo completo di un puntatore.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef ULONG_PTR SIZE_T;

SSIZE_T

Versione firmata di SIZE_T.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef LONG_PTR SSIZE_T;

TBYTE

Un WCHAR se è definito UNICODE, CHAR in caso contrario.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

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

Un WCHAR se è definito UNICODE, CHAR in caso contrario.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

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

Un CHAR non firmato.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef unsigned char UCHAR;

UHALF_PTR

Un HALF_PTRsenza segno. Utilizzare all'interno di una struttura che contiene un puntatore e due campi piccoli.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

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

Un INT non firmato. L'intervallo è compreso tra 0 e 4294967295 decimale.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef unsigned int UINT;

UINT_PTR

Un INT_PTRsenza segno.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

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

Un INT8 non firmato.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef unsigned char UINT8;

UINT16

Un INT16 senza segno.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef unsigned short UINT16;

UINT32

Un INT32 non firmato. L'intervallo è compreso tra 0 e 4294967295 decimale.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef unsigned int UINT32;

UINT64

Un INT64 non firmato. L'intervallo è compreso tra 0 e 18446744073709551615 decimale.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef unsigned __int64 UINT64;

ULONG

Un LONG non firmato. L'intervallo è compreso tra 0 e 4294967295 decimale.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef unsigned long ULONG;

ULONGLONG

Intero senza segno a 64 bit. L'intervallo è compreso tra 0 e 18446744073709551615 decimale.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

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

Un LONG_PTRsenza segno.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

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

Oggetto LONG32 non firmato. L'intervallo è compreso tra 0 e 4294967295 decimale.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef unsigned int ULONG32;

ULONG64

Un LONG64 non firmato. L'intervallo è compreso tra 0 e 18446744073709551615 decimale.

Questo tipo viene dichiarato in BaseTsd.h come indicato di seguito:

typedef unsigned __int64 ULONG64;

UNICODE_STRING

Stringa Unicode.

Questo tipo viene dichiarato in Winternl.h come indicato di seguito:

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 senza segno. L'intervallo è compreso tra 0 e 65535 decimale.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef unsigned short USHORT;

USN

Numero di sequenza di aggiornamento (USN).

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

typedef LONGLONG USN;

VOID

Qualsiasi tipo.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

#define VOID void

WCHAR

Carattere Unicode a 16 bit. Per altre informazioni, vedere set di caratteri utilizzati dai tipi di carattere.

Questo tipo viene dichiarato in WinNT.h come indicato di seguito:

typedef wchar_t WCHAR;

WINAPI

Convenzione di chiamata per le funzioni di sistema.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

#define WINAPI __stdcall

CALLBACK, WINAPIe APIENTRY vengono tutti usati per definire funzioni con la convenzione di chiamata __stdcall. La maggior parte delle funzioni nell'API Windows viene dichiarata usando WINAPI. È possibile usare callback per le funzioni di callback implementate per identificare la funzione come funzione di callback.

WORD

Intero senza segno a 16 bit. L'intervallo è compreso tra 0 e 65535 decimale.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef unsigned short WORD;

WPARAM

Parametro del messaggio.

Questo tipo viene dichiarato in WinDef.h come indicato di seguito:

typedef UINT_PTR WPARAM;

Fabbisogno

Requisito Valore
Client minimo supportato
Windows XP [solo app desktop]
Server minimo supportato
Windows Server 2003 [solo app desktop]
Intestazione
BaseTsd.h;
WinDef.h;
WinNT.h