Windows-Datentypen

Die von Windows unterstützten Datentypen werden verwendet, um Funktionsrückgabewerte, Funktions- und Nachrichtenparameter sowie Strukturmember zu definieren. Sie definieren die Größe und Bedeutung dieser Elemente. Weitere Informationen zu den zugrunde liegenden C/C++-Datentypen finden Sie unter Datentypbereiche.

Die folgende Tabelle enthält die folgenden Typen: Character, Integer, Boolean, Zeiger und Handle. Die Zeichen-, Ganzzahl- und boolesche Typen sind für die meisten C-Compiler üblich. Die meisten Zeigertypnamen beginnen mit dem Präfix P oder LP. Handles verweisen auf eine Ressource, die in den Arbeitsspeicher geladen wurde.

Weitere Informationen zum Behandeln von 64-Bit-Ganzzahlen finden Sie unter Große Ganze Zahlen.

Datentyp Beschreibung
APIENTRY Die Aufrufkonvention für Systemfunktionen.
Dieser Typ wird in WinDef.h wie folgt deklariert:
#define APIENTRY WINAPI
ATOM Ein Atom. Weitere Informationen finden Sie unter Informationen zu Atom-Tabellen.
Dieser Typ wird in WinDef.h wie folgt deklariert:
typedef WORD ATOM;
BOOL Eine boolesche Variable (sollte TRUE oder FALSE sein).
Dieser Typ wird in WinDef.h wie folgt deklariert:
typedef int BOOL;
BOOLEAN Eine boolesche Variable (sollte TRUE oder FALSE sein).
Dieser Typ wird in WinNT.h wie folgt deklariert:
typedef BYTE BOOLEAN;
BYTE Ein Byte (8 Bit).
Dieser Typ wird in WinDef.h wie folgt deklariert:
typedef unsigned char BYTE;
RÜCKRUF Die Aufrufkonvention für Rückruffunktionen.
Dieser Typ wird in WinDef.h wie folgt deklariert:
#define CALLBACK __stdcall
CALLBACK, WINAPI und APIENTRY werden alle verwendet, um Funktionen mit der __stdcall Aufrufkonvention zu definieren. Die meisten Funktionen in der Windows-API werden mithilfe von WINAPI deklariert. Möglicherweise möchten Sie CALLBACK für die Rückruffunktionen verwenden, die Sie implementieren, um die Funktion als Rückruffunktion zu identifizieren.
CCHAR Ein 8-Bit-Windows-Zeichen (ANSI).
Dieser Typ wird in WinNT.h wie folgt deklariert:
typedef char CCHAR;
CHAR Ein 8-Bit-Windows-Zeichen (ANSI). Weitere Informationen finden Sie unter Zeichensätze, die von Schriftarten verwendet werden.
Dieser Typ wird in WinNT.h wie folgt deklariert:
typedef char CHAR;
COLORREF Der Farbwert rot, grün, blau (RGB) (32 Bit). Informationen zu diesem Typ finden Sie unter COLORREF .
Dieser Typ wird in WinDef.h wie folgt deklariert:
typedef DWORD COLORREF;
CONST Eine Variable, deren Wert während der Ausführung konstant bleiben soll.
Dieser Typ wird in WinDef.h wie folgt deklariert:
#define CONST const
DWORD Eine 32-Bit-Ganzzahl ohne Vorzeichen. Der Bereich ist 0 bis 4294967295 dezimal.
Dieser Typ wird in IntSafe.h wie folgt deklariert:
typedef unsigned long DWORD;
DWORDLONG Eine 64-Bit-Ganzzahl ohne Vorzeichen. Der Bereich ist 0 bis 18446744073709551615 dezimal.
Dieser Typ wird in IntSafe.h wie folgt deklariert:
typedef unsigned __int64 DWORDLONG;
DWORD_PTR Ein nicht signierter langer Typ für die Zeigergenauigkeit. Verwenden Sie, wenn Sie einen Zeiger auf einen langen Typ umwandeln, um die Zeigerarithmetik auszuführen. (Wird auch häufig für allgemeine 32-Bit-Parameter verwendet, die in 64-Bit-Windows auf 64 Bit erweitert wurden.)
Dieser Typ wird in BaseTsd.h wie folgt deklariert:
typedef ULONG_PTR DWORD_PTR;
DWORD32 Eine 32-Bit-Ganzzahl ohne Vorzeichen.
Dieser Typ wird in BaseTsd.h wie folgt deklariert:
typedef unsigned int DWORD32;
DWORD64 Eine 64-Bit-Ganzzahl ohne Vorzeichen.
Dieser Typ wird in BaseTsd.h wie folgt deklariert:
typedef unsigned __int64 DWORD64;
SCHWEBEN Eine Gleitkommavariable.
Dieser Typ wird in WinDef.h wie folgt deklariert:
typedef float FLOAT;
HACCEL Ein Handle für eine Acceleratortabelle.
Dieser Typ wird in WinDef.h wie folgt deklariert:
typedef HANDLE HACCEL;
HALF_PTR Halb so groß wie ein Zeiger. Verwenden Sie in einer Struktur, die einen Zeiger und zwei kleine Felder enthält.
Dieser Typ wird in BaseTsd.h wie folgt deklariert:
C++
#ifdef _WIN64
 typedef int HALF_PTR;
#else
 typedef short HALF_PTR;
#endif
BEHANDELN

Ein Handle für ein Objekt.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef PVOID HANDLE;

HBITMAP

Ein Handle für eine Bitmap.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HBITMAP;

HBRUSH

Ein Griff zu einem Pinsel.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HBRUSH;

HCOLORSPACE

Ein Handle für einen Farbraum.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HCOLORSPACE;

HCONV

Ein Handle für eine DDE-Konversation (Dynamic Data Exchange).

Dieser Typ wird in Ddeml.h wie folgt deklariert:

typedef HANDLE HCONV;

HCONVLIST

Ein Handle für eine DDE-Unterhaltungsliste.

Dieser Typ wird in Ddeml.h wie folgt deklariert:

typedef HANDLE HCONVLIST;

HCURSOR

Ein Handle für einen Cursor.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HICON HCURSOR;

HDC

Ein Handle für einen Gerätekontext (DC ).

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HDC;

HDDEDATA

Ein Handle für DDE-Daten.

Dieser Typ wird in Ddeml.h wie folgt deklariert:

typedef HANDLE HDDEDATA;

HDESK

Ein Handle für einen Desktop.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HDESK;

HDROP

Ein Handle für eine interne Ablagestruktur.

Dieser Typ wird in ShellApi.h wie folgt deklariert:

typedef HANDLE HDROP;

HDWP

Ein Handle für eine Struktur der verzögerten Fensterposition.

Dieser Typ wird in WinUser.h wie folgt deklariert:

typedef HANDLE HDWP;

HENHMETAFILE

Ein Handle für eine erweiterte Metadatei.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HENHMETAFILE;

HFILE

Ein Handle für eine Datei, die von OpenFile geöffnet wird, nicht createFile.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef int HFILE;

HFONT

Ein Handle für eine Schriftart.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HFONT;

HGDIOBJ

Ein Handle für ein GDI-Objekt.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HGDIOBJ;

HGLOBAL

Ein Handle für einen globalen Speicherblock.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HGLOBAL;

HHOOK

Ein Handle für einen Hook.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HHOOK;

HICON

Ein Handle für ein Symbol.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HICON;

HINSTANCE

Ein Handle für eine instance. Dies ist die Basisadresse des Moduls im Arbeitsspeicher.

HMODULE und HINSTANCE sind heute identisch, stellen jedoch verschiedene Dinge in 16-Bit-Windows dar.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HINSTANCE;

HKEY

Ein Handle für einen Registrierungsschlüssel.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HKEY;

HKL

Ein Eingabegebietsschemabezeichner.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HKL;

HLOCAL

Ein Handle für einen lokalen Speicherblock.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HLOCAL;

HMENU

Ein Handle für ein Menü.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HMENU;

HMETAFILE

Ein Handle für eine Metadatei.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HMETAFILE;

HMODULE

Ein Handle für ein Modul. Dies ist die Basisadresse des Moduls im Arbeitsspeicher.

HMODULE und HINSTANCE sind in aktuellen Versionen von Windows identisch, stellen jedoch unterschiedliche Dinge in 16-Bit-Windows dar.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HINSTANCE HMODULE;

HMONITOR

Ein Handle für einen Anzeigemonitor.

Dieser Typ wird in WinDef.h wie folgt deklariert:

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

HPALETTE

Ein Handle für eine Palette.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HPALETTE;

HPEN

Ein Handle für einen Stift.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HPEN;

HRESULT

Die von COM-Schnittstellen verwendeten Rückgabecodes. Weitere Informationen finden Sie unter Struktur der COM-Fehlercodes. Verwenden Sie zum Testen eines HRESULT-Werts die Makros FAILED und SUCCEEDED .

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef LONG HRESULT;

HRGN

Ein Handle für eine Region.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HRGN;

HRSRC

Ein Handle für eine Ressource.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HRSRC;

HSZ

Ein Handle für eine DDE-Zeichenfolge.

Dieser Typ wird in Ddeml.h wie folgt deklariert:

typedef HANDLE HSZ;

HWINSTA

Ein Ziehpunkt für eine Fensterstation.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE WINSTA;

HWND

Ein Handle für ein Fenster.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HWND;

INT

Eine 32-Bit-Ganzzahl mit Vorzeichen. Der Bereich ist -2147483648 bis 2147483647 dezimal.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef int INT;

INT_PTR

Ein ganzzahliger Typ mit Vorzeichen für die Zeigergenauigkeit. Verwenden Sie, wenn Sie einen Zeiger in eine ganze Zahl umwandeln, um Zeigerarithmetik auszuführen.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

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

Eine 8-Bit-Ganzzahl mit Vorzeichen.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef signed char INT8;

INT16

Eine 16-Bit-Ganzzahl mit Vorzeichen.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef signed short INT16;

INT32

Eine 32-Bit-Ganzzahl mit Vorzeichen. Der Bereich ist -2147483648 bis 2147483647 dezimal.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef signed int INT32;

INT64

Eine 64-Bit-Ganzzahl mit Vorzeichen. Der Bereich ist -9223372036854775808 bis 9223372036854775807 dezimal.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef signed __int64 INT64;

LANGID

Ein Sprachbezeichner. Weitere Informationen finden Sie unter Sprachbezeichner.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef WORD LANGID;

LCID

Ein Gebietsschemabezeichner. Weitere Informationen finden Sie unter Gebietsschemabezeichner.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef DWORD LCID;

LCTYPE

Ein Gebietsschemainformationstyp. Eine Liste finden Sie unter Gebietsschemainformationskonstanten.

Dieser Typ wird in WinNls.h wie folgt deklariert:

typedef DWORD LCTYPE;

LGRPID

Ein Sprachgruppenbezeichner. Eine Liste finden Sie unter EnumLanguageGroupLocales.

Dieser Typ wird in WinNls.h wie folgt deklariert:

typedef DWORD LGRPID;

LANGE

Eine 32-Bit-Ganzzahl mit Vorzeichen. Der Bereich ist -2147483648 bis 2147483647 dezimal.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef long LONG;

LONGLONG

Eine 64-Bit-Ganzzahl mit Vorzeichen. Der Bereich ist -9223372036854775808 bis 9223372036854775807 dezimal.

Dieser Typ wird in WinNT.h wie folgt deklariert:

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

Ein signierter langer Typ für die Zeigergenauigkeit. Verwenden Sie, wenn Sie einen Zeiger auf eine lange umstellen, um Zeigerarithmetik auszuführen.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

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

Eine 32-Bit-Ganzzahl mit Vorzeichen. Der Bereich ist -2147483648 bis 2147483647 dezimal.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef signed int LONG32;

LONG64

Eine 64-Bit-Ganzzahl mit Vorzeichen. Der Bereich ist -9223372036854775808 bis 9223372036854775807 dezimal.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef __int64 LONG64;

LPARAM

Ein Nachrichtenparameter.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef LONG_PTR LPARAM;

LPBOOL

Ein Zeiger auf eine BOOL.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef BOOL far *LPBOOL;

LPBYTE

Ein Zeiger auf ein BYTE.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef BYTE far *LPBYTE;

LPCOLORREF

Ein Zeiger auf einen COLORREF-Wert .

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef DWORD *LPCOLORREF;

LPCSTR

Ein Zeiger auf eine konstante NULL-beendete Zeichenfolge mit 8-Bit-Windows-Zeichen (ANSI). Weitere Informationen finden Sie unter Zeichensätze, die von Schriftarten verwendet werden.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef __nullterminated CONST CHAR *LPCSTR;

LPCTSTR

Ein LPCWSTR , wenn UNICODE definiert ist, andernfalls ein LPCSTR . Weitere Informationen finden Sie unter Windows-Datentypen für Zeichenfolgen.

Dieser Typ wird in WinNT.h wie folgt deklariert:

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

Ein Zeiger auf eine Konstante eines beliebigen Typs.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef CONST void *LPCVOID;

LPCWSTR

Ein Zeiger auf eine konstante NULL-Zeichenfolge mit 16-Bit-Unicode-Zeichen. Weitere Informationen finden Sie unter Zeichensätze, die von Schriftarten verwendet werden.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef CONST WCHAR *LPCWSTR;

LPDWORD

Ein Zeiger auf ein DWORD.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef DWORD *LPDWORD;

LPHANDLE

Ein Zeiger auf einen HANDLE.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE *LPHANDLE;

LPINT

Ein Zeiger auf einen INT.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef int *LPINT;

LPLONG

Ein Zeiger auf einen LONG-Wert.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef long *LPLONG;

LPSTR

Ein Zeiger auf eine null-beendete Zeichenfolge mit 8-Bit-Windows-Zeichen (ANSI). Weitere Informationen finden Sie unter Zeichensätze, die von Schriftarten verwendet werden.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef CHAR *LPSTR;

LPTSTR

Ein LPWSTR , wenn UNICODE definiert ist, andernfalls ein LPSTR . Weitere Informationen finden Sie unter Windows-Datentypen für Zeichenfolgen.

Dieser Typ wird in WinNT.h wie folgt deklariert:

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

Ein Zeiger auf einen beliebigen Typ.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef void *LPVOID;

LPWORD

Ein Zeiger auf ein WORD.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef WORD *LPWORD;

LPWSTR

Ein Zeiger auf eine NULL-Zeichenfolge mit 16-Bit-Unicode-Zeichen. Weitere Informationen finden Sie unter Zeichensätze, die von Schriftarten verwendet werden.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef WCHAR *LPWSTR;

LRESULT

Signiertes Ergebnis der Nachrichtenverarbeitung.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef LONG_PTR LRESULT;

PBOOL

Ein Zeiger auf eine BOOL.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef BOOL *PBOOL;

PBOOLEAN

Ein Zeiger auf einen BOOLEAN.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef BOOLEAN *PBOOLEAN;

PBYTE

Ein Zeiger auf ein BYTE.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef BYTE *PBYTE;

PCHAR

Ein Zeiger auf ein CHAR.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef CHAR *PCHAR;

PCSTR

Ein Zeiger auf eine konstante NULL-endende Zeichenfolge mit 8-Bit-Windows-Zeichen (ANSI). Weitere Informationen finden Sie unter Von Schriftarten verwendete Zeichensätze.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef CONST CHAR *PCSTR;

PCTSTR

Ein PCWSTR , wenn UNICODE definiert ist, andernfalls ein PCSTR . Weitere Informationen finden Sie unter Windows-Datentypen für Zeichenfolgen.

Dieser Typ wird in WinNT.h wie folgt deklariert:

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

Ein Zeiger auf eine konstante NULL-endende Zeichenfolge mit 16-Bit-Unicode-Zeichen. Weitere Informationen finden Sie unter Von Schriftarten verwendete Zeichensätze.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef CONST WCHAR *PCWSTR;

PDWORD

Ein Zeiger auf ein DWORD.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef DWORD *PDWORD;

PDWORDLONG

Ein Zeiger auf eine DWORDLONG-Datei.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef DWORDLONG *PDWORDLONG;

PDWORD_PTR

Ein Zeiger auf eine DWORD_PTR.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef DWORD_PTR *PDWORD_PTR;

PDWORD32

Ein Zeiger auf einen DWORD32-Wert.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef DWORD32 *PDWORD32;

PDWORD64

Ein Zeiger auf einen DWORD64-Wert.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef DWORD64 *PDWORD64;

PFLOAT

Ein Zeiger auf eine FLOAT-Datei.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef FLOAT *PFLOAT;

PHALF_PTR

Ein Zeiger auf eine HALF_PTR.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

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

Ein Zeiger auf ein HANDLE.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef HANDLE *PHANDLE;

PHKEY

Ein Zeiger auf einen HKEY.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HKEY *PHKEY;

PINT

Ein Zeiger auf ein INT.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef int *PINT;

PINT_PTR

Ein Zeiger auf eine INT_PTR.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef INT_PTR *PINT_PTR;

PINT8

Ein Zeiger auf eine INT8.A pointer to an INT8.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef INT8 *PINT8;

PINT16

Ein Zeiger auf einen INT16.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef INT16 *PINT16;

PINT32

Ein Zeiger auf einen INT32.A pointer to an INT32.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef INT32 *PINT32;

PINT64

Ein Zeiger auf einen INT64.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef INT64 *PINT64;

PLCID

Ein Zeiger auf eine LCID.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef PDWORD PLCID;

PLONG

Ein Zeiger auf einen LONG-Wert.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef LONG *PLONG;

PLONGLONG

Ein Zeiger auf einen LONGLONG-Wert.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef LONGLONG *PLONGLONG;

PLONG_PTR

Ein Zeiger auf eine LONG_PTR.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef LONG_PTR *PLONG_PTR;

PLONG32

Ein Zeiger auf einen LONG32-Wert.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef LONG32 *PLONG32;

PLONG64

Ein Zeiger auf einen LONG64-Wert.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef LONG64 *PLONG64;

POINTER_32

Ein 32-Bit-Zeiger. Auf einem 32-Bit-System ist dies ein nativer Zeiger. Auf einem 64-Bit-System ist dies ein abgeschnittener 64-Bit-Zeiger.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

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

Ein 64-Bit-Zeiger. Auf einem 64-Bit-System ist dies ein nativer Zeiger. Auf einem 32-Bit-System ist dies ein 32-Bit-Zeiger mit erweitertem Vorzeichen.

Beachten Sie, dass es nicht sicher ist, den Zustand des HighPointer-Bits anzunehmen.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

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

Ein signierter Zeiger.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

#define POINTER_SIGNED __sptr

POINTER_UNSIGNED

Ein Zeiger ohne Vorzeichen.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

#define POINTER_UNSIGNED __uptr

PSHORT

Ein Zeiger auf eine SHORT-Datei.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef SHORT *PSHORT;

PSIZE_T

Ein Zeiger auf eine SIZE_T.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef SIZE_T *PSIZE_T;

PSSIZE_T

Ein Zeiger auf eine SSIZE_T.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef SSIZE_T *PSSIZE_T;

PSTR

Ein Zeiger auf eine null-beendete Zeichenfolge mit 8-Bit-Windows-Zeichen (ANSI). Weitere Informationen finden Sie unter Zeichensätze, die von Schriftarten verwendet werden.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef CHAR *PSTR;

PTBYTE

Ein Zeiger auf ein TBYTE.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef TBYTE *PTBYTE;

PTCHAR

Ein Zeiger auf eine TCHAR.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef TCHAR *PTCHAR;

PTSTR

Ein PWSTR , wenn UNICODE definiert ist, andernfalls ein PSTR . Weitere Informationen finden Sie unter Windows-Datentypen für Zeichenfolgen.

Dieser Typ wird in WinNT.h wie folgt deklariert:

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

Ein Zeiger auf eine UCHAR.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef UCHAR *PUCHAR;

PUHALF_PTR

Ein Zeiger auf eine UHALF_PTR.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

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

Ein Zeiger auf ein UINT.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef UINT *PUINT;

PUINT_PTR

Ein Zeiger auf eine UINT_PTR.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef UINT_PTR *PUINT_PTR;

PUINT8

Ein Zeiger auf eine UINT8.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef UINT8 *PUINT8;

PUINT16

Ein Zeiger auf einen UINT16.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef UINT16 *PUINT16;

PUINT32

Ein Zeiger auf einen UINT32.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef UINT32 *PUINT32;

PUINT64

Ein Zeiger auf einen UINT64.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef UINT64 *PUINT64;

PULONG

Ein Zeiger auf eine ULONG.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef ULONG *PULONG;

PULONGLONGLONG

Ein Zeiger auf eine ULONGLONGLONG.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef ULONGLONG *PULONGLONG;

PULONG_PTR

Ein Zeiger auf eine ULONG_PTR.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef ULONG_PTR *PULONG_PTR;

PULONG32

Ein Zeiger auf eine ULONG32.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef ULONG32 *PULONG32;

PULONG64

Ein Zeiger auf einen ULONG64.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef ULONG64 *PULONG64;

PUSHORT

Ein Zeiger auf eine USHORT.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef USHORT *PUSHORT;

PVOID

Ein Zeiger auf einen beliebigen Typ.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef void *PVOID;

PWCHAR

Ein Zeiger auf eine WCHAR.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef WCHAR *PWCHAR;

PWORD

Ein Zeiger auf ein WORD.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef WORD *PWORD;

PWSTR

Ein Zeiger auf eine NULL-Zeichenfolge mit 16-Bit-Unicode-Zeichen. Weitere Informationen finden Sie unter Zeichensätze, die von Schriftarten verwendet werden.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef WCHAR *PWSTR;

QWORD

Eine 64-Bit-Ganzzahl ohne Vorzeichen.

Dieser Typ wird wie folgt deklariert:

typedef unsigned __int64 QWORD;

SC_HANDLE

Ein Handle für eine Dienststeuerungs-Manager-Datenbank. Weitere Informationen finden Sie unter SCM-Handles.

Dieser Typ wird in WinSvc.h wie folgt deklariert:

typedef HANDLE SC_HANDLE;

SC_LOCK

Eine Sperre für eine Dienststeuerungs-Manager-Datenbank. Weitere Informationen finden Sie unter SCM-Handles.

Dieser Typ wird in WinSvc.h wie folgt deklariert:

typedef LPVOID SC_LOCK;

SERVICE_STATUS_HANDLE

Ein Handle für einen Dienst status Wert. Weitere Informationen finden Sie unter SCM-Handles.

Dieser Typ wird in WinSvc.h wie folgt deklariert:

typedef HANDLE SERVICE_STATUS_HANDLE;

KURZ

Eine 16-Bit-Ganzzahl. Der Bereich ist -32768 bis 32767 dezimal.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef short SHORT;

SIZE_T

Die maximale Anzahl von Bytes, auf die ein Zeiger zeigen kann. Verwenden Sie für eine Anzahl, die den gesamten Bereich eines Zeigers umfassen muss.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef ULONG_PTR SIZE_T;

SSIZE_T

Eine signierte Version von SIZE_T.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef LONG_PTR SSIZE_T;

TBYTE

Ein WCHAR , wenn UNICODE definiert ist, andernfalls ein CHAR .

Dieser Typ wird in WinNT.h wie folgt deklariert:

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

Ein WCHAR , wenn UNICODE definiert ist, andernfalls ein CHAR .

Dieser Typ wird in WinNT.h wie folgt deklariert:

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

Ein vorzeichenloses CHAR.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef unsigned char UCHAR;

UHALF_PTR

Ein nicht signierter HALF_PTR. Verwenden Sie in einer Struktur, die einen Zeiger und zwei kleine Felder enthält.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

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

Ein unsigniertes INT. Der Bereich ist 0 bis 4294967295 dezimal.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef unsigned int UINT;

UINT_PTR

Ein nicht signierter INT_PTR.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

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

Ein unsigniertes INT8.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef unsigned char UINT8;

UINT16

Ein unsigniertes INT16.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef unsigned short UINT16;

UINT32

Ein unsigned INT32. Der Bereich ist 0 bis 4294967295 dezimal.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef unsigned int UINT32;

UINT64

Ein unsigniertes INT64. Der Bereich ist 0 bis 18446744073709551615 dezimal.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef unsigned __int64 UINT64;

ULONG

Ein nicht signierter LONG-Wert. Der Bereich ist 0 bis 4294967295 dezimal.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef unsigned long ULONG;

ULONGLONG

Eine 64-Bit-Ganzzahl ohne Vorzeichen. Der Bereich ist 0 bis 18446744073709551615 dezimal.

Dieser Typ wird in WinNT.h wie folgt deklariert:

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

Ein nicht signierter LONG_PTR.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

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

Ein vorzeichenloses LONG32. Der Bereich ist 0 bis 4294967295 dezimal.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef unsigned int ULONG32;

ULONG64

Ein long64 ohne Vorzeichen. Der Bereich ist 0 bis 18446744073709551615 dezimal.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef unsigned __int64 ULONG64;

UNICODE_STRING

Eine Unicode-Zeichenfolge.

Dieser Typ wird in Winternl.h wie folgt deklariert:

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

Ein unsigned SHORT. Der Bereich ist 0 bis 65535 dezimal.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef unsigned short USHORT;

USN

Eine Updatesequenznummer (USN).

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef LONGLONG USN;

LEERE

Beliebiger Typ

Dieser Typ wird in WinNT.h wie folgt deklariert:

#define VOID void

WCHAR

Ein 16-Bit-Unicode-Zeichen. Weitere Informationen finden Sie unter Zeichensätze, die von Schriftarten verwendet werden.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef wchar_t WCHAR;

WINAPI

Die Aufrufkonvention für Systemfunktionen.

Dieser Typ wird in WinDef.h wie folgt deklariert:

#define WINAPI __stdcall

CALLBACK, WINAPI und APIENTRY werden alle verwendet, um Funktionen mit der __stdcall Aufrufkonvention zu definieren. Die meisten Funktionen in der Windows-API werden mithilfe von WINAPI deklariert. Möglicherweise möchten Sie CALLBACK für die Rückruffunktionen verwenden, die Sie implementieren, um die Funktion als Rückruffunktion zu identifizieren.

WORT

Eine 16-Bit-Ganzzahl ohne Vorzeichen. Der Bereich ist 0 bis 65535 dezimal.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef unsigned short WORD;

WPARAM

Ein Nachrichtenparameter.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef UINT_PTR WPARAM;

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Server 2003 [nur Desktop-Apps]
Header
BaseTsd.h;
WinDef.h;
WinNT.h